GitLab11.3.9 使用 Crowd3.3.2 的帐号实现 SSO 单点登录,以及GitLab配置腾讯企业邮箱
GitLab11.3.9
的安装方法: 点击查看。
Crowd3.3.2
的安装方法:点击查看。
需要先在 Crowd
创建应用程序,参考 <Docker 创建 Crowd3.3.2 以及打通 Jira Software7.12.3和Confluence6.12.2 SSO 单点登录> 中的 4.12章节
,在 Application type
选择 Generic Application
, Description
输入Gitlab Applicaton
, Name
输入 gitlab
, Password
输入 123456
,然后点击 Next
,其他步骤参考 4.12章节
。
GitLab
与 Crowd
打通需要修改 gitlab.rb
修改后的内容如下:
external_url 'http://localhost/'
gitlab_rails['initial_root_password'] = File.read('/run/secrets/gitlab_root_password')
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "test@mshk.top"
gitlab_rails['smtp_password'] = "email password"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'test@mshk.top'
gitlab_rails['smtp_domain'] = "exmail.qq.com"
gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = true
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_providers'] = [
{
"name" => "crowd",
"args" => {
"crowd_server_url" => "http://crowd.mshk.top/crowd",
"application_name" => "gitlab",
"application_password" => "123456"
}
}
]
crowd_server_url
修改成你的 Crowd 地址
修改以后,进行到容器中执行命令进行重置配置,并重启 gitlab
服务:
$ gitlab-ctl reconfigure && gitlab-ctl stop && gitlab-ctl start
重启以后,就可以使用 Crowd
中配置的帐号,进行登录。
博文作者:迦壹
博客地址:GitLab11.3.9 使用 Crowd3.3.2 的帐号实现 SSO 单点登录,以及GitLab配置腾讯企业邮箱
转载声明:可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明,谢谢合作!
4 thoughts on “GitLab11.3.9 使用 Crowd3.3.2 的帐号实现 SSO 单点登录,以及GitLab配置腾讯企业邮箱”
哈哈,又是我
这个是实现了认证登录,但是不能像他们同一家的其它产品那样实现SSO吧,还是需要输一次用户名和密码才行,不知道博主实现了登录jira或者confluence后,打开gitlab无需登录直接能进系统么?(先明确Sign out)
最近有些忙,没有时间来看博客。gitlab如果是在同一个域下也能够实现登录的,不过因为不是一个公司的产品,登录失效的时间不好确定。
我都是同一个域的,但是不能自动登录,还需要输入用户名和密码。
最近Jenkins集成Crowd却是另外的情况,先登录Jira等之后,要两次输入jenkins的首页地址才能自动登录,如果只是在登录页面刷新是无效的,所以我修改了了登录页,加了个首页连接,点两次就能自动登录了。
但是gitlab就是无法自动实现,不管是刷新还是从根域名进。
即使配置了只保留crowd登录,而不显示standard登录也不行:Sign-in restrictions里unchecked下面这个
Password authentication enabled for web interface
会不会和我使用了443端口和Let’s的证书有关系呢?
Gitlab、Jenkins、Crowd不是一个公司的产品,目前可以实现一套帐号登录,但在跨产品保留登录状态我也没有做太深的研究。