我希望只有少数人拥有Google电子邮件地址,才能在我们的Gerrit服务器上进行源代码审查。应阻止对Gerrit服务器的所有其他访问。
这些Google电子邮件地址发布在我们工作办公室的公共网站上,因此电子邮件地址本身不会保密。
我想避免使用LDAP进行Gerrit配置,因为它增加了太多的复杂性(在我看来)。
我首先创建了一个运行Ubuntu 14.04的Amazon EC2实例。然后,我将Amazon EC2防火墙配置为阻止除了本地台式计算机的IP地址之外的所有实例访问。当然,这需要在Gerrit服务器配置正确后再进行更改。允许的用户应该能够从世界上任何地方访问Gerrit服务器,以便以后不会有IP地址限制。
Gerrit配置现在看起来像这样:
$ grep -A1 auth ~/gerrit/etc/gerrit.config
[auth]
type = OPENID
Google似乎有deprecated its OpenID 2.0 service因此我无法直接使用我的Google电子邮件地址登录Gerrit网络界面。但我可以先登录Verisingslabs OpenID provider网站登录。
只允许少数Google电子邮件地址进行读写访问但阻止对Gerrit服务器的所有其他类型访问所需的配置步骤是什么?
答案 0 :(得分:2)
如果您只想允许某些人,请先创建一个用户组(例如 developers )。只允许该组和forbid anonymous access访问您的项目。让人们注册他们的OpenId提供商(正如您所提到的,直接使用Google不再可能)。然后将它们添加到您创建的用户组中,这样您就可以直接从Web界面管理每个项目的权限,而无需更改任何后端配置。
您可能会在此结束,但如果您想加强用户验证(即避免意外地向特权组添加某些帐户),请查看auth.trustedOpenId选项并调查您的用户' Gerrit数据库中account_external_ids
表中的OpenId标识。
mysql> SELECT email_address,external_id FROM account_external_ids;
+---------------------------+----------------------------------------------------------------------------------+
| email_address | external_id |
+---------------------------+----------------------------------------------------------------------------------+
| user1@gmail.com | https://www.google.com/accounts/o8/id?id=AItOawlLlop2Tsff-minfwxCQDD6iUznIr7XX6A |
| user2@gmail.com | https://www.google.com/accounts/o8/id?id=AItOawlSyAHBwdEojjUUdsmVx7UElthSGRby4ho |
| user3@gmail.com | https://www.google.com/accounts/o8/id?id=AItOawmiLGmvJIvx6jiPrNQ8NgovAqsA0NNq985 |
+---------------------------+----------------------------------------------------------------------------------+
3 rows in set (0.00 sec)
然后只在您的~/gerrit/etc/gerrit.config
文件中添加您想要的ID:
[auth]
type = OPENID
trustedOpenId = https://www.google.com/accounts/o8/id?id=AItOawlLlop2Tsff-minfwxCQDD6iUznIr7XX6A ; user1@gmail.com
trustedOpenId = https://www.google.com/accounts/o8/id?id=AItOawmiLGmvJIvx6jiPrNQ8NgovAqsA0NNq985 ; user3@gmail.com
在上述配置中,只允许user1@gmail.com
和user3@gmail.com
拥有超出授予匿名用户和注册用户组的权限的权限。
请注意,在您创建第一个非默认trustedOpenId
条目后,在Gerrit实例中注册的其他用户将被视为 Untrusted - 您可以通过转到设置 - >身份并调查特定电子邮件地址的状态列。因此,此类用户将无法看到具有非公共访问权限的任何项目。当您在演示的示例中使用user2@gmail.com
进行身份验证时,会发生这种情况。
另请注意,在评论trustedOpenId
符号为注释后;
条目后输入电子邮件地址是个好主意,因此列表是可维护的。
最后要记住的是在gerrit配置文件发生任何更改后重新启动Gerrit实例。