Identity Experience Framework 示例中缺少 B2C_1A_TrustFrameworkExtensions 中的参考

Reference in B2C_1A_TrustFrameworkExtensions missing in Identity Experience Framework examples

我在上传基于 Microsoft 的 SocialAccounts 示例([tenant] 是我添加的占位符)的自定义策略时遇到错误:

Policy "B2C_1A_TrustFrameworkExtensions" of tenant "[tenant].onmicrosoft.com" makes a reference to ClaimType with id "client_id" but neither the policy nor any of its base policies contain such an element

我对文件做了一些定制,包括添加本地帐户登录,但是比较示例中 TrustFrameworkExtensions.xml 的副本,我看不出这个元素是在哪里定义的。它没有在 TrustFrameworkBase.xml 中定义,这正是我所期望的。

我想通了,虽然对我来说没有意义。希望这可以帮助其他人 运行 解决同样的问题。

每个场景的TrustFrameworkBase.xml都不一样。当 Microsoft 文档说不要修改它时,我认为这意味着“基础”始终相同。这种设计的含义是:如果您尝试在场景之间进行混合和匹配,那么您还需要在 TrustFrameworkBase.xml 中找到支持部分并将它们移动到您的扩展文档中。这也意味着如果 Microsoft 确实提供了对其参考策略的更新并且你想要更新,你需要记住你最初实施的是哪一个以及你可能必须从哪些其他策略中提取或进行逐行比较。不是世界末日,但也不是我设计继承结构的方式。

这也解释了为什么我必须解决以前的验证错误,包括 <TechnicalProfile> 元素中缺少 <DisplayName><Protocol> 元素。

是 - 我同意这是个问题。

我的建议是始终使用“SocialAndLocalAccountsWithMfa”场景作为示例。

这样您将始终拥有正确的属性,并且您知道在有更新时使用哪一个。

如果您不想要,可以很容易地在用户旅程中注释掉 MFA。

有一个例外。如果您想使用“用户名”而不是“电子邮件”,reads/writes 等仅在用户名示例中。