GitLab支持多种 SSO 协议,本文档介绍如何在飞连通过 SAML 协议单点登录 GitLab。
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。
本文以 Gitlab 配置文件操作为例,您也可以在 GitLab 群组的设置 > SAML SSO 页面配置相关参数。
# 若您使用 Omnibus 方式安装 Gitlab,请使用以下命令: vim /etc/gitlab/gitlab.rb # 若您使用独立安装 Gitlab,请参考以下命令: cd /home/git/gitlab sudo -u git -H editor config/gitlab.yml
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", label: "使用飞连登录", args: { assertion_consumer_service_url: "http(s)://{gitlab.example.com}/users/auth/saml/callback", idp_cert_fingerprint: "{fingerprint}", idp_sso_target_url: "https://feilian_host}:{portal_port}/api/idp/sso", issuer: "https://{gitlab.example.com}", name_identifier_format: "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" } } ]
以上配置文件适用于使用 Omnibus 方式安装 Gitlab的场景,如果是独立安装 Gitlab,配置文件的格式不一样,但参数一样,具体请参见GitLab官网文档。
示例代码中的关键参数说明如下表所示。
配置项 | 说明 |
---|---|
omniauth_block_auto_created_users | 要允许您的用户使用 SAML 进行注册而无需先手动创建帐户,则可以设置为 |
omniauth_auto_link_saml_user | 如果 SAML 用户的电子邮件地址匹配,您可以自动将 SAML 用户与现有的 GitLab 用户链接起来。 |
label | Gitlab 登录页显示的按钮名称。 |
assertion_consumer_service_url | GitLab HTTPS 端点。 |
idp_cert_fingerprint | IDP 公钥证书指纹,请通过以下步骤获取证书 SHA1 指纹:
|
idp_sso_target_url | IDP SSO地址。配置文件示例代码中的 |
issuer | 填写 GitLab 的身份标识,请将配置文件示例代码中的 |
若您使用 Omnibus 方式安装 Gitlab,请使用如下命令重新加载配置文件并重启服务: sudo gitlab-ctl reconfigure sudo gitlab-ctl restart # 若您使用独立安装 Gitlab,请参考如下命令重启 GitLab: # 对于运行 systemd 的系统 sudo systemctl restart gitlab.target # 对于允许 SysV init 的系统 sudo service gitlab restart
登录飞连管理后台。
在左侧导航栏,单击应用接入。
在应用接入页面,单击右上角的应用市场。
在添加新应用页面的筛选条件区域,搜索 GitLab 应用模板卡片。
在搜索结果区域,单击该应用模版卡片,并在所选模板卡片的右下角,单击添加应用。
在填写应用信息页面,配置应用信息和应用功能并单击确定。
关键参数说明如下表所示。
配置项 | 说明 |
---|---|
应用名称 | 自定义应用的名称。 |
应用访问地址 | 请填写 GitLab 的服务地址。 |
协议类型 | 本示例中请选择 SAML。 |
GitLab 唯一标识 | GitLab 应用在飞连租户内的唯一标识,自定义,保证租户内所有应用唯一,格式为 |
GitLab 单点登录地址 | 格式为 |
应用网关 | 应用网关的配置项说明,请参见添加应用。 |
登录飞连管理后台。
在左侧导航栏,单击应用接入。
在应用列表中,单击对应应用的应用名称。
单击单点登录页签,单击映射关系右侧的编辑。
单击添加映射,在字段下拉列表中单击底部的添加扩展字段。
分别创建飞连字段和应用字段,字段的值如下表所示。
配置项 | 飞连字段的值 | 应用字段的值 |
---|---|---|
字段 Key | gitlab_username | app_user_id |
字段名称 | GitLab Username | NameID |
字段类型 | 字符串 | 字符串 |
添加飞连字段和应用字段的映射关系。