Jenkins 接入 Microsoft Azure AD 登录

介绍

Jenkins 可以通过安装插件,支持像 Microsoft Azure AD,Google,LDAP,Keycloak 等认证登录。下面介绍下如何配置 jenkins 接入 Microsoft Azure AD 认证。

通过 SAML 接入 Microsoft Entra ID(Azure AD)登录

在 Microsoft Entra ID 中设置

登录 Microsoft Entra 管理中心 entra.microsoft.com/#home,也可以从老... portal 界面 portal.azure.com/ 点击 Microsoft Entra ID 进去。

创建企业应用

在 应用程序 → 企业应用程序 → 新建应用程序 → 选择 "创建自己的应用程序"

填写应用的名称,选择集成未在库中找到的任何其他应用程序(非库),点击创建

配置 SAML

在应用详情页,选择 设置单一登录 → SAML

需要配置 Entity IDReply URL,url 中的 host 需要与 jenkins 全局配置的 host 一致。

  • 标识符(实体 ID) :填写 Jenkins 的 SAML 实体 ID(如 https://<jenkins-url>/
  • 回复 URL :填写 Jenkins 的 Reply URL https://<jenkins-url>/securityRealm/finishLogin

属性和索赔(这里中文翻译有问题,应该翻译成属性和声明会准确一些)配置。默认情况下,以下属性将被发送到 SAML 令牌中。您可以在用户属性和声明选项卡下查看或编辑发送到应用程序的声明。

可以使用"添加新的声明"来添加属性,或者使用"添加组声明"来添加组属性声明

添加用户和组

把对应的用户和组加上

创建客户端密码或者证书

在应用程序 -> 应用注册 -> 所有应用程序,找到刚创建的应用程序,点击进去。

在证书和密码,点击新客户端密码。创建后把 value 保存下,只显示一次而已,后续还要在 jenkins 上配置。

启用 ID 令牌

在身份验证,在隐式授权和混合流,选择 ID 令牌(用于隐式流和混合流),默认勾选上。

开启 Microsoft Entra ID group support (optional)

在清单,修改"groupMembershipClaims": null -> "groupMembershipClaims": "SecurityGroup"。

设置 Microsoft Entra ID 权限(可选,但推荐)

为了让 Jenkins 能够从 Microsoft Entra ID 查找数据,需要一些 Graph API 权限。这是用于:

  • 在"安全"页面上自动完成用户和组
  • Jenkins 查找用户,例如在使用 Rest API 时
  • 组显示名称支持(而不仅仅是对象 ID)

点击 API 权限,添加权限

点击 Microsoft Graph

点击应用程序权限

搜索和选上这三个权限 'User.Read.All', 'Group.Read.All' , 'People.Read.All',点击添加权限

点击代表***授予管理员同意

配置 Jenkins

安装插件 Microsoft Entra ID (previously Azure AD)

备份 jenkins config.xml 配置文件

在配置 jenkins 使用 Microsoft Entra ID 认证前,先备份下 jenkins config.xml 配置文件。

bash 复制代码
# config.xml 在 JENKINS_HOME 下
cp -a $JENKINS_HOME/config.xml $JENKINS_HOME/config.xml.bak

配置 Authentication

在 Manage Jenkins -> Security -> Security

安全域选择 Azure Active Directory, 填写 Client ID, Client Secret 或者 Client Certificate 和 Tenant。Client ID 和 Tenant 可以在上面配置的 jenkins 应用程序概述里找到。

然后填写 Test user principal name or object id,在点击 Verify configuration。验证成功后会有提示返回。

配置授权策略

选择 Azure Active Directory Matrix-based security,该插件扩展了传统的 Matrix Authorization Strategy,能够在配置授权规则时根据用户/组的显示名称进行搜索。

建议一开始可以将 Authenticated Users 授权最高的 Administer 权限,防止等下配置完保存后,有问题没有权限配置而需要回滚配置。对接 Microsoft Entra ID 后,jenkins 的用户是跟 Microsoft Entra 用户的对象 ID 对应。

参考文档

plugins.jenkins.io/azure-ad/

cloudinfrastructureservices.co.uk/jenkins-sso...

www.miniorange.com/atlassian/s...

www.jenkins.io/doc/book/se...

相关推荐
童槿顏丶2 天前
Jenkins部署(Docker)
java·docker·jenkins
Elastic 中国社区官方博客6 天前
使用 Elasticsearch open inference API 对 OpenAI chat completions 进行支持
大数据·elasticsearch·搜索引擎·全文检索·jenkins
X1A0RAN8 天前
Jenkins Pipeline 变量打印指南
运维·servlet·jenkins
heimeiyingwang8 天前
【CI/CD·Jenkins篇】多节点构建:Agent 配置与任务分发策略
ci/cd·jenkins
heimeiyingwang8 天前
【CI/CD·Jenkins篇】环境搭建:从零部署 Jenkins 主从架构
ci/cd·jenkins
heimeiyingwang8 天前
【CI/CD·Jenkins篇】Pipeline 基础:Declarative 与 Scripted 语法详解
ci/cd·pipeline·jenkins
遨游DATA10 天前
Jenkins 修改 config.xml 后页面仍是旧配置:让 live job 配置真正生效
ci/cd·jenkins·devops·故障排查·config.xml
Dobby_0510 天前
【CICD】Jenkins Pipeline 快速学习入门
运维·学习·jenkins
上海安当技术10 天前
统一身份认证平台怎么落地?11 个异构业务系统接入 ASP 的完整实施路径
数据库·servlet·架构·kubernetes·jenkins
回眸不遇11 天前
Elasticsearch嵌套类型nested使用指南
大数据·elasticsearch·jenkins