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...

相关推荐
醉颜凉14 天前
Elasticsearch高性能优化:Bulk API大规模数据导入性能调优全攻略
elasticsearch·性能优化·jenkins
sbjdhjd15 天前
从零搭建企业级 CI/CD(下):Jenkins+GitLab+Harbor 全链路实战指南
git·servlet·ci/cd·云原生·云计算·gitlab·jenkins
小美元15 天前
【爽之】使用jenkins实现前端一键发版
运维·jenkins
changxiang15 天前
Jenkins备忘
运维·jenkins
未若君雅裁17 天前
日志采集与ELK:从本地日志到集中检索分析
运维·elk·jenkins
Dontla17 天前
CI/CD前世今生(持续集成、持续交付、持续部署、Jenkins、Github Actions)
ci/cd·github·jenkins
Java 码思客18 天前
【ElasticSearch从入门到架构师】第7章-聚合查询——实现数据统计与分析
大数据·elasticsearch·jenkins
逻极18 天前
Jenkins 从入门到精通:CI/CD自动化流水线实战
ci/cd·自动化·jenkins·devops
炸炸鱼.18 天前
Git+Jenkins实战(一):从零搭建自动化发布与回滚系统(附完整代码)
git·jenkins
无人生还别怕19 天前
搭建jenkins服务并接入openldap认证
运维·jenkins