Konfigurowanie logowania dla określonej organizacji firmy Microsoft Entra w usłudze Azure Active Directory B2C

W tym artykule pokazano, jak włączyć logowanie dla użytkowników z określonej organizacji firmy Microsoft Entra przy użyciu przepływu użytkownika w usłudze Azure AD B2C.

Przed rozpoczęciem użyj selektora Wybierz typ zasad, aby wybrać typ konfigurowanych zasad. Usługa Azure Active Directory B2C oferuje dwie metody definiowania sposobu interakcji użytkowników z aplikacjami: za pomocą wstępnie zdefiniowanych przepływów użytkowników lub w pełni konfigurowalnych zasad niestandardowych. Kroki wymagane w tym artykule są różne dla każdej metody.

Uwaga

W usłudze Azure Active Directory B2C zasady niestandardowe są przeznaczone głównie do rozwiązywania złożonych scenariuszy. W przypadku większości scenariuszy zalecamy używanie wbudowanych przepływów użytkownika. Jeśli nie zostało to zrobione, dowiedz się więcej o niestandardowym pakiecie startowym zasad w temacie Wprowadzenie do zasad niestandardowych w usłudze Active Directory B2C.

Wymagania wstępne

Weryfikowanie domeny wydawcy aplikacji

Od listopada 2020 r. nowe rejestracje aplikacji są wyświetlane jako niezweryfikowane w monicie zgody użytkownika, chyba że domena wydawcy aplikacji zostanie zweryfikowana, a tożsamość firmy została zweryfikowana w usłudze Microsoft Partner Network i skojarzona z aplikacją. (Dowiedz się więcej o tej zmianie). Należy pamiętać, że w przypadku przepływów użytkownika usługi Azure AD B2C domena wydawcy jest wyświetlana tylko w przypadku korzystania z konta Microsoft lub innej dzierżawy usługi Microsoft Entra jako dostawcy tożsamości. Aby spełnić te nowe wymagania, wykonaj następujące czynności:

  1. Zweryfikuj tożsamość firmy przy użyciu konta programu Microsoft Partner Network (MPN). Ten proces weryfikuje informacje o firmie i podstawowym kontakcie firmy.
  2. Ukończ proces weryfikacji wydawcy, aby skojarzyć konto MPN z rejestracją aplikacji przy użyciu jednej z następujących opcji:
    • Jeśli rejestracja aplikacji dla dostawcy tożsamości konta Microsoft znajduje się w dzierżawie firmy Microsoft Entra, sprawdź aplikację w portalu rejestracji aplikacji.
    • Jeśli rejestracja aplikacji dla dostawcy tożsamości konta Microsoft znajduje się w dzierżawie usługi Azure AD B2C, oznacz aplikację jako wydawcę zweryfikowaną przy użyciu interfejsów API programu Microsoft Graph (na przykład przy użyciu Eksploratora programu Graph). Interfejs użytkownika do ustawiania zweryfikowanego wydawcy aplikacji jest obecnie wyłączony dla dzierżaw usługi Azure AD B2C.

Rejestrowanie aplikacji Microsoft Entra

Aby włączyć logowanie dla użytkowników przy użyciu konta Microsoft Entra z określonej organizacji firmy Microsoft Entra, w usłudze Azure Active Directory B2C (Azure AD B2C), musisz utworzyć aplikację w witrynie Azure Portal. Aby uzyskać więcej informacji, zobacz Rejestrowanie aplikacji przy użyciu Platforma tożsamości Microsoft.

  1. Zaloguj się w witrynie Azure Portal.

  2. Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się do dzierżawy Microsoft Entra ID z menu Katalogi i subskrypcje.

  3. W witrynie Azure Portal wyszukaj i wybierz pozycję Microsoft Entra ID.

  4. W menu po lewej stronie w obszarze Zarządzaj wybierz pozycję Rejestracje aplikacji.

  5. Wybierz pozycję + Nowa rejestracja.

  6. Wprowadź nazwę aplikacji. Na przykład Azure AD B2C App.

  7. Zaakceptuj domyślny wybór opcji Konta tylko w tym katalogu organizacyjnym (tylko katalog domyślny — pojedyncza dzierżawa) dla tej aplikacji.

  8. W polu Identyfikator URI przekierowania zaakceptuj wartość Sieci Web i wprowadź następujący adres URL we wszystkich małych literach, gdzie your-B2C-tenant-name jest zastępowany nazwą dzierżawy usługi Azure AD B2C.

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

    Na przykład https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/oauth2/authresp.

    Jeśli używasz domeny niestandardowej, wprowadź .https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp Zastąp your-domain-name ciąg domeną niestandardową i your-tenant-name nazwą dzierżawy.

  9. Wybierz pozycję Zarejestruj. Zarejestruj identyfikator aplikacji (klienta) do użycia w późniejszym kroku.

  10. Wybierz pozycję Wpisy tajne certyfikatów&, a następnie wybierz pozycję Nowy klucz tajny klienta.

  11. Wprowadź opis wpisu tajnego, wybierz wygaśnięcie, a następnie wybierz pozycję Dodaj. Zapisz wartość wpisu tajnego do użycia w późniejszym kroku.

Konfigurowanie identyfikatora entra firmy Microsoft jako dostawcy tożsamości

  1. Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się do dzierżawy usługi Azure AD B2C z menu Katalogi i subskrypcje.

  2. Wybierz pozycję Wszystkie usługi w lewym górnym rogu witryny Azure Portal, a następnie wyszukaj i wybierz usługę Azure AD B2C.

  3. Wybierz pozycję Dostawcy tożsamości, a następnie wybierz pozycję Nowy dostawca openID Połączenie.

  4. Wprowadź nazwę. Na przykład wprowadź contoso Entra ID.

  5. W polu Adres URL metadanych wprowadź następujący adres URL, zastępując {tenant} ciąg nazwą domeny dzierżawy firmy Microsoft Entra:

    https://login.microsoftonline.com/{tenant}/v2.0/.well-known/openid-configuration
    

Na przykład https://login.microsoftonline.com/contoso.onmicrosoft.com/v2.0/.well-known/openid-configuration. Jeśli używasz domeny niestandardowej, zastąp ciąg contoso.com domeną niestandardową w pliku https://login.microsoftonline.com/contoso.com/v2.0/.well-known/openid-configuration.

  1. W polu Identyfikator klienta wprowadź wcześniej zarejestrowany identyfikator aplikacji.

  2. W polu Klucz tajny klienta wprowadź wcześniej zarejestrowaną wartość klucza tajnego klienta.

  3. W polu Zakres wprowadź wartość openid profile.

  4. Pozostaw wartości domyślne dla pola Typ odpowiedzi i Tryb odpowiedzi.

  5. (Opcjonalnie) W polu Wskazówka dotycząca domeny wprowadź wartość contoso.com. Aby uzyskać więcej informacji, zobacz Konfigurowanie logowania bezpośredniego przy użyciu usługi Azure Active Directory B2C.

  6. W obszarze Mapowanie oświadczeń dostawcy tożsamości wybierz następujące oświadczenia:

    • Identyfikator użytkownika: oid
    • Nazwa wyświetlana: nazwa
    • Podana nazwa: given_name
    • Nazwisko: family_name
    • Adres e-mail: adres e-mail
  7. Wybierz pozycję Zapisz.

Dodawanie dostawcy tożsamości Entra firmy Microsoft do przepływu użytkownika

Na tym etapie skonfigurowano dostawcę tożsamości Firmy Microsoft Entra, ale nie jest jeszcze dostępny na żadnej ze stron logowania. Aby dodać dostawcę tożsamości Firmy Microsoft Entra do przepływu użytkownika:

  1. W dzierżawie usługi Azure AD B2C wybierz pozycję Przepływy użytkownika.
  2. Kliknij przepływ użytkownika, który chcesz dodać dostawcę tożsamości Firmy Microsoft Entra.
  3. W obszarze Ustawienia wybierz pozycję Dostawcy tożsamości
  4. W obszarze Niestandardowi dostawcy tożsamości wybierz pozycję Contoso Microsoft Entra ID.
  5. Wybierz pozycję Zapisz.
  6. Aby przetestować zasady, wybierz pozycję Uruchom przepływ użytkownika.
  7. W polu Aplikacja wybierz wcześniej zarejestrowaną aplikację internetową. Adres URL odpowiedzi powinien zawierać wartość https://jwt.ms.
  8. Wybierz przycisk Uruchom przepływ użytkownika.
  9. Na stronie rejestracji lub logowania wybierz pozycję Contoso Microsoft Entra ID , aby zalogować się przy użyciu konta firmy Microsoft Entra Contoso.

Jeśli proces logowania zakończy się pomyślnie, przeglądarka zostanie przekierowana do https://jwt.msusługi , która wyświetla zawartość tokenu zwróconego przez usługę Azure AD B2C.

Tworzenie klucza zasad

Musisz przechowywać klucz aplikacji utworzony w dzierżawie usługi Azure AD B2C.

  1. Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się do dzierżawy usługi Azure AD B2C z menu Katalogi i subskrypcje.
  2. Wybierz pozycję Wszystkie usługi w lewym górnym rogu witryny Azure Portal, a następnie wyszukaj i wybierz usługę Azure AD B2C.
  3. W obszarze Zasady wybierz pozycję Identity Experience Framework.
  4. Wybierz pozycję Klucze zasad, a następnie wybierz pozycję Dodaj.
  5. W obszarze Opcje wybierz pozycję Manual.
  6. Wprowadź nazwę klucza zasad. Na przykład ContosoAppSecret. Prefiks B2C_1A_ jest dodawany automatycznie do nazwy klucza podczas jego tworzenia, więc jego odwołanie w pliku XML w poniższej sekcji ma na celu B2C_1A_ContosoAppSecret.
  7. W polu Wpis tajny wprowadź wartość wpisu tajnego klienta, która została zarejestrowana wcześniej.
  8. W obszarze Użycie klucza wybierz pozycję Signature.
  9. Wybierz pozycję Utwórz.

Konfigurowanie identyfikatora entra firmy Microsoft jako dostawcy tożsamości

Aby umożliwić użytkownikom logowanie się przy użyciu konta Microsoft Entra, należy zdefiniować identyfikator Entra firmy Microsoft jako dostawcę oświadczeń, z którym usługa Azure AD B2C może komunikować się za pośrednictwem punktu końcowego. Punkt końcowy udostępnia zestaw oświadczeń używanych przez usługę Azure AD B2C do sprawdzania, czy określony użytkownik został uwierzytelniony.

Identyfikator entra firmy Microsoft można zdefiniować jako dostawcę oświadczeń, dodając identyfikator Entra firmy Microsoft do elementu ClaimsProvider w pliku rozszerzenia zasad.

  1. Otwórz plik TrustFrameworkExtensions.xml.

  2. Znajdź element ClaimsProviders. Jeśli nie istnieje, dodaj go pod elementem głównym.

  3. Dodaj nowy element ClaimsProvider w następujący sposób:

    <ClaimsProvider>
      <Domain>Contoso</Domain>
      <DisplayName>Login using Contoso</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="AADContoso-OpenIdConnect">
          <DisplayName>Contoso Employee</DisplayName>
          <Description>Login with your Contoso account</Description>
          <Protocol Name="OpenIdConnect"/>
          <Metadata>
            <Item Key="METADATA">https://login.microsoftonline.com/tenant-name.onmicrosoft.com/v2.0/.well-known/openid-configuration</Item>
            <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>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_ContosoAppSecret"/>
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="oid"/>
            <OutputClaim ClaimTypeReferenceId="tenantId" PartnerClaimType="tid"/>
            <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. W elemencie ClaimsProvider zaktualizuj wartość domain na unikatową wartość, która może służyć do odróżnienia jej od innych dostawców tożsamości. Na przykład: Contoso. Nie umieszczasz .com wartości na końcu tego ustawienia domeny.

  5. W elemecie ClaimsProvider zaktualizuj wartość DisplayName na przyjazną nazwę dostawcy oświadczeń. Ta wartość nie jest obecnie używana.

Aktualizowanie profilu technicznego

Aby uzyskać token z punktu końcowego firmy Microsoft Entra, należy zdefiniować protokoły, których usługa Azure AD B2C powinna używać do komunikowania się z identyfikatorem Entra firmy Microsoft. Odbywa się to wewnątrz elementu TechnicalProfile obiektu ClaimsProvider.

  1. Zaktualizuj identyfikator elementu TechnicalProfile . Ten identyfikator służy do odwoływania się do tego profilu technicznego z innych części zasad, na przykład AADContoso-OpenIdConnect.
  2. Zaktualizuj wartość parametru DisplayName. Ta wartość zostanie wyświetlona na przycisku logowania na ekranie logowania.
  3. Zaktualizuj wartość pola Opis.
  4. Identyfikator Entra firmy Microsoft używa protokołu Połączenie OpenID, dlatego upewnij się, że wartość protokołu to OpenIdConnect.
  5. Ustaw wartość metadanych na https://login.microsoftonline.com/tenant-name.onmicrosoft.com/v2.0/.well-known/openid-configuration, gdzie tenant-name jest nazwą dzierżawy firmy Microsoft Entra. Na przykład https://login.microsoftonline.com/contoso.onmicrosoft.com/v2.0/.well-known/openid-configuration
  6. Ustaw client_id identyfikator aplikacji z rejestracji aplikacji.
  7. W obszarze KryptograficzneKlucze zaktualizuj wartość StorageReferenceId na nazwę utworzonego wcześniej klucza zasad. Na przykład B2C_1A_ContosoAppSecret.

Dodawanie podróży użytkownika

W tym momencie dostawca tożsamości został skonfigurowany, ale nie jest jeszcze dostępny na żadnej ze stron logowania. Jeśli nie masz własnej podróży użytkownika niestandardowego, utwórz duplikat istniejącej podróży użytkownika szablonu, w przeciwnym razie przejdź do następnego kroku.

  1. Otwórz plik TrustFrameworkBase.xml z pakietu startowego.
  2. Znajdź i skopiuj całą zawartość elementu UserJourney , który zawiera Id="SignUpOrSignIn"element .
  3. Otwórz plik TrustFrameworkExtensions.xml i znajdź element UserJourneys . Jeśli element nie istnieje, dodaj go.
  4. Wklej całą zawartość elementu UserJourney skopiowaną jako element podrzędny elementu UserJourneys .
  5. Zmień nazwę identyfikatora podróży użytkownika. Na przykład Id="CustomSignUpSignIn".

Dodawanie dostawcy tożsamości do podróży użytkownika

Teraz, gdy masz podróż użytkownika, dodaj nowego dostawcę tożsamości do podróży użytkownika. Najpierw dodaj przycisk logowania, a następnie połącz przycisk z akcją. Akcja to utworzony wcześniej profil techniczny.

  1. Znajdź element kroku aranżacji, który zawiera Type="CombinedSignInAndSignUp"element , lub Type="ClaimsProviderSelection" w podróży użytkownika. Zazwyczaj jest to pierwszy krok aranżacji. Element ClaimsProviderSelections zawiera listę dostawców tożsamości, za pomocą których użytkownik może się zalogować. Kolejność elementów kontroluje kolejność przycisków logowania przedstawionych użytkownikowi. Dodaj element ClaimsProviderSelection XML. Ustaw wartość TargetClaimsExchangeId na przyjazną nazwę.

  2. W następnym kroku aranżacji dodaj element ClaimsExchange . Ustaw identyfikator na wartość identyfikatora wymiany oświadczeń docelowych. Zaktualizuj wartość TechnicalProfileReferenceId na identyfikator utworzonego wcześniej profilu technicznego.

Poniższy kod XML przedstawia dwa pierwsze kroki orkiestracji podróży użytkownika z dostawcą tożsamości:

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

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

Konfigurowanie zasad jednostki uzależnionej

Zasady jednostki uzależnionej, na przykład SignUpSignIn.xml, określają podróż użytkownika, który będzie wykonywany przez usługę Azure AD B2C. Znajdź element DefaultUserJourney w ramach jednostki uzależnionej. Zaktualizuj identyfikator ReferenceId , aby był zgodny z identyfikatorem podróży użytkownika, w którym dodano dostawcę tożsamości.

W poniższym przykładzie CustomSignUpSignIn dla podróży użytkownika identyfikator ReferenceId jest ustawiony na :CustomSignUpSignIn

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

Przekazywanie zasad niestandardowych

  1. Zaloguj się w witrynie Azure Portal.
  2. Wybierz ikonę Katalog i subskrypcja na pasku narzędzi portalu, a następnie wybierz katalog zawierający dzierżawę usługi Azure AD B2C.
  3. W witrynie Azure Portal wyszukaj i wybierz pozycję Azure AD B2C.
  4. W obszarze Zasady wybierz pozycję Identity Experience Framework.
  5. Wybierz pozycję Przekaż zasady niestandardowe, a następnie przekaż dwa zmienione pliki zasad w następującej kolejności: zasady rozszerzenia, na przykład TrustFrameworkExtensions.xml, a następnie zasady jednostki uzależnionej, takie jak SignUpSignIn.xml.

Testowanie zasad niestandardowych

  1. Wybierz zasady jednostki uzależnionej, na przykład B2C_1A_signup_signin.
  2. W polu Aplikacja wybierz wcześniej zarejestrowaną aplikację internetową. Adres URL odpowiedzi powinien zawierać wartość https://jwt.ms.
  3. Wybierz przycisk Uruchom teraz.
  4. Na stronie rejestracji lub logowania wybierz pozycję Pracownik firmy Contoso , aby zalogować się przy użyciu konta firmy Microsoft Entra Contoso.

Jeśli proces logowania zakończy się pomyślnie, przeglądarka zostanie przekierowana do https://jwt.msusługi , która wyświetla zawartość tokenu zwróconego przez usługę Azure AD B2C.

[Opcjonalnie] Konfigurowanie opcjonalnych oświadczeń

Jeśli chcesz uzyskać family_name oświadczenia i given_name z identyfikatora Entra firmy Microsoft, możesz skonfigurować opcjonalne oświadczenia dla aplikacji w interfejsie użytkownika witryny Azure Portal lub manifeście aplikacji. Aby uzyskać więcej informacji, zobacz How to provide optional claims to your Microsoft Entra app (Jak dostarczyć opcjonalne oświadczenia do aplikacji Microsoft Entra).

  1. Zaloguj się do witryny Azure Portal przy użyciu swojej organizacji dzierżawy firmy Microsoft Entra. Jeśli już się zalogowałeś, upewnij się, że używasz katalogu zawierającego organizację dzierżawy firmy Microsoft Entra (na przykład Contoso):
    1. Wybierz ikonę Katalogi i subskrypcje na pasku narzędzi portalu.
    2. W ustawieniach portalu | Na stronie Katalogi i subskrypcje znajdź katalog Microsoft Entra na liście Nazwa katalogu, a następnie wybierz pozycję Przełącz.
  2. W witrynie Azure Portal wyszukaj i wybierz pozycję Microsoft Entra ID.
  3. W menu po lewej stronie w obszarze Zarządzaj wybierz pozycję Rejestracje aplikacji.
  4. Wybierz aplikację, dla której chcesz skonfigurować opcjonalne oświadczenia na liście, na przykład Azure AD B2C App.
  5. W sekcji Zarządzanie wybierz pozycję Konfiguracja tokenu.
  6. Wybierz Dodaj opcjonalne roszczenie.
  7. W polu Typ tokenu wybierz pozycję Identyfikator.
  8. Wybierz opcjonalne oświadczenia, które chcesz dodać, family_name i given_name.
  9. Wybierz pozycję Dodaj. Jeśli zostanie wyświetlone uprawnienie Włącz profil programu Microsoft Graph (wymagane, aby oświadczenia pojawiały się w tokenie), włącz je, a następnie wybierz pozycję Dodaj ponownie.

[Opcjonalnie] Weryfikowanie autentyczności aplikacji

Weryfikacja wydawcy pomaga użytkownikom zrozumieć autentyczność zarejestrowanej aplikacji. Zweryfikowana aplikacja oznacza, że wydawca aplikacji zweryfikował swoją tożsamość przy użyciu programu Microsoft Partner Network (MPN). Dowiedz się, jak oznaczyć aplikację jako taką, której wydawca jest zweryfikowany.

Następne kroki

Dowiedz się, jak przekazać token Microsoft Entra do aplikacji.