Azure ad b2c 如何解决Azure Active Directory B2C自定义属性中的验证错误

Azure ad b2c 如何解决Azure Active Directory B2C自定义属性中的验证错误,azure-ad-b2c,Azure Ad B2c,Azure AD B2C自定义策略未通过验证,并且没有参考导致验证错误的原因 我已经为我的应用程序定义了自定义策略,在向注册过程中添加简单的companyName字符串之前,一切正常。我按照中详细介绍的步骤添加了一个要在注册时收集的字段。成功上载TrustFrameworkBase策略后,我在上载singup_签名自定义策略时遇到问题。它告诉我 验证失败:在租户“xxxxx”的策略“B2C_1A_注册”中发现1个验证错误。策略“B2C_1A_注册”的Azure Active Directory提

Azure AD B2C自定义策略未通过验证,并且没有参考导致验证错误的原因

我已经为我的应用程序定义了自定义策略,在向注册过程中添加简单的companyName字符串之前,一切正常。我按照中详细介绍的步骤添加了一个要在注册时收集的字段。成功上载TrustFrameworkBase策略后,我在上载singup_签名自定义策略时遇到问题。它告诉我

验证失败:在租户“xxxxx”的策略“B2C_1A_注册”中发现1个验证错误。策略“B2C_1A_注册”的Azure Active Directory提供程序技术配置文件“AAD UserReadUsingObject”中不支持输出声明“companyName”。如果是具有默认值的索赔,请将AlwaysUseDefaultValue=“true”添加到输出索赔映射

因此,我按照建议做了,并将AlwaysUseDefaultValue=“true”和DefaultValue=“”属性添加到“AAD UserReadUsingObjectId”技术配置文件中的OutputClaim中。这使我能够成功上载策略文件

然而,当我测试注册策略时,我收到一条消息

无法验证提供的信息

我也为这个租户设置了Application Insights,看到了同样模糊的错误消息

返回的错误为400/Request\u BadRequest:指定的一个或多个属性值无效

我将声明类型添加到FrameworkBase中的声明模式中

<ClaimType Id="companyName">
  <DisplayName>Company</DisplayName>
  <DataType>string</DataType>
  <UserHelpText>Your company</UserHelpText>
  <UserInputType>TextBox</UserInputType>
</ClaimType>

单位
一串
贵公司
文本框
我将PersistedClaim添加到技术人员文件“AAD UserWriteUsingLogonEmail”

我将OutputClaim添加到TechnicalProfiles的“AAD UserReadUsingEmailAddress”中
和“AAD UserReadUsingObjectId”

我还将OutputClaim添加到了signup_sign.xml

我希望用户成功注册,但得到上面的验证错误,而不是该示例使用“city”

“您的Azure AD B2C目录带有一组内置属性。例如,姓名,城市、邮政编码和userPrincipalName。”

所以“城市”在模式中

我从错误中推测“companyName”不是

要添加这一点,您可以使用


所以它应该是“extension\u companyName”。

架构中不存在的属性需要“extension\u”前缀吗?看起来您已经解决了,但答案是“Yes”。注意,如果通过Graph API访问,则名称为“展开”-