Jenkins使用OpenID身份验证仅限制访问Google Apps Domain用户

时间:2012-11-14 23:26:53

标签: authentication jenkins openid google-apps jenkins-plugins

使用Jenkins OpenID plugin我可以将Jenkins配置为使用我的Google Apps OpenID作为提供商。匿名用户仍然可以访问该应用程序(他们只有读取访问权限),但我想拥有它,以便用户被迫使用Google App域登录或拒绝访问。

我目前正在使用Jenkins授权设置“登录用户可以做任何事情”,我尝试使用“基于矩阵的身份验证”并拒绝匿名用户,假设登录用户仍然拥有权限,是否有特殊组值我可以用于基于矩阵的身份验证中的“登录用户”吗?

似乎“基于矩阵的安全性”仅适用于使用Google Apps OpenID的特定用户(我认为域名的Google应用不支持OpenIDTeam extension

enter image description here

1 个答案:

答案 0 :(得分:5)

是的,您可以使用一个特殊的组来执行此操作,但查找有关如何执行此操作的信息并不明显。 如果将鼠标悬停在基于Matrix的安全性表上的'Overall - Read'列上,您将获得解决方案。

说明

  

查看几乎所有Jenkins页面都需要读取权限。当您不希望未经身份验证的用户查看Jenkins页面时,此权限非常有用 - 从匿名用户撤消此权限,然后添加“已验证”的伪用户并授予读取权限。

我将以下技术与OpenID plugin结合使用,这允许我指定Google Apps for Business域以保护Jenkins

警告:确保在开始之前已经安装了备份,因为如果出现问题,您可能会将自己锁定在Jenkins之外。取消插件和设置所需的时间比仅从备份中恢复要长。

  1. 确保您选择的OpenID提供程序仍可正常使用当前的“登录用户可以执行任何操作”设置
  2. 选择“基于Matrix的安全”模式进行授权
  3. 将新的“经过身份验证的”组(小写“a”)添加到基于Matrix的安全性表。
  4. 使用新“已验证”行右侧的“全部检查”图标勾选所有权限框。
  5. 使用“匿名”行右侧的“全部检查”图标取消选中所有权限框。
  6. 保存设置
  7. Reload Jenkins
  8. Matrix-based security table with Overall-Read help text expanded as quoted earlier

    现在,每当用户想要查看Jenkins时,他们必须已经登录到他们的Google帐户,没有人可以在没有登录的情况下查看任何作业名称或视图。

    希望这有帮助。