繁体   English   中英

如何使用自定义策略为多租户 Azure Active Directory 设置直接登录

[英]How to Set up direct sign-in for multi-tenant Azure Active Directory using Custom policy

我使用 Azure Ad b2c 使用自定义策略对用户进行身份验证。 我使用此文档添加登录 Azure AD ( https://docs.microsoft.com/en-us/azure/active-directory-b2c/identity-provider-azure-ad-multi-tenant?pivots=b2c -custom -政策)。

我使用这个文档来配置 iframe 嵌入:

https://docs.microsoft.com/en-us/azure/active-directory-b2c/embedded-login?pivots=b2c-custom-policy

但是当我在 ASP NetMVC 页面中嵌入登录页面,并使用 Azure AD 登录时,它给出了错误:

在此处输入图像描述

我的注册

  <RelyingParty>
    <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
    <UserJourneyBehaviors>
      <JourneyFraming Enabled="true" Sources="https://test.dynatex.io https://testsquid.dynatex.io/" />
    </UserJourneyBehaviors>
    <TechnicalProfile Id="PolicyProfile">
      <DisplayName>PolicyProfile</DisplayName>
      <Protocol Name="OpenIdConnect" />
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="displayName" />
        <OutputClaim ClaimTypeReferenceId="givenName" />
        <OutputClaim ClaimTypeReferenceId="surname" />

我的 B2C_1A_TRUSTFRAMEWORKEXTENSIONS.xml

    <ClaimsProvider>
      <Domain>onmicrosoft.com</Domain>
      <DisplayName>Common AAD</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="AADCommon-OpenIdConnect">
          <DisplayName>Multi-Tenant Azure Ad</DisplayName>
          <Protocol Name="OpenIdConnect" />
          <Metadata>
            <Item Key="ProviderName">https://login.microsoftonline.com</Item>
            <Item Key="METADATA">https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration</Item>
            <!-- Update the Client ID below to the Application ID -->
            <Item Key="response_types">code</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="scope">openid profile email</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
            <Item Key="DiscoverMetadataByTokenIssuer">true</Item>
            <Item Key="client_id">9...</Item>
            <Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com</Item>
            <!-- <Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000,https://login.microsoftonline.com/11111111-1111-1111-1111-111111111111</Item> -->
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_msa" />
          </CryptographicKeys>
          <InputClaims>
            <InputClaim ClaimTypeReferenceId="loginHint" PartnerClaimType="login_hint" DefaultValue="{OIDC:LoginHint}" />
          </InputClaims>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="oid" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
            <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
            <OutputClaim ClaimTypeReferenceId="signInName" PartnerClaimType="email" />
            <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" PartnerClaimType="email" />
            <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" />
            <OutputClaim ClaimTypeReferenceId="roles" />
            <OutputClaim ClaimTypeReferenceId="groups" />

您无法使用“嵌入式 UI”执行联合登录,因为所有外部 IdP 都将阻止在 iframe 中显示。

对于这些场景,您需要重定向用户。 一种方法是:

  1. 在登录策略中,替换外部链接以指向您的应用,例如myapp.com/signin?domain_hint=azureAD
  2. 然后,您的应用需要像正常流程一样通过 AAD B2C 策略重定向用户,并传递 domain_hint 参数,以便用户自动定向到他们在 1 中选择的 IdP。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM