Konfigurera inloggning för Microsoft Entra-ID för flera klientorganisationer med anpassade principer i Azure Active Directory B2C

Innan du börjar använder du väljaren Välj en principtyp för att välja den typ av princip som du konfigurerar. Azure Active Directory B2C erbjuder två metoder för att definiera hur användare interagerar med dina program: via fördefinierade användarflöden eller genom fullständigt konfigurerbara anpassade principer. De steg som krävs i den här artikeln skiljer sig åt för varje metod.

Den här funktionen är endast tillgänglig för anpassade principer. För installationssteg väljer du Anpassad princip i föregående väljare.

Den här artikeln visar hur du aktiverar inloggning för användare med hjälp av slutpunkten för flera klientorganisationer för Microsoft Entra-ID. Tillåta användare från flera Microsoft Entra-klienter att logga in med Azure AD B2C, utan att du behöver konfigurera en identitetsprovider för varje klientorganisation. Gästmedlemmar i någon av dessa klienter kommer dock inte att kunna logga in. För det måste du konfigurera varje klientorganisation individuellt.

Förutsättningar

Kommentar

I den här artikeln antogs att Startpaketet SocialAndLocalAccounts används i föregående steg som nämns i förhandskraven.

Registrera en Microsoft Entra-app

Om du vill aktivera inloggning för användare med ett Microsoft Entra-konto i Azure Active Directory B2C (Azure AD B2C) måste du skapa ett program i Azure-portalen. Mer information finns i Registrera ett program med Microsofts identitetsplattform.

  1. Logga in på Azure-portalen.

  2. Om du har åtkomst till flera klienter väljer du ikonen Inställningar på den översta menyn för att växla till din Microsoft Entra-ID-klient från menyn Kataloger + prenumerationer.

  3. Välj Alla tjänster i det övre vänstra hörnet i Azure-portalen och sök sedan efter och välj Appregistreringar.

  4. Välj Ny registrering.

  5. Ange ett namn för ditt program. Exempel: Azure AD B2C App

  6. Välj Konton i valfri organisationskatalog (Valfri Microsoft Entra-katalog – Multitenant) för det här programmet.

  7. För omdirigerings-URI accepterar du värdet för webben och anger följande URL i alla gemener, där your-B2C-tenant-name ersätts med namnet på din Azure AD B2C-klientorganisation.

    https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp
    

    Exempel: https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/oauth2/authresp

    Om du använder en anpassad domän anger du https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp. Ersätt your-domain-name med din anpassade domän och your-tenant-name med namnet på din klientorganisation.

  8. Välj Registrera. Registrera program-ID :t (klient) för användning i ett senare steg.

  9. Välj Certifikathemligheter &och välj sedan Ny klienthemlighet.

  10. Ange en Beskrivning för hemligheten, välj ett förfallodatum och välj sedan Lägg till. Registrera hemlighetens värde för användning i ett senare steg.

Konfigurera valfria anspråk

Om du vill hämta anspråken family_nameoch given_name från Microsoft Entra-ID:t kan du konfigurera valfria anspråk för ditt program i Användargränssnittet för Azure-portalen eller programmanifestet. Mer information finns i Så här tillhandahåller du valfria anspråk till din Microsoft Entra-app.

  1. Logga in på Azure-portalen. Sök efter och markera Microsoft Entra ID.
  2. I avsnittet Hantera väljer du Appregistreringar.
  3. Välj det program som du vill konfigurera valfria anspråk för i listan.
  4. I avsnittet Hantera väljer du Tokenkonfiguration.
  5. Välj Lägg till ytterligare anspråk.
  6. Som Tokentyp väljer du ID.
  7. Välj de valfria anspråk som ska läggas till, family_nameoch given_name.
  8. Markera Lägga till. Om Aktivera e-postbehörigheten för Microsoft Graph (krävs för att anspråk ska visas i token) visas aktiverar du den och väljer sedan Lägg till igen.

[Valfritt] Verifiera appens äkthet

Utgivarverifiering hjälper användarna att förstå äktheten hos den app som du har registrerat. En verifierad app innebär att utgivaren av appen har verifierat sin identitet med hjälp av sitt Microsoft Partner Network (MPN). Se hr du markerar din app med verifierad utgivare.

Skapa en principnyckel

Du måste lagra programnyckeln som du skapade i din Azure AD B2C-klientorganisation.

  1. Om du har åtkomst till flera klienter väljer du ikonen Inställningar på den översta menyn för att växla till din Azure AD B2C-klient från menyn Kataloger + prenumerationer.
  2. Välj Alla tjänster på menyn högst upp till vänster i Azure-portalen och sök efter och välj Azure AD B2C.
  3. Under Principer väljer du Identity Experience Framework.
  4. Välj Principnycklar och välj sedan Lägg till.
  5. För Alternativ väljer du Manual.
  6. Ange ett Namn för principnyckeln. Exempel: AADAppSecret Prefixet B2C_1A_ läggs automatiskt till i namnet på din nyckel när det skapas, så dess referens i XML i följande avsnitt är att B2C_1A_AADAppSecret.
  7. I Hemlighet anger du din klienthemlighet som du registrerade tidigare.
  8. För Nyckelanvändning väljer du Signature.
  9. Välj Skapa.

Konfigurera Microsoft Entra-ID som identitetsprovider

För att göra det möjligt för användare att logga in med ett Microsoft Entra-konto måste du definiera Microsoft Entra-ID som en anspråksprovider som Azure AD B2C kan kommunicera med via en slutpunkt. Slutpunkten innehåller en uppsättning anspråk som används av Azure AD B2C för att verifiera att en viss användare har autentiserats.

Du kan definiera Microsoft Entra-ID som en anspråksprovider genom att lägga till Microsoft Entra-ID i elementet ClaimsProvider i tilläggsfilen för principen.

  1. Öppna filen SocialAndLocalAccounts/TrustFrameworkExtensions.xml (se de filer som du har använt i förhandskraven).

  2. Hitta elementet ClaimsProviders . Om den inte finns lägger du till den under rotelementet.

  3. Lägg till en ny ClaimsProvider på följande sätt:

    <ClaimsProvider>
      <Domain>commonaad</Domain>
      <DisplayName>Common AAD</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="AADCommon-OpenIdConnect">
          <DisplayName>Multi-Tenant AAD</DisplayName>
          <Description>Login with your Contoso account</Description>
          <Protocol Name="OpenIdConnect"/>
          <Metadata>
            <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="client_id">00000000-0000-0000-0000-000000000000</Item>
            <Item Key="response_types">code</Item>
            <Item Key="scope">openid profile</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
            <Item Key="DiscoverMetadataByTokenIssuer">true</Item>
            <!-- The key below allows you to specify each of the Azure AD tenants that can be used to sign in. Update the GUIDs below for each tenant. -->
            <Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000,https://login.microsoftonline.com/11111111-1111-1111-1111-111111111111</Item>
            <!-- The commented key below specifies that users from any tenant can sign-in. Uncomment if you would like anyone with an Azure AD account to be able to sign in. -->
            <!-- <Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com/</Item> -->
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_AADAppSecret"/>
          </CryptographicKeys>
          <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" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin"/>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. Under elementet ClaimsProvider uppdaterar du värdet för Domän till ett unikt värde som kan användas för att skilja det från andra identitetsprovidrar.

  5. Under elementet TechnicalProfile uppdaterar du värdet för DisplayName, till exempel Multi-Tenant AAD. Det här värdet visas på inloggningsknappen på inloggningssidan.

  6. Ange client_id till program-ID för Microsoft Entra-programmet för flera klientorganisationer som du registrerade tidigare.

  7. Under CryptographicKeys uppdaterar du värdet för StorageReferenceId till namnet på den principnyckel som skapades tidigare. Exempel: B2C_1A_AADAppSecret

Begränsa åtkomst

Med https://login.microsoftonline.com/ värdet för ValidTokenIssuerPrefixes kan alla Microsoft Entra-användare logga in på ditt program. Uppdatera listan över giltiga token utfärdare och begränsa åtkomsten till en specifik lista över Microsoft Entra-klientanvändare som kan logga in.

Om du vill hämta värdena kan du titta på OpenID-Anslut identifieringsmetadata för var och en av de Microsoft Entra-klienter som du vill att användarna ska logga in från. Formatet för metadata-URL:en liknar https://login.microsoftonline.com/your-tenant/v2.0/.well-known/openid-configuration, där your-tenant är ditt Microsoft Entra-klientnamn. Till exempel:

https://login.microsoftonline.com/fabrikam.onmicrosoft.com/v2.0/.well-known/openid-configuration

Utför dessa steg för varje Microsoft Entra-klientorganisation som ska användas för att logga in:

  1. Öppna webbläsaren och gå till Url:en för OpenID-Anslut metadata för klientorganisationen. Leta upp issuer objektet och registrera dess värde. Det bör se ut ungefär som https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/v2.0.
  2. Kopiera och klistra in värdet i nyckeln ValidTokenIssuerPrefixes . Avgränsa flera utfärdare med kommatecken. Ett exempel med två utfärdare visas i föregående ClaimsProvider XML-exempel.

Lägga till en användarresa

I det här läget har identitetsprovidern konfigurerats, men den är ännu inte tillgänglig på någon av inloggningssidorna. Om du inte har en egen anpassad användarresa skapar du en dubblett av en befintlig mallanvändarresa, annars fortsätter du till nästa steg.

  1. Öppna filen TrustFrameworkBase.xml från startpaketet.
  2. Hitta och kopiera hela innehållet i elementet UserJourney som innehåller Id="SignUpOrSignIn".
  3. Öppna TrustFrameworkExtensions.xml och leta upp elementet UserJourneys. Om elementet inte finns lägger du till ett.
  4. Klistra in hela innehållet i elementet UserJourney som du kopierade som underordnat elementet UserJourneys .
  5. Byt namn på ID:t för användarresan. Exempel: Id="CustomSignUpSignIn"

Lägga till identitetsprovidern i en användarresa

Nu när du har en användarresa lägger du till den nya identitetsprovidern i användarresan. Du lägger först till en inloggningsknapp och länkar sedan knappen till en åtgärd. Åtgärden är den tekniska profil som du skapade tidigare.

  1. Leta reda på orkestreringsstegelementet som innehåller Type="CombinedSignInAndSignUp", eller Type="ClaimsProviderSelection" i användarresan. Det är vanligtvis det första orkestreringssteget. Elementet ClaimsProviderSelections innehåller en lista över identitetsprovidrar som en användare kan logga in med. Ordningen på elementen styr ordningen på de inloggningsknappar som visas för användaren. Lägg till ett ClaimsProviderSelection XML-element. Ange värdet för TargetClaimsExchangeId till ett eget namn.

  2. I nästa orkestreringssteg lägger du till ett ClaimsExchange-element . Ange ID:t till värdet för målanspråkets utbytes-ID. Uppdatera värdet för TechnicalProfileReferenceId till ID:t för den tekniska profil som du skapade tidigare.

Följande XML visar de två första orkestreringsstegen för en användarresa med identitetsprovidern:

<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
  <ClaimsProviderSelections>
    ...
    <ClaimsProviderSelection TargetClaimsExchangeId="AzureADCommonExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="AzureADCommonExchange" TechnicalProfileReferenceId="AADCommon-OpenIdConnect" />
  </ClaimsExchanges>
</OrchestrationStep>

Konfigurera principen för förlitande part

Principen för förlitande part, till exempel SignUpSignIn.xml, anger den användarresa som Azure AD B2C ska köra. Hitta elementet DefaultUserJourney i den förlitande parten. Uppdatera ReferenceId så att det matchar användarens rese-ID, där du lade till identitetsprovidern.

I följande exempel CustomSignUpSignIn för användarresan är ReferenceId inställt på CustomSignUpSignIn:

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

Ladda upp den anpassade principen

  1. Logga in på Azure-portalen.
  2. Välj ikonen Katalog + prenumeration i portalens verktygsfält och välj sedan den katalog som innehåller din Azure AD B2C-klientorganisation.
  3. I Azure-portalen söker du efter och väljer Azure AD B2C.
  4. Under Principer väljer du Identity Experience Framework.
  5. Välj Överför anpassad princip och ladda sedan upp de två principfilerna som du ändrade i följande ordning: tilläggsprincipen, till exempel TrustFrameworkExtensions.xml, och sedan den förlitande partprincipen, till exempel SignUpSignIn.xml.

Testa din anpassade princip

  1. Välj din princip för förlitande part, till exempel B2C_1A_signup_signin.
  2. För Program väljer du ett webbprogram som du registrerade tidigare. Svars-URL :en ska visa https://jwt.ms.
  3. Välj knappen Kör nu.
  4. På registrerings- eller inloggningssidan väljer du Vanligt Microsoft Entra-ID för att logga in med Microsoft Entra-konto.

Om du vill testa inloggningsfunktionen för flera klientorganisationer utför du de två sista stegen med autentiseringsuppgifterna för en användare som finns en annan Microsoft Entra-klientorganisation. Kopiera slutpunkten Kör nu och öppna den i ett privat webbläsarfönster, till exempel Incognito-läge i Google Chrome eller ett InPrivate-fönster i Microsoft Edge. Om du öppnar i ett privat webbläsarfönster kan du testa hela användarresan genom att inte använda några cachelagrade Microsoft Entra-autentiseringsuppgifter.

Om inloggningsprocessen lyckas omdirigeras webbläsaren till https://jwt.ms, som visar innehållet i token som returneras av Azure AD B2C.

Nästa steg