B2C 内置流程中没有 id 令牌的电子邮件

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

我有 Azure Active Directory 1 (AD_1) 的 B2C 租户。我想对来自外部 AD_2 的用户进行身份验证。 SignUp_SignIn 流程是为 B2C 租户创建的,所有声明均已选择。此流程与具有后续设置的自定义开放 ID 提供程序相关,请参见下文:

在 AD_2 中我有应用程序注册,请参见下文

当我解码获得的令牌时,我看不到电子邮件值。我尝试了电子邮件字段的自定义 idp 的不同变体,例如

email
sub
- 没有任何效果。我错过了什么吗?接下来是我的用户界面设置

azure-ad-b2c openid azure-b2c aad-b2c
1个回答
0
投票

我在 Azure AD 租户中注册了一个应用程序,并添加了相同的 API 权限,如下所示:

enter image description here

在令牌配置中,我为 ID 令牌添加了相同的可选声明,如下所示:

enter image description here

现在,我通过添加带有以下参数的自定义 IDP,将 Azure AD 配置为 B2C 租户中的身份提供商:

enter image description here

运行注册并登录用户流程时,请确保包含电子邮件地址声明,如下所示:

enter image description here

当我运行用户流程时,我看到下面的登录屏幕,其中包含 Custom IDP AAD 按钮:

enter image description here

单击自定义 IDP AAD 按钮后,我会在下面的屏幕上选择我选择的帐户

Sri
帐户:

enter image description here

就我而言,在使用来自 Azure AD 的声明完成身份验证过程后,我看到了以下屏幕:

enter image description here

当我选择

Continue时,我得到了id_token,并通过emails

成功申领,如下所示:

enter image description here

在您的情况下,请确保在用户流程的

Application claims 中选择 电子邮件地址

,以在 
id_token 中获取电子邮件:

enter image description here

您需要在为电子邮件字段配置

自定义 IDP 时添加

email 作为值。

参考资料:

为 Azure AD 组织设置登录 - Azure AD B2C |微软

JWT 中缺少 Azure AD B2C“电子邮件”声明 - Stack Overflow,作者:Carl Zhu

© www.soinside.com 2019 - 2024. All rights reserved.