如何在密钥斗篷中为詹金斯设置基于角色的登录

时间:2019-05-08 13:53:42

标签: jenkins openid keycloak

我是密钥斗篷的初学者。我需要一些帮助。

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

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

OpenID-keycloak(检查角色)-jenkins:所有处于openid且在keycloak中也具有特定角色的用户都可以登录jenkins(我想要)

我认为这是使用密钥斗篷的非常简单且常见的示例,但我找不到解决方案。

我所做的步骤在这里。

  1. 在jenkins中安装keycloak插件。
  2. 安装密钥斗篷(使用头盔的5.0.0版)
  3. 创建领域
  4. 创建身份提供者(OpenID)
  5. 创建客户端(名为jenkins)
  6. “安装”选项卡>将Keycloak OIDC JSON复制到Jenkins

(请参阅https://wiki.jenkins.io/display/JENKINS/keycloak-plugin

现在,我可以成功登录詹金斯了。

  1. 在领域角色中创建角色
  2. 在(詹金斯)客户端中,启用“启用授权”
  3. “授权”标签>“策略”标签>“创建策略”>“角色”

选择领域角色并检查是否需要

  1. 在Jenkins配置中更新JSON。

已完成,但不起作用。

2 个答案:

答案 0 :(得分:1)

除了answer of Christop

  • 您需要在 keycloak 客户端下为 Group Membership 配置映射器。
  • 通过确保“组”在访问令牌的范围内来验证这一点。

还有一点,你可以使用两个插件之一:


最后一点:

答案 1 :(得分:0)

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

密钥斗篷

  1. 创建领域 enter image description here
  2. 创建客户端“ jenkins”-将根URL设置为Jenkins-url(例如http://127.0.0.1:8080enter image description here
  3. 在客户端“ jenkins”中,选择“安装”选项卡-格式化“ keycloak OIDC JSON”-复制到下面的Jenkins安装程序的剪贴板 enter image description here
  4. 创建角色“ jenkins_admin”
  5. 创建角色“ jenkins_readonly” enter image description here
  6. 创建用户“ admin”并分配角色“ jenkins_admin”
  7. 创建命名用户并分配角色“ jenkins_readonly” enter image description here

詹金斯

  1. 安装插件“ Keycloak Authentication Plugin
  2. 安装插件“ Matrix Authorization Strategy Plugin
  3. 管理Jenkins-“配置系统”-“全局Keycloak设置”-将先前复制的JSon(Keycloak步骤3)输入“ Keycloak JSON”区域 enter image description here
  4. 管理Jenkins-管理和分配角色-管理角色-全局角色-(如果不存在)添加选中所有复选框的“ admin”角色-保存
  5. 管理Jenkins-管理和分配角色-管理角色-全局角色-添加角色“ read_only”并选择“整体读取”-保存 enter image description here
  6. 管理Jenkins-管理和分配角色-分配角色-将“ jenkins_admin”组添加到全局角色,然后选择“ admin”-保存
  7. 管理Jenkins-管理和分配角色-分配角色-将“ jenkins_readonly”组添加到全局角色,然后选择“ read_only”-SAVE enter image description here
  8. “配置全局安全性”-选择“安全领域”:“ Keycloak身份验证插件”
  9. “配置全局安全性”-选择“授权”:“基于角色的策略”-保存 enter image description here

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