family_name 和 given_name 未包含在 AzureAD 令牌声明中

问题描述 投票:0回答:0

我已成功将 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 为我包含这些声明有什么建议吗?

azure asp.net-core azure-active-directory identityserver4
© www.soinside.com 2019 - 2024. All rights reserved.