我遇到了一个问题,即一组无问题地上传到一个租户(开发租户)的自定义策略无法上传到另一个(生产租户)。这些策略在(正在工作的)开发租户上正常运行。
我按以下顺序上传文件:
我唯一的线索是,如果我在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应用中缺少的扩展声明有关。所以看起来问题出在创建扩展声明上。但是,相同的策略会上载并适用于其他租户。扩展声明如何对一个租户有效,而对另一个租户无效?
答案 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)
扩展属性需要在每个租户的基础上创建。因此,如果您的策略需要扩展属性,则需要显式创建它们。