CAS之5.2x版本之Gitlab单点登录-yellowcong
程序员文章站
2022-05-05 12:10:45
...
配置gitlab的单点登录,这个地方需要注意的是,有两种方案,1、用户必须有gitlab的账户才能用cas账户登录,这种做法,需要手动与cas用户关联。2、可以直接通过cas登录gitlab,不需要有gitlab的用户。
1、配置gitlab.rb文件
/etc/gitlab/gitlab.rb,这个地方,添加cas服务器的配置。
a、配置cas的服务
这种方式,需要有gitlab的服务,让后手动绑定cas服务,才可以使用gitlab服务。
gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_block_auto_created_users'] = true
gitlab_rails['omniauth_providers'] = [
{
"name" => "cas3",
"label" => "cas",
"args" => {
"url"=> 'http://192.168.1.99:9000',
"login_url"=> '/login',
"service_validate_url"=> '/p3/serviceValidate',
"logout_url"=> '/logout'
}
}
]
第二种配置
这种配置方式,可以直接使用cas登录,不需要有gitlab的账户
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_sync_email_from_provider'] = 'cas3'
gitlab_rails['omniauth_sync_profile_from_provider'] = ['cas3']
gitlab_rails['omniauth_sync_profile_attributes'] = ['email','name']
gitlab_rails['omniauth_external_providers'] = ['cas3']
gitlab_rails['omniauth_providers'] = [
{
"name"=> "cas3",
"label"=> "mycas",
"args"=> {
"url"=> 'http://192.168.1.99',
"login_url"=> '/login',
"service_validate_url"=> '/p3/serviceValidate',
"logout_url"=> '/logout'
}
}
]
#
#配置的时候,一定要配置为域名,不要搞成ip的形式
gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = ['cas3']
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_sync_email_from_provider'] = 'cas3'
gitlab_rails['omniauth_sync_profile_from_provider'] = ['cas3']
gitlab_rails['omniauth_sync_profile_attributes'] = ['email','name']
gitlab_rails['omniauth_external_providers'] = ['cas3']
gitlab_rails['omniauth_providers'] = [
{
"name"=> "cas3",
"label"=> "sso",
"args"=> {
"host"=> 'sso.yellowcong.net',
"url"=> 'https://sso.yellowcong.net',
"login_url"=> '/login',
"service_validate_url"=> '/p3/serviceValidate',
"logout_url"=> '/logout'
}
}
]
b、配置域名
我们配置玩了域名后,还需要在cas中,添加相应的服务,不然就会报未认证授权的服务
#这个也是git的配置文件
#/etc/gitlab/gitlab.rb
external_url 'http://git.yellowcong.net'
2、修改gitlab地址名称
/opt/gitlab/embedded/service/gitlab-rails/config
修改vim gitlab.yml 文件
3、重启服务
#重新配置
gitlab-ctl reconfigure
#重启服务
gitlab-ctl restart
4、登录测试
测试登录,可以看到多了一个cas的登录,类似qq授权登录一毛一样。
登录测试,可以看到域名的地址变更了。
5、关联帐号
常见问题
1、用户不存在
报错是说,你不可以通过cas登录一个不存在的用户,解决的办法就是通过账户登录后,再绑定cas,然后通过cas来登录服务。
Signing in using your cas account without a pre-existing GitLab account is not allowed. Create a GitLab account first, and then connect it to your cas account.
2、未认证授权的服务
导致这个问题的原因,就是没有在cas上接入这个服务。
参考文章
https://docs.gitlab.com/ee/integration/cas.html
https://github.com/epipheus/omniauth-cas
推荐阅读
-
SSO之CAS单点登录实例(非常详细)
-
CAS之5.2x版本自定义返回消息-yellowcong
-
CAS之5.2x版本之OAuth2.0-yellowcong
-
CAS之5.2x版本之服务器开发调试(eclipse调试cas)-yellowcong
-
CAS之5.2x版本之服务管理-yellowcong
-
CAS之5.2x版本之Gitlab单点登录-yellowcong
-
CAS之5.2x版本之Confluence单点登录-yellowcong
-
CAS之5.2x版本之Jira单点登录-yellowcong
-
CAS之5.2x版本之客户端集成(Springboot)-yellowcong
-
CAS之5.2x版本之jdbc配置多返回值-yellowcong