Я использую пользовательскую политику, в которой есть поставщик утверждений для SAML 2.0, который интегрируется с моей локальной ADFS. Ниже приведен фрагмент OutputClaims, которые я настроил. Когда я настраиваю его таким образом, во время процесса входа в систему B2C выдает ошибку «AADB2C: Возникла исключительная ситуация». Просматривая журналы в Application Insights, я вижу ошибку во время OutputClaimsTransformationHandler:
"" Слишком много значений обнаружено для ключа \ "" http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn\"" в методе TryGetValue, который может возвращать только одно значение. Пожалуйста, используйте метод 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>
Похоже, что у меня не может быть двух OutputClaim, ссылающихся на один и тот же PartnerClaimType. У меня есть два разных утверждения в моем сценарии, которые мне нужно установить на одно и то же значение, полученное из утверждений SAML.
Кто-нибудь сталкивался с этим или знает, почему это будет проблемой?