GitLab支持SAML协议的参考官方文档配置: https://docs.gitlab.com/ee/integration/saml.html

Gitlab本地部署可以参考 https://www.cnblogs.com/straycats/p/7637373.html 版本号: gitlab-ce-12.2.1-ce.0.el7.x86_64.rpm

Gitlab常用命令:

# 启动Gitlab
gitlab-ctl start

# 停止Gitlab
gitlab-ctl stop

# 重启Gitlab
gitlab-ctl restart

# 重新加载Gitlab配置
gitlab-ctl reconfigure

# 查看状态
gitlab-ctl status

# 查看所有的logs
gitlab-ctl tail
		

一、在IDaaS中创建一个SAML应用

  1. 在添加应用页面,选择saml应用点击添加

  2. 添加SigningKey

  3. 创建SAML应用 配置参数可以先随意填写,之后还要进行修改

二、修改gitlab配置文件

注意 在修改配置时请将下面的注释删除,避免gitlab配置格式的影响

vim /etc/gitlab/gitlab.rb

#允许用户使用SAML进行注册而无需手动创建账户
gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = ['saml']
gitlab_rails['omniauth_block_auto_created_users'] = false
#设置自动将SAML用户与现有的GitLab用户连接
gitlab_rails['omniauth_auto_link_saml_user'] = true
#添加提供程序配置
gitlab_rails['omniauth_providers']=[ 
{
	name: 'saml',
	args: {
        	#gitlab的断言地址,标绿部分替换为gitlab实际的地址
	  		assertion_consumer_service_url:'http://192.168.20.178/users/auth/saml/callback',
        	#证书的指纹信息,在IDaaS配置SAML应用后获取
			idp_cert_fingerprint:'a9:68:15:e2:35:3f:1e:de:ea:ac:26:62:a3:88:aa:9c:62:4e:e7:8a',
		#固定格式,http://192.168.20.173:8080为IDaaS域名地址,lin1121samlIDaaS中对应的saml应用ID,请根据实际信息进行调整
			idp_sso_target_url:'http://192.168.20.173:8080/public/api/application/saml/lin1121saml/sp_sso',
        	#一般为固定格式,可以在gitlab登录页获取
			issuer:'http://192.168.20.178/users/auth/saml',
			name_identifier_format:'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent',
            	},
	#标签,可以根据需要随意更改
	label:'IDaaS'
}]
		

各参数具体获取方法如下

  • assertion_consumer_service_url获取方式如下:
  • idp_cert_fingerprint获取方式如下:

1、导出证书

在添加应用界面,选择saml应用模板,点击添加应用。选择之前创建的SigningKey,点击导出

2、查看指纹。

打开证书,点击详细信息-指纹获取指纹。然后每两个数字后面加上一个冒号 : ,跟文档的格式保持一致。
  • idp_sso_target_url获取方式已在上面备注中描述,格式为 IDaaS域名地址/public/api/application/saml/saml应用ID/sp_sso

    如: http://192.168.20.173:8080/public/api/application/saml/lin1121saml/sp_sso

    说明 IDaaS域名地址可以在云盾IDaaS管理控制台获取。
  • issuer获取方式如下:

修改完配置之后,在命令行中输入以下命令重启gitlab,刷新配置信息

gitlab-ctl stop
gitlab-ctl reconfigure
gitlab-ctl start
		

三、修改saml应用配置

修改saml应用配置如下

四、添加应用子账户

在应用列表中,选择对应应用,点击查看应用子账户,为账户添加应用子账户。

五、设置Gitlab对应账户标识(IDaaS中的子账户)

使用root账户登录,为账户添加账户标识

完成以上步骤,即可单点登录到gitlab。