我使用的自定义策略具有与我的本地ADFS集成的SAML 2.0声明提供程序。以下是我已配置的OutputClaims的代码段。当我以这种方式配置它时,在signuporsignin过程中,B2C会引发错误“ AADB2C:发生了异常”。查看Application Insights中的日志,我可以在OutputClaimsTransformationHandler期间看到错误:
“”“ TryGetValue方法中的键\”“ http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn \”“遇到太多的值,该方法只能返回一个值。请改为使用TryGetValues方法。“”
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="socialIdpUserId" PartnerClaimType="oid" />
<OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name"/>
<OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name"/>
<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" />
<OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="display_name"/>
<OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="fastpathdemo.com" />
<OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="externalIdp"/>
<OutputClaim ClaimTypeReferenceId="extension_email" PartnerClaimType="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" />
<OutputClaim ClaimTypeReferenceId="extension_idp" DefaultValue="fastpathdemo.com" />
</OutputClaims>
似乎我不能没有两个OutputClaims引用相同的PartnerClaimType。在我的方案中,我有两个不同的声明,需要将SAML声明的值设置为相同的值。
有人遇到过这个问题吗?不知道为什么这会是个问题吗?