背景介绍

整合 LDAP

修改 gerrit.config

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

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

[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

重启服务

# gerrit restart

测试

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

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

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

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

至此,Gerrit整合LDAP完成。

整合 CAS

修改 gerrit.config

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

修改[auth]部分

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

mod_auth_cas修改

然后安装mod_auth_cas

# yum -y install mod_auth_cas

配置mod_auth_cas

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

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

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 配置文件

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

添加反向代理

# 添加一个监听端口 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>

重启服务

# 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单点登录完成。