Help us learn about your current experience with the documentation. Take the survey.

使用 Salesforce 作为 OAuth 2.0 认证提供商

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab Self-Managed

您可以将您的 GitLab 实例与 Salesforce 集成,以便用户可以使用他们的 Salesforce 账户登录到您的 GitLab 实例。

创建 Salesforce 连接的应用程序

要启用 Salesforce OmniAuth 提供商,您必须使用您的 GitLab 实例的 Salesforce 凭据。 要获取凭据(一对 Client ID 和 Client Secret),您必须在 Salesforce 上 创建一个连接的应用程序 (Connected App)

  1. 登录到 Salesforce

  2. 在“设置”中,在快速查找框中输入 App Manager,选择 应用管理器 (App Manager),然后选择 新建连接的应用程序 (New Connected App)

  3. 在以下字段中填写应用程序详情:

    • 连接的应用程序名称 (Connected App Name)API 名称 (API Name):设置为任意值,但可以考虑类似 <组织名称> 的 GitLab<您的姓名> 的 GitLab 或其他描述性的名称。
    • 联系邮箱 (Contact Email):输入 Salesforce 在联系您或您的支持团队时使用的联系邮箱。
    • 描述 (Description):应用程序的描述。

    Salesforce App Details

  4. 选择 API (启用 OAuth 设置),然后选择 启用 OAuth 设置

  5. 在以下字段中填写应用程序详情:

    • 回调 URL (Callback URL):您的 GitLab 安装的回调 URL。例如,https://gitlab.example.com/users/auth/salesforce/callback
    • 选定的 OAuth 范围 (Selected OAuth Scopes):将 访问您的基本信息 (id, profile, email, address, phone)允许访问您的唯一标识符 (openid) 移动到右侧列。

    Salesforce OAuth App Details

  6. 选择 保存

  7. 在您的 GitLab 服务器上,打开配置文件。

    对于 Linux 包安装:

    sudo editor /etc/gitlab/gitlab.rb

    对于自行编译安装:

    cd /home/git/gitlab
    sudo -u git -H editor config/gitlab.yml
  8. 配置 通用设置 以将 salesforce 添加为单点登录 (Single Sign-On) 提供商。这将为没有现有 GitLab 账户的用户启用即时账户配置。

  9. 添加提供商配置。

    对于 Linux 包安装:

    gitlab_rails['omniauth_providers'] = [
      {
        name: "salesforce",
        # label: "Provider name", # 可选,用于登录按钮的标签,默认为 "Salesforce"
        app_id: "SALESFORCE_CLIENT_ID",
        app_secret: "SALESFORCE_CLIENT_SECRET"
      }
    ]

    对于自行编译安装:

    - { name: 'salesforce',
        # label: 'Provider name', # 可选,用于登录按钮的标签,默认为 "Salesforce"
        app_id: 'SALESFORCE_CLIENT_ID',
        app_secret: 'SALESFORCE_CLIENT_SECRET'
    }
  10. SALESFORCE_CLIENT_ID 更改为 Salesforce 连接应用程序页面中的消费者密钥 (Consumer Key)。

  11. SALESFORCE_CLIENT_SECRET 更改为 Salesforce 连接应用程序页面中的消费者机密 (Consumer Secret)。

    Salesforce App Secret Details

  12. 保存配置文件。

  13. 使更改生效:

在登录页面上,常规登录表单下方现在应该会出现一个 Salesforce 图标。选择该图标以开始认证流程。Salesforce 会要求用户登录并授权 GitLab 应用。如果一切顺利,用户将被重定向回 GitLab 并成功登录。

GitLab 要求每个新用户提供电子邮件地址。用户使用 Salesforce 登录后,GitLab 会将用户重定向到其个人资料页面,用户必须在该页面提供并验证其电子邮件地址。