Gerrit 整合 ldap 和 CAS 单点登录

背景介绍

整合 LDAP

修改 gerrit.config

1
# vi /usr/local/review_site/etc/gerrit.config

请根据自己的LDAP服务器信息进行定制

1
2
3
4
5
6
7
8
9
[auth]
type = LDAP
[ldap]
server = ldap://devops.iamzhl.top:389
username = cn=Manager,dc=iamzhl,dc=top
password = passwd
accountBase = ou=People,dc=iamzhl,dc=top
groupBase = ou=People,dc=iamzhl,dc=top
accountFullName = uid

重启服务

1
# gerrit restart

测试

打开网址http://devops.iamzhl.top:8081,进入到Gerrit主页面

点击右上角Sign in,进入登录界面,输入LDAP服务器中的用户名和密码,然后点击Sign in

登录成功后跳转到用户主页面,正常获取用户名

点击用户名 -> Sign Out,正常退出

至此,Gerrit整合LDAP完成。

整合 CAS

修改 gerrit.config

1
# vi /usr/local/review_site/etc/gerrit.config

修改[auth]部分

1
2
3
4
[auth]
type = HTTP
httpHeader = X-Forwarded-Gerrit
logoutUrl = http://devops.iamzhl.top:8080/cas/logout

mod_auth_cas修改

然后安装mod_auth_cas

1
# yum -y install mod_auth_cas

配置mod_auth_cas

1
# vi /etc/httpd/conf.d/auth_cas.conf

修改CASCookie存储位置以及登录地址和验证地址等参数如下

1
2
3
4
5
6
7
8
9
LogLevel Debug
CASDebug On
CASVersion 2
CASTimeout 1740
CASIdleTimeout 1740
CASSSOEnabled On
CASCookiePath /var/cache/httpd/mod_auth_cas/
CASLoginURL http://devops.iamzhl.top:8080/cas/login
CASValidateURL http://devops.iamzhl.top:8080/cas/serviceValidate

修改 apache 配置文件

1
# vi /etc/httpd/conf/httpd.conf

添加反向代理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 添加一个监听端口 82 用作 Gerrit 的代理主机
Listen 82

# 加载 mod_auth_cas 模块,如果已经加载请忽略
LoadModule auth_cas_module modules/mod_auth_cas.so

# 设置 Gerrit 的虚拟主机
<VirtualHost *:82>
ServerName devops.iamzhl.top
ServerAdmin 15563836030@163.com

CASRootProxiedAs http://devops.iamzhl.top:82

ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

<Location "/login/">
AuthType CAS
AuthName "Welcome To Gerrit Code Review"
Require valid-user
CASAuthNHeader X-Forwarded-Gerrit
</Location>

AllowEncodedSlashes On

ProxyPass / http://devops.iamzhl.top:8081/
ProxyPassReverse / http://devops.iamzhl.top:8081

ErrorLog /var/log/gerrit/error.log
CustomLog /var/log/gerrit/access.log common
</VirtualHost>

重启服务

1
2
3
# mkdir /var/log/gerrit
# gerrit restart
# systemctl restart httpd

测试

打开网址http://devops.iamzhl.top:82,发现自动跳转到了CAS的登录界面,网址是http://devops.iamzhl.top:8080/cas/login?service=http%3a%2f%2fdevops.iamzhl.top%3a82%2f

输入用户名密码后,点击登录,登陆成功,地址是http://devops.iamzhl.top:82//#/dashboard/self

点击用户名 -> Sign Out,就会登出

登出界面如下,地址是http://devops.iamzhl.top:8080/cas/logout

至此,Gerrit整合CAS单点登录完成。

-------------本文结束感谢您的阅读-------------
请站长喝杯咖啡吧´◡`