我已经在 Ubuntu 机器上安装了 Jenkins 并成功构建。我想在 Google 应用程序的帮助下进行身份验证。我觉得会更好,我搜索了与此相关的插件,但我找不到它。这是否可以通过插件或其他方式实现?请让我知道该怎么做。提前致谢
4 回答
现在 Google 已弃用对 OpenID 的支持,您可以使用与 Google Apps 配合良好的Google 登录插件。
您可以使用OpenID 插件通过 Google Apps 实现单点登录。设置非常简单,您基本上安装插件,选择“Google Apps SSO (with OpenID)”并输入您的域。请注意,之后用户必须拥有谷歌应用程序帐户才能登录。
提示:您可以考虑将其与角色策略插件结合使用
在 Jenkins 中,默认情况下未启用用户身份验证,但我们可以从全局安全部分建立用户身份验证。我们必须为团队成员创建用户,它在自己的数据库中维护所有用户。但我们也可以使用Google OAuth配置 Jenkins 。因此,如果您正在利用 Google 服务并且已经拥有用户。用户可以登录 Jenkins 并执行他们的任务。
要实现 Google OAuth,我们建议jenkinsci/google-login-plugin
( https://github.com/jenkinsci/google-login-plugin ) 这是一个Jenkins 插件,可让您使用 Google 帐户登录 Jenkins。还允许您限制对给定 Google Apps 域中帐户的访问。
我假设我们已经安装了 Jenkins 服务器并且拥有对其进行更改的管理员权限。整个配置分为三个简单的步骤。
1. 获取 Google OAuth 凭据
要使用此插件,您必须从Google Developers Console
( https://console.developers.google.com ) 获取 OAuth 2.0 凭据。这些不需要属于特殊帐户,甚至不需要属于与您要限制登录的域相关联的帐户。
创建 Client ID 和 Secret 的说明:
登录 Google 开发者控制台
创建一个新项目,在弹出的窗口中指定你的项目名称,它可以是任何对你来说更有意义的名称,例如:
Jenkins OAuth
. 在这个项目中,我们将生成身份验证凭据以启用 OAuth API。在左侧边栏下的 APIs & Services (API Manager) -> Credentials, Create credentials, OAuth 客户端 ID(它将生成 API 凭证,这些凭证需要在最后一步在 Jenkins 中进行配置)。
由于我们将把它集成到 Jenkins 中并且它是一个 Web 服务,所以应用程序类型应该是“Web 应用程序”
从我们允许访问 Google API 的地方注册 Jenkins URI。我们必须提供 Jenkins 服务器的详细信息。您可以 用您自己的 Jenkins URI替换您的JENKINS_ROOT_URL = 。
http:jenkins.mydomain.com
这将是您的 Jenkins 服务器的登录页面。一旦您点击此页面,它将被重定向到谷歌进行身份验证。成功登录后需要授权的重定向 URI 来重定向您。它是您的 Jenkins 登录页面和后缀字符串的组合,用于验证您是登录用户。由于我们希望将用户登陆到 Jenkins 仪表板,因此它具有我们在上一步中提到的相同 URI,并且不要忘记
securityRealm/finishLogin
在最后包含。所以授权的重定向 URL 应该是这样的${JENKINS_ROOT_URL}/securityRealm/finishLogin
。例如:
http://jenkins.mydoamin.com/securityRealm/finishLogin
复制并保存Client ID 和 Client Secret,这些凭据将用于在 Jenkins 中启用 Google API(安全领域配置)。
2.安装谷歌登录插件
在 Jenkins 中,没有配置 OAuth 的机制,但是有很多插件可用,我们使用的是Google Login 插件。Manage Jenkins
我们可以很容易地从-> Manage Plugins
->安装这个插件,Available
然后搜索“Google Login”。选择插件。无需重新启动即可安装此插件。该插件允许注册 Google OAuth 并执行身份验证。
3.配置詹金斯
在这一步中,我们将在已安装的插件中设置 Google 安全凭证。导航到Manage Jenkins
->并在Security RealmConfigure Global Security
下选择在第一步中生成的粘贴凭据(客户端 ID 和密码)。在最后一个字段中不要忘记输入您的域名,它允许您限制对给定域名的访问。Login with Google
保存更改后,Jenkins 将立即允许访问您域中的所有用户。现在,尝试登录您的 Jenkins,它会将您重定向到 Google 身份验证页面。如果一切设置正确,您将登录,但以防万一您仍然面临任何问题,请返回并检查每个步骤。登录的用户可以做任何事情,如果你想限制用户,你可以实现角色策略插件(https://wiki.jenkins.io/display/JENKINS/Role+Strategy+Plugin)安全。
我使用名为 elinks 的命令行浏览器登录到他们的 html 邮件服务器http://m.gmail.com。使用 Elinks 中的 shift 进行复制和粘贴。
http://minimallinux.blogspot.com/2012/07/centos-6rhel-install-elinks-text-browser.html
我将一个文本消息脚本从一个詹金斯框切换到另一个,并且必须这样做才能让谷歌让我使用该 IP。