Azure B2C ADFS自动登录注销失败

时间:2019-01-11 18:13:08

标签: azure azure-active-directory saml saml-2.0 azure-ad-b2c

B2C策略和AD登录面临一个问题。

我有两个登录策略,它们都与单独的AD连接​​。 登录策略使用SAML2协议,并通过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>

我有下一个行为:

  1. 使用B2C自定义策略1登录到ADFS;
  2. 使用B2C自定义策略2登录后,由于我已经登录了AD,登录会自动进行;
  3. 从策略1或2执行全局注销。

结果,到AD的注销请求已取消状态,B2C策略将SAMLRequest而不是SAMLResponse返回到我的SingleLogout端点。

单次注销将对策略返回SAMLResponse,并且该异常发生在策略侧。

如果我尝试发送登录请求,则显示从B2C退出已完成。

此外,如果我使用该页面上的ADFS登录按钮再次登录,我将能够成功注销。

我有两个问题:

  1. 为什么AD注销请求“ https://login.microsoftonline.com/tenant/oauth2/logout”已取消状态
  2. 在这种情况下,为什么B2C策略将SAML LogoutRequest返回到我的应用程序,而不是SAML Logout响应。

0 个答案:

没有答案