gpt4 book ai didi

azure - AD OIDC 未返回 user_role

转载 作者:行者123 更新时间:2023-12-02 11:44:59 24 4
gpt4 key购买 nike

代表客户发布此问题:

我们正在尝试将 Kubernetes OIDC 身份验证与 Azure AD 集成。根据文档,为了使用用户组,我们需要将以下选项传递给 Kubernetes API 服务:--oidc-groups-claim user_rolesApi 服务使用 user_roles 在 Azure AD 返回的 JWT 中查找用户所属组的组名称。

但是,当我们解码 Azure AD 返回的 JWT 时,我们在返回的 JWT 中找不到任何名为 user_roles 的字段。解码后的 JWT 如下所示(已编辑):

{  
"aud": "spn:XXX",
"iss": "https://sts.windows.net/XXX/ ",
"iat": XXX,
"nbf": XXX,
"exp": XXX,
"acr": "1",
"aio": "XXX",
"amr": [
"pwd",
"mfa"
],
"appid": "XXX",
"appidacr": "0",
"family_name": "Foo",
"given_name": "Bar",
"groups": [
"gid1",
"gid2"
],
"ipaddr": "XXX",
"name": "Foo Bar",
"oid": "XXX",
"onprem_sid": "XXX",
"scp": "user_impersonation",
"sub": "XXX",
"tid": "XXX",
"unique_name": "XXX",
"upn": "XXX",
"uti": "XXX",
"ver": "1.0"
}

如您所见,返回的 JWT 中不存在 user_role 字段。我们还缺少什么吗?我们是否应该在 Azure AD 中启用一些设置,以使 Azure 返回 user_role 填充用户所属的组名称?我们希望得到的 JWT 应该看起来像这样(请注意 user_role 字段):

https://github.com/kubernetes/kubernetes/issues/33290#issue-178672086

{  
"iss": "XXX",
"aud": "XXX",
"exp": XXX,
"jti": "XXX",
"iat": XXX,
"nbf": XXX,
"sub": "mmosley",
"user_role": [
"admin",
"users",
"approvers"
],
"email": "XXX"
}

任何帮助或指示将不胜感激。

最佳答案

首先,据我所知,AAD id_token 仅支持 role 声明,而不支持 user_role。可以通过添加 AAD 应用程序 list 的 appRoles 属性将其添加到 id_token 中。需要配置中的位来匹配 Azure AAD 检索到的 token 中的受众。

其次,--oidc-groups-claim 不应使用 user_role 声明。根据我的理解,应该是groups,与id_token中的groups声明相匹配。

另外,您可以引用this blogthis sample将 Kubernetes RBAC 与 Azure AD 集成。

有关 Kubernetes RBAC 身份验证的更多详细信息,请参阅 this document.

关于azure - AD OIDC 未返回 user_role,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49413010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com