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

GitLab Dedicated 的 SAML SSO

  • 版本:Ultimate
  • 产品:GitLab Dedicated

您可以为您的 GitLab Dedicated 实例配置 SAML 单点登录 (SSO),最多支持十个身份提供商 (IdP)。

提供以下 SAML SSO 选项:

此配置是为您的 GitLab Dedicated 实例的最终用户设置的 SAML SSO。 要为 Switchboard 管理员配置 SSO,请参阅配置 Switchboard SSO

先决条件

  • 在为 GitLab Dedicated 配置 SAML 之前,您必须设置身份提供商
  • 要配置 GitLab 以对 SAML 认证请求进行签名,您必须为您的 GitLab Dedicated 实例创建一个私钥和公证书对。

使用 Switchboard 添加 SAML 提供商

要为您的 GitLab Dedicated 实例添加 SAML 提供商:

  1. 登录 Switchboard
  2. 在页面顶部,选择 配置
  3. 展开 SAML 提供商
  4. 选择 添加 SAML 提供商
  5. SAML 标签 文本框中,输入一个名称以便在 Switchboard 中识别此提供商。
  6. 可选。要根据 SAML 群组成员身份配置用户或使用群组同步,请填写以下字段:
    • SAML 群组属性
    • 管理员群组
    • 审计员群组
    • 外部群组
    • 必需群组
  7. IdP 证书指纹 文本框中,输入您的 IdP 证书指纹。此值是您 IdP 的 X.509 证书指纹的 SHA1 校验和。
  8. IdP SSO 目标 URL 文本框中,输入您的 IdP 上的 URL 端点,GitLab Dedicated 会将用户重定向到此处以通过此提供商进行身份验证。
  9. 名称标识符格式 下拉列表中,选择此提供商发送给 GitLab 的 NameID 格式。
  10. 可选。要配置请求签名,请填写以下字段:
    • 颁发者
    • 属性声明
    • 安全
  11. 要开始使用此提供商,请选中 启用此提供商 复选框。
  12. 选择 保存
  13. 要添加另一个 SAML 提供商,请再次选择 添加 SAML 提供商 并按照前面的步骤操作。您最多可以添加十个提供商。
  14. 滚动到页面顶部。已启动的更改 横幅会说明您的 SAML 配置更改将在下一个维护窗口期间应用。要立即应用更改,请选择 立即应用更改

更改应用后,您即可使用此 SAML 提供商登录到您的 GitLab Dedicated 实例。 要使用群组同步,请配置 SAML 群组链接

验证您的 SAML 配置

要验证您的 SAML 配置是否成功:

  1. 退出登录并转到您的 GitLab Dedicated 实例的登录页面。
  2. 检查您的 SAML 提供商的 SSO 按钮是否显示在登录页面上。
  3. 转到您实例的元数据 URL (https://实例-URL/users/auth/saml/metadata)。 元数据 URL 显示的信息可以简化您的身份提供商的配置,并帮助验证您的 SAML 设置。
  4. 尝试通过 SAML 提供商登录,以确保身份验证流程正常工作。

如果需要故障排除信息,请参阅 SAML 故障排除

通过支持请求添加 SAML 提供商

如果您无法使用 Switchboard 为您的 GitLab Dedicated 实例添加或更新 SAML,那么您可以提交一个支持工单

  1. 要进行必要的更改,请在您的支持工单中包含您 GitLab 应用程序所需的 SAML 配置块。GitLab 至少需要以下信息来为您的实例启用 SAML:

    • IDP SSO 目标 URL
    • 证书指纹或证书
    • NameID 格式
    • SSO 登录按钮描述
    "saml": {
      "attribute_statements": {
          //optional
      },
      "enabled": true,
      "groups_attribute": "",
      "admin_groups": [
        // optional
      ],
      "idp_cert_fingerprint": "43:51:43:a1:b5:fc:8b:b7:0a:3a:a9:b1:0f:66:73:a8",
      "idp_sso_target_url": "https://login.example.com/idp",
      "label": "IDP Name",
      "name_identifier_format": "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent",
      "security": {
        // optional
      },
      "auditor_groups": [
        // optional
      ],
      "external_groups": [
        // optional
      ],
      "required_groups": [
        // optional
      ],
    }
  2. GitLab 将 SAML 配置部署到您的实例后,您会在支持工单中收到通知。

  3. 要验证 SAML 配置是否成功:

    • 检查 SSO 登录按钮描述是否显示在您实例的登录页面上。
    • 转到 GitLab 在支持工单中提供的您实例的元数据 URL。此页面可用于简化身份提供商的大部分配置,以及手动验证设置。

请求签名

如果需要 SAML 请求签名,则必须获取一个证书。此证书可以是自签名的,其优点是无需向公共证书颁发机构 (CA) 证明任意通用名称 (CN) 的所有权。

由于 SAML 请求签名需要证书签名,因此您必须完成这些步骤才能在启用此功能的情况下使用 SAML。

要启用 SAML 请求签名:

  1. 提交一个支持工单 并说明您希望启用请求签名。
  2. GitLab 将与您协作发送证书签名请求 (CSR) 供您签名。或者,CSR 也可以由公共 CA 签名。
  3. 证书签名后,您便可以使用该证书及其关联的私钥来完成 Switchboard 中 SAML 配置security 部分。

现在,从 GitLab 到您的身份提供商的认证请求可以被签名了。

SAML 群组

通过 SAML 群组,您可以根据 SAML 群组成员身份来配置 GitLab 用户。

要启用 SAML 群组,请将必需元素添加到您在 Switchboard 中的 SAML 配置,或您在支持工单 中提供的 SAML 配置块中。

群组同步

通过群组同步,您可以将身份提供商群组中的用户同步到 GitLab 中已映射的群组。

要启用群组同步:

  1. 必需元素添加到您在 Switchboard 中的 SAML 配置,或您在支持工单 中提供的 SAML 配置块中。
  2. 配置群组链接