欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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之5.2x版本之Gitlab单点登录-yellowcong

第二种配置

这种配置方式,可以直接使用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

CAS之5.2x版本之Gitlab单点登录-yellowcong

修改vim gitlab.yml 文件
CAS之5.2x版本之Gitlab单点登录-yellowcong

3、重启服务

#重新配置
gitlab-ctl reconfigure

#重启服务
gitlab-ctl restart

4、登录测试

测试登录,可以看到多了一个cas的登录,类似qq授权登录一毛一样。
CAS之5.2x版本之Gitlab单点登录-yellowcong

登录测试,可以看到域名的地址变更了。
CAS之5.2x版本之Gitlab单点登录-yellowcong

5、关联帐号

CAS之5.2x版本之Gitlab单点登录-yellowcong

常见问题

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.

CAS之5.2x版本之Gitlab单点登录-yellowcong

2、未认证授权的服务

导致这个问题的原因,就是没有在cas上接入这个服务。
CAS之5.2x版本之Gitlab单点登录-yellowcong

参考文章

https://docs.gitlab.com/ee/integration/cas.html
https://github.com/epipheus/omniauth-cas

相关标签: gitlab