Azure AD B2C内部错误上传自定义策略

时间:2018-09-06 14:46:41

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

我遇到了一个问题,即一组无问题地上传到一个租户(开发租户)的自定义策略无法上传到另一个(生产租户)。这些策略在(正在工作的)开发租户上正常运行。

enter image description here

我按以下顺序上传文件:

  1. TrustFrameworkBase.xml 上传确定
  2. TrustFrameworkExtensions.xml 上传确定
  3. SignUpOrSignin.xml 因上述错误而失败
  4. ProfileEdit.xml 因上述错误而失败
  5. PasswordReset.xml 上传确定

我唯一的线索是,如果我在B2C应用程序中查询失败的租户的扩展声明,则仅显示8个中的2个。如果对工作的租户运行相同的查询,则显示所有8个。正在使用以下示例应用进行此查询:https://github.com/AzureADQuickStarts/B2C-GraphAPI-DotNet

据我所知,两个租户的配置相同,并且我检查了各种ID等是否正确配置。但是我总是有可能错过了一些东西!

有人可以帮忙吗?

xml文件:https://1drv.ms/f/s!ApxUZQaL9hp0h1ACYgWzgzsGwCOc

更多信息

我实际上可以运行上载有错误的策略。但是,当我尝试通过运行策略创建用户帐户时,收到一条消息,提示“无法验证所提供的信息”。在页面顶部的test"\r\n"test 内,ID为<div>。这可能与B2C应用中缺少的扩展声明有关。所以看起来问题出在创建扩展声明上。但是,相同的策略会上载并适用于其他租户。扩展声明如何对一个租户有效,而对另一个租户无效?

2 个答案:

答案 0 :(得分:2)

在您的基本保单中,有dateofBirth的以下声明:

<ClaimType Id="extension_DateOfBirth">
    <DisplayName>Date of Birth</DisplayName>
    <DataType>date</DataType>
    <UserHelpText>Date of birth</UserHelpText>
    <UserInputType>DateTimeDropdown</UserInputType>
    <PredicateValidationReference Id="DateOfBirthDateRange" />
</ClaimType>

由于此声明以“ extension_”开头,并且在技术资料中使用“ AAD-”作为前缀,因此在上载策略期间,它将自动在AAD中创建为扩展属性。但是,AAD中不支持数据类型“日期”(仅支持DateTime)。这会导致策略上传失败。

关于如何将B2C策略中的“日期”声明映射到AAD“日期时间”属性,在对这些策略进行了更多调查之后,我将回复此线程。

编辑:当我第一次回复但找不到它时,我试图找到此文档:https://msdn.microsoft.com/Library/Azure/Ad/Graph/api/entity-and-complex-type-reference#extensionproperty-entity。感谢Mat的分享。希望此链接对解决与AAD中扩展属性的数据类型有关的问题有所帮助。

答案 1 :(得分:0)

扩展属性需要在每个租户的基础上创建。因此,如果您的策略需要扩展属性,则需要显式创建它们。