GitLab基于SAML协议认证集成

单点登录SSO

# 说明

本文档基于GitLab-ce版本

GitLab的docker版本安装参考 (opens new window)

GitLab官方saml配置参考 (opens new window)

# 认证配置

# GitLab配置

  • 1.查看版本号
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
1
  • 2.修改GitLab配置文件,{gitlab默认安装路径}/etc/gitlab/gitlab.rb

参数配置

参数 说明
gitlab_rails['omniauth_enabled'] = true 允许用户使用SAML进行注册而无需手动创建账户:
gitlab_rails['omniauth_allow_single_sign_on'] = ['saml'] 允许saml单点登录 :
gitlab_rails['omniauth_auto_link_saml_user'] = true 允许自动将SAML用户与GitLab中现有用户关联 :
assertion_consumer_service_url 断言消费地址,示例: http://{gitlab.example.com:8880}/users/auth/saml/callback {}内替换实际地址
idp_cert_fingerprint 证书指纹,获取方式见下图
idp_sso_target_url IDP的 SSOURL,即idaas SSO URL,在IDaaS企业中心-【设置】-【服务配置】-【IDP配置】中获取
issuer GitLab的域名地址 ,示例:http://gitlab.example.com
name_identifier_format 支持NameId格式,默认'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent'
label GitLab登录界面sso按钮标签名称

IDP证书指纹获取方式(任选其一):

  • 1.复制IDaaS 企业中心-【设置】-【服务配置】-【IDP配置】中的IDP证书内容,保存为 idp.cer文件,查看证书文件;

  • 2.复制证书内容,通过在线工具 (opens new window)计算证书指纹。

  • 2.修改完配置后,重启GitLab
# 停止Gitlab服务
gitlab-ctl stop

# 刷新Gitlab配置
gitlab-ctl reconfigure

# 启动Gitlab服务
gitlab-ctl start
1
2
3
4
5
6
7
8

# IDaaS 配置

  • 1.添加内置应用GitLab

  • 2.配置认证参数

参数 参数说明
SP Entity ID gitlab.rb文件中的issuer参数
断言消费地址(ACS URL) gitlab.rb文件中assertion_consumer_service_url
NameID 邮箱
NameID Format gitlab.rb文件中的name_identifier_format
Audience URI gitlab.rb文件中的issuer参数

  • 3.配置属性映射

添加email 属性

  • 4.用户授权 进入应用详情-授权管理-应用账号,点击添加账号按钮,选择授权用户。

# 登录验证

GitLab与IDaaS集成后有2种访问方式,分别为:

  • 通过GitLab登录页发起

  • 用户在IDaaS用户中心点击GitLab图标登录

Last Updated: 7/5/2021, 6:30:32 PM