如何在 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 用户数据库?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ASP.NET Core 2.0 中设置多个身份验证方案?
如何在 Django 休息框架 ViewSet 中设置方法不需要身份验证