如果您只想允许某些人,请先创建一个用户组(例如 developers)。仅为该组和forbid anonymous access 授予对您项目的访问权限。让人们在他们的 OpenId 提供商处注册(正如您所提到的,直接使用 Google 不再可能)。然后将它们添加到您创建的用户组,这样您就可以直接从 Web 界面管理每个项目的权限,而无需更改任何后端配置。
您可能会在这里结束,但如果您想加强用户验证(即避免意外将某些帐户添加到特权组),请查看auth.trustedOpenId 选项并在account_external_ids 表中调查您的用户的 OpenId 身份在 Gerrit 的数据库中。
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)
然后将您想要的 ID 添加到您的 ~/gerrit/etc/gerrit.config 文件中:
[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 实例中注册的其他用户将被视为不受信任 - 您可以前往 设置进行验证-> 身份 并调查特定电子邮件地址的状态 列。因此,此类用户将无法看到任何具有非公共访问权限的项目。当您在本示例中使用 user2@gmail.com 进行身份验证时,就会发生这种情况。
另请注意,最好在评论中的 trustedOpenId 条目之后输入电子邮件地址(; 符号是评论),以便列表可维护。
最后要记住的是在 gerrit 配置文件发生任何更改后重新启动您的 Gerrit 实例。