GitLab单点登录

单点登录SSO

# 说明

本文档基于GitLab-ce版本,为您介绍Gitlab系统与竹云IDaaS单点登录配置过程。

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

  3. 参数配置如下:

    参数 说明
    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 断言消费地址,示例: https://{gitlab.example.com:8880}/users/auth/saml/callback {}内替换实际地址
    idp_cert_fingerprint 证书指纹,获取方式见下文
    idp_sso_target_url IDP的 SSOURL,在IDaaS企业中心-【设置】-【服务配置】-【IDP配置】中获取, 示例:https://{your-doamin}/api/v1/saml2/idp/sso
    issuer GitLab的域名地址 ,示例:https://gitlab.example.com
    name_identifier_format 支持NameId格式,默认'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent'
    label GitLab登录界面sso按钮标签名称

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

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

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

  4. 修改完配置后,重启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. 配置认证参数,可以直接导入metadata文件,metadata文件的下载地址为gitlab服务的地址,比如https://{gitlab.example.com:8880}/users/auth/saml/metadata

  3. 进入应用详情, 配置认证集成

    参数 参数说明
    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参数

4配置属性映射,添加 email 属性

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

# 登录验证

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

  • 通过GitLab登录页发起:

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