代码之家  ›  专栏  ›  技术社区  ›  Mat

上载自定义策略时发生Azure AD B2C内部错误

  •  0
  • Mat  · 技术社区  · 6 年前

    我遇到一个问题,一组自定义策略上载到一个租户(开发租户)时没有问题,上载到另一个租户(生产租户)时失败。策略在(正在工作的)开发租户上正确运行。

    enter image description here

    我按以下顺序上传文件:

    1. TrustFrameworkBase.xml 上传OK
    2. 上传OK
    3. SignUpOrSignin.xml
    4. ProfileEdit.xml文件
    5. 密码重置.xml 上传OK

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

    据我所知,这两个租户的配置是相同的,我已经检查了各种ID等配置是否正确。但总有可能我错过了什么!

    有人能帮忙吗?

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

    更多信息

    我实际上可以运行上载时出错的策略。但是,当我试图通过运行策略来创建用户帐户时,会收到一条消息,说“无法验证提供的信息” <div> claimVerificationServerError . 这可能与B2C应用程序中缺少的扩展声明有关。所以看起来问题在于创建扩展声明。但同样的策略可以上传到另一个租户上。延期索赔怎么可能对一个租客有效,而对另一个租客无效?

    2 回复  |  直到 6 年前
        1
  •  2
  •   Yin    6 年前

    在您的基本保单中,有以下出生日期声明:

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

    关于如何将B2C策略中的“date”声明映射到AAD“DateTime”属性,我将在对这些策略做更多的调查之后回复这个线程。

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

        2
  •  0
  •   Vikram    6 年前

    扩展属性需要按租户创建。因此,如果策略需要扩展属性,则需要显式地创建它们。