You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure AD B2C 本地账户登录REST API提示Email is mandatory错误

问题触发原因

  • 你所配置的REST技术概要REST-AuthB2CSignIn的输入声明要求传入名为email的字段,但Azure AD B2C本地账号登录流默认不会生成名为email的声明,仅会生成signInName、signInNames.emailAddress两个存储用户登录邮箱的声明。
  • 第三方身份提供商登录时,平台会默认将IdP返回的邮箱字段映射为email声明,因此第三方登录流程可以正常运行,本地登录时email声明为空,触发REST API的入参非空校验,抛出Validation error: Email is mandatory报错。

解决方案

修改REST-AuthB2CSignIn技术概要的InputClaims节点,将本地登录流的邮箱声明映射为传给REST接口的email参数,修改后的输入声明示例如下:

<InputClaims>
  <!-- Claims sent to your REST API -->
  <InputClaim ClaimTypeReferenceId="objectId" />
  <!-- 优先取第三方登录的email声明,不存在则取本地登录的signInNames.emailAddress声明,映射为接口入参email -->
  <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" DefaultValue="{signInNames.emailAddress}" AlwaysUseDefaultValue="true" />
  <InputClaim ClaimTypeReferenceId="displayName" />
  <InputClaim ClaimTypeReferenceId="givenName" />
  <InputClaim ClaimTypeReferenceId="surname" />
</InputClaims>

也可以直接将本地邮箱声明直接映射为接口入参:

<InputClaim ClaimTypeReferenceId="signInNames.emailAddress" PartnerClaimType="email" />

修改后重新上传自定义策略即可生效。

内容的提问来源于stack exchange,提问作者basquiatraphaeu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:45:00