Есть проблема с политиками B2C и входом в AD.
У меня есть две политики входа, обе связаны с отдельной AD.
Политики входа работают с протоколом SAML2, подключаются к AD через OIDC.
AD технический профиль выглядит так:
<ClaimsProvider>
<Domain>microsoftonline.com</Domain>
<DisplayName>Login using ADFS</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="Microsoft-OpenID">
<DisplayName>Microsoft ADFS</DisplayName>
<Description>Login with your ADFS account</Description>
<Protocol Name="OpenIdConnect" />
<OutputTokenFormat>JWT</OutputTokenFormat>
<Metadata>
<Item Key="METADATA">https://login.microsoftonline.com/adfstenant.onmicrosoft.com/.well-known/openid-configuration</Item>
<Item Key="client_id">000000-00000-0000-0000-0000000000</Item>
<Item Key="ValidTokenIssuerPrefixes">https://sts.windows.net/000000-000-000-0000-000000</Item>
<Item Key="scope">openid</Item>
<Item Key="response_mode">form_post</Item>
<Item Key="response_types">id_token</Item>
<Item Key="DiscoverMetadataByTokenIssuer">true</Item>
<Item Key="UsePolicyInRedirectUri">false</Item>
</Metadata>
<CryptographicKeys>
<Key Id="client_secret" StorageReferenceId="B2C_1A_ADFSSecret" />
</CryptographicKeys>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="socialIdpUserId" PartnerClaimType="oid" />
<OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="unique_name" />
<OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="ADFS" />
<OutputClaim ClaimTypeReferenceId="authenticationSource" PartnerClaimType="iss" />
<OutputClaim ClaimTypeReferenceId="sub" PartnerClaimType="oid" />
</OutputClaims>
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
<OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
<OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
</OutputClaimsTransformations>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
У меня следующее поведение:
- Вход в ADFS с использованием настраиваемой политики B2C 1;
- После этого входа в систему с использованием настраиваемой политики B2C 2, вход выполняется автоматически, поскольку я уже вошел в AD;
- Выполнение глобального выхода из политики 1 или 2.
В результате запрос на выход из AD был отменен, политика B2C возвращает SAMLRequest вместо SAMLResponse моей конечной точке SingleLogout.
Одиночный выход из системы возвращает SAMLResponse политике, и исключение происходит на стороне политики.
Похоже, что выход из B2C завершен, если я пытаюсь отправить запрос на вход, отображается страница входа.
Более того, если я снова войду, используя кнопку входа ADFS на этой странице, я смогу успешно выйти из системы.
У меня есть два вопроса:
- Почему запрос на выход из AD "https://login.microsoftonline.com/tenant/oauth2/logout" имеет отмененный статус
- Почему политика B2C возвращает SAML LogoutRequest моему приложению вместо ответа SAML Logout в этом случае.