代表客户发布此问题:
我们正在尝试将Kubernetes OIDC身份验证与Azure AD集成。
根据文档,为了使用用户组,我们需要将以下选项传递给Kubernetes API服务:
--oidc-groups-claim user_roles
Api服务使用
user_roles
在Azure AD返回的JWT中查找用户所属组的组名。
然而,当我们解码Azure AD返回的JWT时,我们找不到任何名为
用户\u角色
在返回的JWT中。解码后的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\u role字段。我们是否缺少任何东西,即我们是否应该在Azure AD中启用一些设置,以使用用户所属的组名填充Azure return user\u角色?
我们希望得到的JWT应该是这样的(请注意user\u 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"
}
任何帮助或指点都将不胜感激。