具有标准注册策略的 JWT 中缺少 Azure AD B2C“电子邮件”声明

时间:2021-02-03 04:07:17

标签: azure-active-directory azure-ad-b2c

我正在开发一个使用 AAD B2C 进行身份验证的 Web 应用程序,我已经为其设置了默认的内置注册/登录流程,并且一切正常。但是我注意到,它不是使用用户的单个主要电子邮件返回声明,而是返回电子邮件集合,在我的测试用例中,它是一个仅包含我唯一电子邮件的集合。 我很好奇,是否可以将其配置为在我登录时包含对 JWT 的主电子邮件地址声明?根据我在为我的基本用户流配置收集/返回属性时所看到的,可以在用户登录时收集电子邮件,但只能将“EmailAddresses”集合标记为使用令牌返回。有没有办法改变这种行为,或者是设计使然而我错过了更大的图景?

1 个答案:

答案 0 :(得分:0)

这是设计使然!

以登录/注册策略为例,您可以看到用户属性将电子邮件地址显示为字符串

enter image description here

应用程序声明将电子邮件地址显示为StringCollection

enter image description here

用户属性是AAD B2C从用户那里收集的信息。所以 B2C 只收集一封电子邮件,email address 是一个字符串。但是jwt声称是B2C返回给依赖方应用的信息。由于这里可以有多个电子邮件(来自多个资源,例如联合 Idp),因此这是一个集合。因此,您返回email address 的集合是正常的。这是设计使然,目前无法改变这种行为。