【发布时间】:2020-01-09 16:19:01
【问题描述】:
我正在使用 OAuth2 代码流并尝试将用户组重新放入我的访问令牌中。我读到的所有内容都说我应该看到一个 group 声明或一个 hasgroups 声明,但我都没有看到。
我已更改客户端应用的应用注册清单中的以下字段:
"groupMembershipClaims": "SecurityGroup",
"optionalClaims": {
"idToken": [],
"accessToken": [
{
"name": "groups",
"source": null,
"essential": false,
"additionalProperties": [
"dns_domain_and_sam_account_name"
]
}
],
"saml2Token": []
},
这是我的登录重定向 url (login.microsoftonline.com) 的查询字符串示例...
client_id=<clientId>
&response_type=code
&redirect_uri=<redirectUri>
&response_mode=query
&scope=<appScope>%20offline_access
&state=67890
这是我使用 authCode (login.microsoftonline.com/{tenantId}/oauth2/v2.0/token) 请求令牌的查询字符串示例
client_id=<clientId>
&scope=<uriEncodedScopes>%20offline_access
&redirect_uri=<uriEncodedRedirectUri>
&code=<authCode>
&client_secret=<uriEncodedClientSecret>
&grant_type=authorization_code
一切都很好,但我不知道如何在我的令牌中获取组信息。
更新
我在两个 url 的作用域中都添加了 %20openid,现在我得到了一个 id_token,但我仍然没有在任何一个令牌中看到“groups”或“hasgroups”。
更新
我刚刚将相同的清单更改(groupMembership、optionalClaims)添加到我的 API 应用注册(而不是我的客户端)——公开范围的 API,我看不到任何更改。访问令牌和 Id 令牌根本没有对组的任何引用。
【问题讨论】: