AAD B2C-访问令牌中缺少UPN声明 [英] AAD B2C - Missing upn claim in access token

查看:12
本文介绍了AAD B2C-访问令牌中缺少UPN声明的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个使用AAD B2C进行身份验证的角度应用程序。它使用访问令牌与.Net Core API通信。

我的问题是我在访问令牌中未收到用户主体名称(UPN)。

我一直在添加其他";应用程序声明,如";名字&和";姓氏&,这些在我的访问令牌中显示得很好!因此,我相信我的作用域(OpenID、个人资料、电子邮件)设置正确,理论上这是可行的。

我相信,因为我使用的是令牌的1.0版,所以我不需要在应用程序清单中配置任何其他声明。我的用户是标准AD用户,而不是来宾。

以下文档指出,UPN声明应包含在v1.0令牌中: https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-optional-claims

我做错了什么?!

已解码访问令牌:

{
  "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令牌中不返回UPn,因为它是设置的不相关的随机字符串。

相反,AAD B2C的唯一名称存储在signInNames属性中,并在令牌中以电子邮件或用户名的形式返回。

您链接的单据是针对AAD的,与AAD B2C无关。这是两个独立的令牌颁发者服务。在您的用户流应用程序声明中选择返回"电子邮件地址"。

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

这篇关于AAD B2C-访问令牌中缺少UPN声明的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆