我已成功将 OIDC 流与 AzureAD 连接,但不幸的是我无法获得令牌中包含的
family_name
和 given_name
声明。
在 Azure App Registration 页面中,我在
family_name
和 given_name
中的 optionalClaims
下的清单中添加了 idToken
和 accessToken
,甚至将它们设置为必不可少的 - 但它们仍然没有被退回:
"optionalClaims": {
"idToken": [
{
"name": "email",
"source": null,
"essential": false,
"additionalProperties": []
},
{
"name": "family_name",
"source": null,
"essential": true,
"additionalProperties": []
},
{
"name": "given_name",
"source": null,
"essential": true,
"additionalProperties": []
}
],
"accessToken": [
{
"name": "email",
"source": null,
"essential": false,
"additionalProperties": []
},
{
"name": "family_name",
"source": null,
"essential": true,
"additionalProperties": []
},
{
"name": "given_name",
"source": null,
"essential": true,
"additionalProperties": []
}
此 Microsoft 页面 说“这些声明始终包含在 v1.0 Azure AD 令牌中,但除非请求,否则不包含在 v2.0 令牌中”。
我正在使用 v2,所以我也尝试将
family_name
和 given_name
添加到我在 OIDC 调用中请求的范围,但它失败了,并说这些范围不存在。
Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler: 'invalid_client', error_description: 'AADSTS650053: 应用程序 'REMOVED' 要求范围 'given_name' 在资源 '00000003-0000-0000-c000-000000000000' 上不存在。
关于如何让 AzureAD 为我包含这些声明有什么建议吗?