如何在 Jenkins 中设置多种身份验证方式,例如 LDAP 和 Jenkins 用户数据库?

Posted

技术标签:

【中文标题】如何在 Jenkins 中设置多种身份验证方式,例如 LDAP 和 Jenkins 用户数据库?【英文标题】:How to setup multiple way of authentication in Jenkins such as LDAP and Jenkins User database? 【发布时间】:2018-04-20 09:15:10 【问题描述】:

实际上我们 Jenkins 的身份验证是通过 LDAP 完成的。

我团队中的一些人不是 LDAP 的成员。

有没有办法同时使用 LDAP 和 Jenkins 用户数据库?

【问题讨论】:

使用混合安全领域插件可能是可能的:github.com/jenkinsci/mixing-security-realm-plugin 【参考方案1】:

如前所述,这是不可能的。功能请求是JENKINS-15063。

但是,可以通过几种方式进行近似(尽管 Jenkins 用户数据库仍然无法使用)。

对于多个 LDAP 领域,您可以设置一个组合森林的代理服务器。 使用PAM,您可以定义多个身份验证源和回退,例如/etc/pam.d/jenkins

【讨论】:

【参考方案2】:

是的,这是可能的,需要 2 个步骤:

    添加用户导航到 Jenkins -> 管理 Jenkins -> 配置全局安全性。 在授权下,您需要配置谁可以做什么。您可以添加 LDAP 组和/或用户并微调允许他们执行的操作。 如果您启用了基于矩阵或基于项目/矩阵的授权,那么您有一个字段来添加新用户/组。您可以添加 LDAP 已知或未知的用户。 添加凭据 如果您添加了 LDAP 不知道的用户,您需要在 Jenkins 中创建凭据(即密码)。 导航到 Jenkins -> 凭证 -> 系统 -> 全局凭证 -> 添加凭证 然后添加用户名和密码。

【讨论】:

对我不起作用。至少对于 Jenkins 2.150.3。它给了我401 Invalid password/token for user: non_ldap_user 凭证用于访问第三方网站/工具,不用于登录詹金斯

以上是关于如何在 Jenkins 中设置多种身份验证方式,例如 LDAP 和 Jenkins 用户数据库?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MVC 5 中设置本地授权身份验证?

如何在 Vue 中设置身份验证状态更改?

如何在 ASP.NET Core 2.0 中设置多个身份验证方案?

如何在 Django 休息框架 ViewSet 中设置方法不需要身份验证

在 XMPPFramework 中设置 Facebook SASL 身份验证

如何在 Jenkins 中设置默认编码?