【发布时间】:2020-01-11 09:35:22
【问题描述】:
我正在关注官方 MS 指南 Set up sign-in with a Salesforce SAML provider by using custom policies in Azure Active Directory B2C。我已完成所有配置,但是当我尝试运行应用程序时,我收到一个奇怪的错误,指出 声明集合中已存在 ID 为“userId”的声明。 我在自定义策略中搜索 userId:
TrustFrameworkBase.xml: 在此文件中 userid 未声明,名为 issuerUserId 的声明在 ClaimsSchema 中声明为数据类型字符串,它是用于以下声明转换:
<ClaimsTransformation Id="CreateAlternativeSecurityId" TransformationMethod="CreateAlternativeSecurityId">
<InputClaims>
<InputClaim ClaimTypeReferenceId="issuerUserId" TransformationClaimType="key" />
<InputClaim ClaimTypeReferenceId="identityProvider" TransformationClaimType="identityProvider" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="alternativeSecurityId" TransformationClaimType="alternativeSecurityId" />
</OutputClaims>
</ClaimsTransformation>
issuerUserId 然后在 Facebook 声明提供者中使用:
<ClaimsProvider>
<Domain>facebook.com</Domain>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="id" />
...
</OutputClaims>
...
</ClaimsProvider>
TrustFrameworkExtension.xml: 声明 userid 是我正在使用的声明提供者(salesforce)的输出声明:
<ClaimsProvider>
<Domain>salesforce</Domain>
...
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="userid"/>
</OutputClaims>
...
</ClaimsProvider>
SignUpOrSigninSalesforce.xml: 声明 userid 是我正在使用的依赖方(salesforce)的输出声明:
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpSignInSalesforce" />
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="OpenIdConnect" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="issuerUserId" />
...
</OutputClaims>
</TechnicalProfile>
</RelyingParty>
基于错误声明 userid 被定义了两次,但是我没有找到双重定义,你有什么线索吗?
谢谢。
【问题讨论】:
-
您是否看到您的 SAML 断言并且可能有多个具有相同属性名称的声明。
标签: azure azure-active-directory salesforce azure-ad-b2c