首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有OIDC和外部托管角色分配的Jenkins RoleBasedAuthorizationStrategy

带有OIDC和外部托管角色分配的Jenkins RoleBasedAuthorizationStrategy
EN

Stack Overflow用户
提问于 2022-07-08 14:23:06
回答 1查看 148关注 0票数 0

我正试图找到一种方法来利用我在Okta管理的角色与Jenkins合作。我一直试图让角色策略插件工作,但当我登录时,我得到了<user> is missing the Overall/Read permission

我的配置包括OIDC,使用oic-auth插件,我正在通过JCasC指定authorizationStrategy配置。例如,我的JCasC okta.yaml上有这样的内容:

代码语言:javascript
复制
authorizationStrategy:
  roleBased:
    roles:
      global:
        - name: "my_okta_group"
          permissions:
            - "Overall/Administer"

我看到这个被正确地转换为$JENKINS_HOME/config.xml

我没有指定,但似乎是必需的是assignments:,因为毕竟它是RBAC,用户分配角色应该是在Okta,而不是Jenkins。

在浏览插件代码后,在JCasC中指定显式用户SID列表似乎是硬连接的。这对我不管用。

是否有不同的方法来使用这个插件来实现这个目标呢?

还有另一个RBAC插件可以更好地工作吗?

EN

回答 1

Stack Overflow用户

发布于 2022-07-08 15:55:59

上述情况非常接近于一个可行的解决办法。assignments:确实是必需的,它支持用户名或。“authorizationStrategy.roleBased.roles”的“名称”也是Jenkins角色名,而不是OIDC组名。

伊斯兰会议组织-auth配置将OIDC令牌字段映射到Jenkins用户属性,然后角色策略检查OIDC令牌的用户名及其组。

我的工作配置是:

代码语言:javascript
复制
jenkins:
  securityRealm:
    oic:
      clientId: "${clientId}"
      clientSecret: "${clientSecret}"
      wellKnownOpenIDConfigurationUrl: "${oidcIssuerUrl}/.well-known/openid-configuration"
      userInfoServerUrl: "${oidcIssuerUrl}/oauth2/v1/userinfo"
      tokenFieldToCheckKey: ""
      tokenFieldToCheckValue: ""
      fullNameFieldName: "name"
      groupsFieldName: "groups"
      disableSslVerification: false
      logoutFromOpenidProvider: true
      endSessionEndpoint: "${oidcIssuerUrl}/oauth2/v1/logout"
      postLogoutRedirectUrl: "https://${dns_name_full}"
      escapeHatchEnabled: false
      escapeHatchUsername: ""
      escapeHatchSecret: "my-unused-password"
      escapeHatchGroup: ""
      automanualconfigure: "auto"
      emailFieldName: "email"
      userNameField: "name"
      tokenServerUrl: "${oidcIssuerUrl}/oauth2/v1/token"
      authorizationServerUrl: "${oidcIssuerUrl}/oauth2/v1/authorize"
      scopes: "address phone openid profile offline_access groups email"
    
  authorizationStrategy:
    roleBased:
      roles:
        global:
          - name: "my_jenkins_role"
            permissions:
              - "Overall/Administer"
            assignments:
              - "my_okta_group"

顺便说一句,我用Helm指定了yaml:

代码语言:javascript
复制
...

  JCasC:
    configScripts:
      okta: |
        jenkins:
          securityRealm:
            ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72912857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档