我们有 3 个不同的应用程序需要不同的扩展声明集。申请 A - 权利要求 A1、权利要求 A2、权利要求 A3 申请 B - 权利要求 B1、权利要求 B2、权利要求 B3
我们在 TrustFrameworkExtensions 中定义了六个声明,更新了各种 TechnicalProfiles 以获取用户的输入并将其写入目录。
为了支持各个应用程序的需求,我们创建了 2 个 RP 文件,每个应用程序一个,并定义了特定于应用程序的用户旅程。
6 个声明同时出现在两个应用程序中,我们希望通过应用程序限制声明。
尝试将 TrustFrameworkExtensions 中的所有内容复制到 RP 文件中,RP 无法加载并引发如下错误
无法上传策略。原因:验证失败:在租户“XXXXXXXXX.onmicrosoft.com”的策略“B2C_1A_1182017SIGNUP_SIGNIN”中发现 3 个验证错误。
在租户“XXXXXXXXX.onmicrosoft.com”的策略“B2C_1A_1182017signup_signin”中 ID 为“AAD-UserWriteUsingAlternativeSecurityId”的 TechnicalProfile 中找不到键为“ApplicationObjectId”的必需元数据项。
在租户“XXXXXXXXX.onmicrosoft.com”的策略“B2C_1A_1182017signup_signin”中 ID 为“AAD-UserWriteUsingLogonEmail”的 TechnicalProfile 中找不到键为“ApplicationObjectId”的必需元数据项。
在租户“XXXXXXXXX.onmicrosoft.com”的策略“B2C_1A_1182017signup_signin”中 ID 为“AAD-UserWriteProfileUsingObjectId”的 TechnicalProfile 中找不到键为“ApplicationObjectId”的必需元数据项。
感谢支持具有不同声明的多个应用程序的建议和指导。
要在自定义策略中使用扩展属性,您需要将一些配置添加到涉及 b2c-extensions-app 的文件中,该应用在门户中为每个 B2C 租户自动创建和注册。
在您的情况下,您似乎在技术简介的关键部分缺少b2c-extensions-app 的内容,ApplicationObjectID并且可能缺少该内容。ClientIdMetadataAAD-Common
创建自定义属性文档的后续步骤部分描述了如何执行此配置。
打开您的策略的扩展文件。例如,SocialAndLocalAccounts/TrustFrameworkExtensions.xml。
找到 ClaimsProviders 元素。向 ClaimsProviders 元素添加一个新的 ClaimsProvider。
将 ApplicationObjectId 替换为您之前记录的对象 ID。然后将 ClientId 替换为您之前在以下代码段中记录的应用程序 ID。
<ClaimsProvider>
<DisplayName>Azure Active Directory</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="AAD-Common">
<Metadata>
<!--Insert b2c-extensions-app application ID here, for example: 11111111-1111-1111-1111-111111111111-->
<Item Key="ClientId"></Item>
<!--Insert b2c-extensions-app application ObjectId here, for example: 22222222-2222-2222-2222-222222222222-->
<Item Key="ApplicationObjectId"></Item>
</Metadata>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
Run Code Online (Sandbox Code Playgroud)
用于<RelyingParty><TechnicalProfile><OutputClaims>控制返回的索赔。
<RelyingParty>
<DefaultUserJourney ReferenceId="SignInAppA" />
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="OpenIdConnect" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="ClaimA1" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>
</RelyingParty>
Run Code Online (Sandbox Code Playgroud)
和
<RelyingParty>
<DefaultUserJourney ReferenceId="SignInAppB" />
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="OpenIdConnect" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="ClaimB1" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>
</RelyingParty>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
902 次 |
| 最近记录: |