gitlab SSO

发布时间:2026-02-13 23:16:41     来源: 亿登科技
本文为您介绍如何在亿登 IDaaS 中使用 SAML 协议,配置 gitlab 实现单点登录。
 
操作步骤
1.创建应用
以管理员身份登录亿登 IDaaS,点击 设置 > 应用 > 创建应用 > 应用市场,搜索 gitlab 并添加应用。
 
2.配置单点登录
2.1 创建应用后,点击 协议配置 页签,参考下面的图1和图2完成配置。
图1:必填项配置
SP Entity ID:{gitlab访问地址}/users/auth/saml
断言消费地址:{gitlab访问地址}/users/auth/saml/callback
Name ID:选 IDaaS 账号
 
图2:属性配置,IDaaS 已经预填,保持默认即可
 
2.2 点击 应用授权 页签,然后点击 添加授权 按钮,根据您的实际情况,给需要访问 gitlab 的组织、组或用户添加授权。
 
3.在 gitlab 中配置 SSO。
3.1 编辑 Gitlab 配置文件。
Omnibus 方式安装的配置文件地址:/etc/gitlab/gitlab.rb
独立安装的配置文件地址:/home/git/gitlab/config/gitlab.yml
 
下面以主流的 Omnibus 方式安装的配置文件为例,将下述参数添加到配置文件中(独立安装的配置参数与 Omnibus 方式安装的一致,但参数格式不同,具体可以参考GitLab官网文档)。
a.若您的gitlab版本小于15,请增加下列配置:
gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = ['saml']
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_auto_link_saml_user'] = true
gitlab_rails['omniauth_providers']=[
   {
      name: 'saml',
      args: {
         assertion_consumer_service_url:'{gitlab访问地址}'/users/auth/saml/callback',
         issuer:'{gitlab访问地址}'/users/auth/saml',
         idp_cert_fingerprint:'47:84:37:3E:36:B6:73:FD:28:75:E4:D8:BD:E0:CF:0A:3F:44:20:44',
         idp_sso_target_url:'{IDP ACS URL}',
         name_identifier_format:'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent',
         attribute_statements: {
            nickname: ['username'],
            email: ['email', 'mail', 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress'],
            name: ['name', 'displayName', 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name'],
         },
      },
      label:'亿登 IDaaS'
   }
]
 
b.若您的gitlab版本 ≥ 15.x,请增加下列配置:
gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = ['saml']
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_auto_link_saml_user'] = true
gitlab_rails['omniauth_providers']=[
   {
      name: 'saml',
      args: {
         assertion_consumer_service_url:'{gitlab访问地址}'/users/auth/saml/callback',
         issuer:'{gitlab访问地址}'/users/auth/saml',
         idp_cert:'-----BEGIN CERTIFICATE-----
         MIIDGjCCA 证书内容 qBxGzGFvp6iwd
 
         -----END CERTIFICATE-----',
         idp_sso_target_url:'{IDP ACS URL}',
         name_identifier_format:'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent',
         attribute_statements: {
            nickname: ['username'],
            email: ['email', 'mail', 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress'],
            name: ['name', 'displayName', 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name'],
         },
      },
      label:'亿登 IDaaS'
   }
]
 
c.参数说明:
{}号的值表示变量,根据您的实际情况替换,{gitlab访问地址}替换成gitlab的http地址,'{IDP ACS URL}'是单点登录的地址,参考下图从标示1的配置中获取。
label:表示登录页 SSO 登录按钮 的名称。
idp_cert_fingerprint:表示证书指纹,参考下图下载证书并获取指纹,将指纹字符串全部转换成大写,用:号分隔。并在 IDaaS 平台协议配置页面中,将数字签名算法设置为 SIGNATURE_RSA_SHA1,数字摘要算法设置为 DIGEST_SHA1。
idp_cert:表示证书,参考下图复制证书全文,并粘贴到配置文件中。
 
gitlab 15.0 以下版本配置完成后的参考图
 
3.2 配置完成后,需要重新加载配置文件并重启服务才能生效。
# Omnibus 安装 Gitlab 请参考命令:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
 
# 独立安装 Gitlab,请参考命令:
sudo systemctl restart gitlab.target
sudo service gitlab restart
 
4.单点登录
IDP 发起:在 IDaaS 主页中,点击 gitlab 图标,即可自动完成登录。
SP 发起:访问 gitlab 的地址,点击 亿登 IDaaS 按钮,会跳转到 IDaaS 进行认证,认证通过后自动登录 gitlab。
 
特别说明
gitlab 支持自动创建账户(Just-in-time Provisioning),在用户使用单点登录时,若 gitlab 中不存在用户账号,则会直接创建,不会拒绝访问。所以,对于需要使用 gitlab 的新用户,管理员无需在 gitlab 中创建账号。
 
×
Copyright © 2022-2024 亿登科技 版权所有 京ICP备2024067475号-2 https://www.yidengtech.com