Gerrit Web 界面认证的类型

2019-04-02 0 By admin

一、OpenID模式

默认的鉴权方式为 openid,即使用任何支持OpenID 的认证源(如 Google、Yahoo!)进行身份认证。此模式支持用户自建帐号,用户通过OpenID 认证源的认证后,Gerrit 会自动从认证源获取相关属性如用户全名和邮件地址等信息创建帐号。
如果是开放服务的Gerrit服务,使用OpenId认证是最好的方法,就像谷歌Android项目的代码审核服务器配置的那样。任何人只要在具有OpenId provider的网站上(如Google、Yahoo等)具有帐号,就可以直接通过OpenId注册,Gerrit会在用户登录OpenId provider网站成功后,自动获取(经过用户的确认)用户在OpenId provider站点上的部分注册信息(如用户全名或者邮件地址)在Gerrit上自动为用户创建帐号。

二、LDAP模式(推荐)

如果有可用的 LDAP 服务器,可以直接使用LDAP 中的已有帐号进行认证,不过此认证方式下 Gerrit 的自建帐号功能是关闭的。
如果架设有LDAP服务器,并且用户帐号都在LDAP中进行管理,那么采用LDAP认证也是非常好的方法。登录时提供的用户名和口令通过LDAP服务器验证之后,Gerrit会自动从LDAP服务器中获取相应的字段属性,为用户创建帐号。创建的帐号的用户全名和邮件地址因为来自于LDAP,因此不能在Gerrit更改,但是用户可以注册新的邮件地址。
我在配置LDAP认证时遇到了一个问题就是创建帐号的用户全名是空白,这是因为在LDAP相关的字段没有填写的原因。如果LDAP服务器使用的是OpenLDAP,Gerrit会从displayName字段获取用户全名,如果使用Active Directory则用givenName和sn字段的值拼接形成用户全名。

三、HTTP模式

此认证方式需要配置 Apache 的反向代理,并在Apache 中配置 Web 站点的口令认证,通过口令认证后Gerrit 在创建帐号的过程中会询问用户的邮件地址并发送确认邮件。
Gerrit还支持使用HTTP认证,这种认证方式需要架设Apache反向代理,在Apache中配置HTTP认证。当用户访问Gerrit网站首先需要通过Apache配置的HTTP Basic Auth认证,当Gerrit发现用户已经登录后,会要求用户确认邮件地址。
当用户邮件地址确认后,再填写其他必须的字段完成帐号注册。HTTP认证方式的缺点除了在口令文件管理上需要管理员手工维护比较麻烦之外,还有一个缺点就是用户一旦登录成功后,想退出登录或者更换其他用户帐号登录变得非常麻烦,除非关闭浏览器。
关于切换用户有一个小窍门:例如Gerrit登录URL为https://server/gerrit/login/,则用浏览器访问https://nobody:wrongpass@server/gerrit/login/,即用错误的用户名和口令覆盖掉浏览器缓存的认证用户名和口令,这样就可以重新认证了。

四、development_become_any_account

任何访问者都可以使用管理账号