Azure Active Directory B2C SAML集成
我正在遵循官方的MS指南。我已经完成了所有配置,但是当我尝试运行应用程序时,我收到一个奇怪的错误,该错误表示索赔集合中已经存在id为userId的索赔。 我在自定义策略中搜索用户ID: TrustFrameworkBase.xml:在此文件中,未声明userid,ClaimsSchema中将名为issuerUserId的声明声明为数据类型字符串,并在以下声明转换中使用:Azure Active Directory B2C SAML集成,azure,azure-active-directory,salesforce,azure-ad-b2c,Azure,Azure Active Directory,Salesforce,Azure Ad B2c,我正在遵循官方的MS指南。我已经完成了所有配置,但是当我尝试运行应用程序时,我收到一个奇怪的错误,该错误表示索赔集合中已经存在id为userId的索赔。 我在自定义策略中搜索用户ID: TrustFrameworkBase.xml:在此文件中,未声明userid,ClaimsSchema中将名为issuerUserId的声明声明为数据类型字符串,并在以下声明转换中使用: <ClaimsTransformation Id="CreateAlternativeSecurityId" Trans
<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>
然后,在Facebook索赔提供程序中使用issuerUserId:
<ClaimsProvider>
<Domain>facebook.com</Domain>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="id" />
...
</OutputClaims>
...
</ClaimsProvider>
TrustFrameworkExtension.xml:claim用户ID是我使用salesforce的索赔提供程序的输出索赔:
<ClaimsProvider>
<Domain>salesforce</Domain>
...
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="userid"/>
</OutputClaims>
...
</ClaimsProvider>
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpSignInSalesforce" />
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="OpenIdConnect" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="issuerUserId" />
...
</OutputClaims>
</TechnicalProfile>
</RelyingParty>
SignuporSignnsalesforce.xml:claim userid是我使用salesforce的依赖方的输出声明:
<ClaimsProvider>
<Domain>salesforce</Domain>
...
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="userid"/>
</OutputClaims>
...
</ClaimsProvider>
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpSignInSalesforce" />
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="OpenIdConnect" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="issuerUserId" />
...
</OutputClaims>
</TechnicalProfile>
</RelyingParty>
根据错误声明,userid定义了两次,但我没有找到双重定义,你有什么线索吗
谢谢 经过3天的精疲力竭的故障排除,我在五分钟前发现了错误。 在我的情况下,我没有完全遵循microsoft步骤,我错误地更改了TrustFrameworkExtensions.xml中编排步骤3中的SignupSignnsalesforce UserTravely: 错误的值为TechnicalProfileReferenceId。当我将值从salesforce更改为AAD UserReadUsingAlternativeSecurityId NoError时,解决方案开始工作。
我所做的是一步一步地重新阅读微软的文档,寻找错误 您是否看到了SAML断言,并且可能有多个具有相同属性名称的声明。