From 0d57595c67d6beadd2e207f2f4972898de3e055c Mon Sep 17 00:00:00 2001 From: liuxiaohua Date: Fri, 3 Jan 2025 16:30:18 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20[2025-01-03]=20=E6=B7=BB=E5=8A=A0Je?= =?UTF-8?q?nkinsSaml=E9=85=8D=E7=BD=AE=E6=8C=87=E5=8D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4-Jenkins SAML 插件整合 Keycloak 配置指南.md | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 教程/20250104-Jenkins SAML 插件整合 Keycloak 配置指南.md diff --git a/教程/20250104-Jenkins SAML 插件整合 Keycloak 配置指南.md b/教程/20250104-Jenkins SAML 插件整合 Keycloak 配置指南.md new file mode 100644 index 0000000..1cb962b --- /dev/null +++ b/教程/20250104-Jenkins SAML 插件整合 Keycloak 配置指南.md @@ -0,0 +1,68 @@ + + + + + + + + + + + + + +# Jenkins SAML 插件整合 Keycloak 配置指南 + +## SAML 插件安装 +![](https://picture.texous.cn/blog/20250103151018411.png) + +## Jenkins SAML配置 +### Security > Security Realm +#### 检索 Jenkins 服务提供商元数据 +- 选择 `SAML2.0` +- `IdP Metadata URL` 配置 Keycloak `http://keycloak.qifu.com/realms/keyfil/protocol/saml/descriptor` +- `Refresh Period` 配置为 `1440` (24h, 建议值) +- 单击 `Validate IdP Metadata` 以确保可以获取元数据 +- 点击 `Apply` +- 查找 `Service Provider Metadata` 链接并将其另存为 XML 文件,例如 `jenkins-sp-metadata.xml` +- **不要关闭页面** + +#### 将新客户端导入 Keycloak 领域 +- 在 `客户端(clients)` 页面上选择 `导入客户端(Import client)` +- 选择刚刚保存的 `jenkins-sp-metadata.xml` 作为您的 `Resource file` +- (可选)提供有意义的 Name 和 Description +- **不要修改客户端ID,不要修改客户端ID,不要修改客户端ID** +- 点击保存 +- 找到 `Name ID format` 字段并更改为 `username` 或 `persistent` +- 切换到 `客户端范围` 标签 +- 打开客户端 dedicated 范围 +- 添加 `预定义映射` +- 选择 `X500 email` 、 `X500 givenName` , `X500 surname` 然后单击 `添加` +- 记录里面的 `SAML Attribute Name` + +#### 回到 Jenkins +- 配置 `Display Name Attribute` 为 `urn:oid:2.5.4.42` +- 配置 `Email Attribute` 为 `urn:oid:1.2.840.113549.1.9.1` +- 配置 `Group Attribute` 为 `Role` +- 以上配置来自 Keycloak 最后一步记录的 `SAML Attribute Name` 值 +- 点击 Save + + +### 建议 +- 初次配置时可以将 Authorization 配置为 `Anyone can do anything` +- 主要是当 saml 配置错误的时候还可以修改,不需要改配置 +- 等验证完成后再修改回去 +- ![](https://picture.texous.cn/blog/20250103162834235.png) + +## 参考 + +- [Jenkins SAML Keycloak](https://github.com/jenkinsci/saml-plugin/blob/main/doc/CONFIGURE_KEYCLOAK.md) \ No newline at end of file