我正试图找到一种方法来利用我在Okta管理的角色与Jenkins合作。我一直试图让角色策略插件工作,但当我登录时,我得到了<user> is missing the Overall/Read permission。
我的配置包括OIDC,使用oic-auth插件,我正在通过JCasC指定authorizationStrategy配置。例如,我的JCasC okta.yaml上有这样的内容:
authorizationStrategy:
roleBased:
roles:
global:
- name: "my_okta_group"
permissions:
- "Overall/Administer"我看到这个被正确地转换为$JENKINS_HOME/config.xml。
我没有指定,但似乎是必需的是assignments:,因为毕竟它是RBAC,用户分配角色应该是在Okta,而不是Jenkins。
在浏览插件代码后,在JCasC中指定显式用户SID列表似乎是硬连接的。这对我不管用。
是否有不同的方法来使用这个插件来实现这个目标呢?
还有另一个RBAC插件可以更好地工作吗?
发布于 2022-07-08 15:55:59
上述情况非常接近于一个可行的解决办法。assignments:确实是必需的,它支持用户名或组。“authorizationStrategy.roleBased.roles”的“名称”也是Jenkins角色名,而不是OIDC组名。
伊斯兰会议组织-auth配置将OIDC令牌字段映射到Jenkins用户属性,然后角色策略检查OIDC令牌的用户名及其组。
我的工作配置是:
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:
...
JCasC:
configScripts:
okta: |
jenkins:
securityRealm:
...https://stackoverflow.com/questions/72912857
复制相似问题