gpt4 book ai didi

azure - AAD B2C - 访问 token 中缺少 upn 声明

转载 作者:行者123 更新时间:2023-12-03 00:59:16 26 4
gpt4 key购买 nike

我有一个使用 AAD B2C 进行身份验证的 Angular 应用程序。这与使用访问 token 的 .Net Core API 进行对话。

我的问题是我的访问 token 中没有收到用户主体名称 (upn)。

我一直在添加其他“应用程序声明”,例如“名字”和“姓氏”,这些都很好地出现在我的访问 token 中!因此,我相信我的范围(openid、个人资料、电子邮件)设置正确,并且理论上是有效的。

我相信,由于我使用的是 1.0 版本的 token ,因此我不需要在应用程序 list 中配置任何其他声明。我的用户是标准 AD 用户而不是访客。

以下文档指出 upn 声明应包含在 v1.0 token 中: https://learn.microsoft.com/en-us/azure/active-directory/develop/active-directory-optional-claims

我做错了什么?!

解码后的访问 token :

{
"iss": "https://(my-tenant-name).b2clogin.com/(guid)/v2.0/",
"exp": (number),
"nbf": (number),
"aud": "(guid)",
"oid": "(guid)",
"sub": "(guid)",
"name": "My Name",
"given_name": "Given name",
"family_name": "Surname",
"country": "Norge",
"tfp": "B2C_1_signupsignin2",
"nonce": "(guid)",
"scp": "basic",
"azp": "(guid)",
"ver": "1.0",
"iat": (number)
}

最佳答案

AAD B2C token 中不会返回 UPN,因为它是设置的不相关的随机字符串。

AAD B2C 的唯一名称存储在 signInNames 属性中,并作为电子邮件或用户名在您的 token 中返回。

您链接的文档适用于 AAD,与 AAD B2C 无关。这是两个独立的 token 发行者服务。在您的用户流程应用程序声明中选择返回“电子邮件地址”。

https://learn.microsoft.com/en-us/azure/active-directory-b2c/user-flow-overview#email-address-storage

关于azure - AAD B2C - 访问 token 中缺少 upn 声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63601519/

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