如何在keycloak中为jenkins设置基于角色的登录

hok*_*ang 3 openid jenkins keycloak

我是keycloak的初学者。我需要帮助。

我有 SSO 解决方案,我想将它与 jenkins 集成。在这一点上,我想允许一些基于用户的角色。

OpenID -- keycloak -- jenkins : openid中的所有用户都可以登录jenkins(我不要)

OpenID -- keycloak (check role) -- jenkins : 所有在 openid 中并且在 keycloak 中有特定角色的用户都可以登录 jenkins (我想要)

我认为这是使用keycloak的非常简单和常见的例子,但我找不到解决方案。

我做的步骤在这里。

  1. 在 jenkins 中安装 keycloak 插件。
  2. 安装 keycloak(使用 helm 的 5.0.0 版)
  3. 创造境界
  4. 创建身份提供者 (OpenID)
  5. 创建客户端(名为 jenkins)
  6. 安装选项卡 > 将 Keycloak OIDC JSON 复制到 Jenkins

(参考。https://wiki.jenkins.io/display/JENKINS/keycloak-plugin

现在,我可以成功登录 jenkins。

  1. 在领域中的角色中创建角色
  2. 在 (jenkins) 客户端中,开启 Authorization Enabled
  3. 授权选项卡 > 策略选项卡 > 创建策略 > 角色

选择领域角色并检查需要

  1. 在 Jenkins 配置中更新 JSON。

它完成了,但它不起作用。

Chr*_*ter 7

我通过以下方式管理它(使用 Keycloak 8.0.1,Jenkins 2.208):

钥匙斗篷

  1. 创造境界 在此处输入图片说明
  2. 创建客户端“jenkins” - 将根 url 设置为 Jenkins-url(例如http://127.0.0.1:8080在此处输入图片说明
  3. 在客户端“jenkins”中选择选项卡“安装” - 格式“keycloak OIDC JSON” - 复制到剪贴板进行下面的 Jenkins 设置 在此处输入图片说明
  4. 创建角色“jenkins_admin”
  5. 创建角色“jenkins_readonly” 在此处输入图片说明
  6. 创建用户“admin”并分配角色“jenkins_admin”
  7. 创建命名用户并分配角色“jenkins_readonly” 在此处输入图片说明

詹金斯

  1. 安装插件“ Keycloak Authentication Plugin
  2. 安装插件“矩阵授权策略插件
  3. 管理 Jenkins - “配置系统” - “全局 Keycloak 设置” - 将之前复制的 JSon(Keycloak 步骤 3)输入到“Keycloak JSON”区域 在此处输入图片说明
  4. 管理 Jenkins - 管理和分配角色 - 管理角色 - 全局角色 - (如果不存在)添加角色“admin”并选中所有复选框 - 保存
  5. 管理 Jenkins - 管理和分配角色 - 管理角色 - 全局角色 - 添加角色“只读”并选择“整体读取” - 保存 在此处输入图片说明
  6. 管理詹金斯-管理和分配角色-分配角色-将组“jenkins_admin”添加到全局角色并选择“admin”-保存
  7. 管理 Jenkins - 管理和分配角色 - 分配角色 - 将组“jenkins_readonly”添加到全局角色并选择“read_only” - 保存 在此处输入图片说明
  8. “配置全局安全”-选择“安全领域”:“Keycloak Authentication Plugin”
  9. “配置全局安全”-选择“授权”:“基于角色的策略”-SAVE 在此处输入图片说明

您现在应该被重定向到 Keycloak 登录。尝试以具有管理员权限的管理员身份登录,并以具有只读权限的指定用户身份登录。