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 提供商:
- 登录 Switchboard。
- 在页面顶部,选择 配置。
- 展开 SAML 提供商。
- 选择 添加 SAML 提供商。
- 在 SAML 标签 文本框中,输入一个名称以便在 Switchboard 中识别此提供商。
- 可选。要根据 SAML 群组成员身份配置用户或使用群组同步,请填写以下字段:
- SAML 群组属性
- 管理员群组
- 审计员群组
- 外部群组
- 必需群组
- 在 IdP 证书指纹 文本框中,输入您的 IdP 证书指纹。此值是您 IdP 的 X.509 证书指纹的 SHA1 校验和。
- 在 IdP SSO 目标 URL 文本框中,输入您的 IdP 上的 URL 端点,GitLab Dedicated 会将用户重定向到此处以通过此提供商进行身份验证。
- 从 名称标识符格式 下拉列表中,选择此提供商发送给 GitLab 的 NameID 格式。
- 可选。要配置请求签名,请填写以下字段:
- 颁发者
- 属性声明
- 安全
- 要开始使用此提供商,请选中 启用此提供商 复选框。
- 选择 保存。
- 要添加另一个 SAML 提供商,请再次选择 添加 SAML 提供商 并按照前面的步骤操作。您最多可以添加十个提供商。
- 滚动到页面顶部。已启动的更改 横幅会说明您的 SAML 配置更改将在下一个维护窗口期间应用。要立即应用更改,请选择 立即应用更改。
更改应用后,您即可使用此 SAML 提供商登录到您的 GitLab Dedicated 实例。 要使用群组同步,请配置 SAML 群组链接。
验证您的 SAML 配置
要验证您的 SAML 配置是否成功:
- 退出登录并转到您的 GitLab Dedicated 实例的登录页面。
- 检查您的 SAML 提供商的 SSO 按钮是否显示在登录页面上。
- 转到您实例的元数据 URL (
https://实例-URL/users/auth/saml/metadata)。 元数据 URL 显示的信息可以简化您的身份提供商的配置,并帮助验证您的 SAML 设置。 - 尝试通过 SAML 提供商登录,以确保身份验证流程正常工作。
如果需要故障排除信息,请参阅 SAML 故障排除。
通过支持请求添加 SAML 提供商
如果您无法使用 Switchboard 为您的 GitLab Dedicated 实例添加或更新 SAML,那么您可以提交一个支持工单:
-
要进行必要的更改,请在您的支持工单中包含您 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 ], } -
GitLab 将 SAML 配置部署到您的实例后,您会在支持工单中收到通知。
-
要验证 SAML 配置是否成功:
- 检查 SSO 登录按钮描述是否显示在您实例的登录页面上。
- 转到 GitLab 在支持工单中提供的您实例的元数据 URL。此页面可用于简化身份提供商的大部分配置,以及手动验证设置。
请求签名
如果需要 SAML 请求签名,则必须获取一个证书。此证书可以是自签名的,其优点是无需向公共证书颁发机构 (CA) 证明任意通用名称 (CN) 的所有权。
由于 SAML 请求签名需要证书签名,因此您必须完成这些步骤才能在启用此功能的情况下使用 SAML。
要启用 SAML 请求签名:
- 提交一个支持工单 并说明您希望启用请求签名。
- GitLab 将与您协作发送证书签名请求 (CSR) 供您签名。或者,CSR 也可以由公共 CA 签名。
- 证书签名后,您便可以使用该证书及其关联的私钥来完成 Switchboard 中 SAML 配置 的
security部分。
现在,从 GitLab 到您的身份提供商的认证请求可以被签名了。
SAML 群组
通过 SAML 群组,您可以根据 SAML 群组成员身份来配置 GitLab 用户。
要启用 SAML 群组,请将必需元素添加到您在 Switchboard 中的 SAML 配置,或您在支持工单 中提供的 SAML 配置块中。
群组同步
通过群组同步,您可以将身份提供商群组中的用户同步到 GitLab 中已映射的群组。
要启用群组同步:
- 将必需元素添加到您在 Switchboard 中的 SAML 配置,或您在支持工单 中提供的 SAML 配置块中。
- 配置群组链接。