Udostępnij za pośrednictwem


Konfigurowanie rejestracji i logowania przy użyciu konta Google przy użyciu usługi Azure Active Directory B2C

Ważne

Od 1 maja 2025 r. usługa Azure AD B2C nie będzie już dostępna do zakupu dla nowych klientów. Dowiedz się więcej w naszych często zadawanych pytaniach.

Przed rozpoczęciem użyj selektora Wybierz typ zasad w górnej części tej strony, 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.

Ważne

Od 30 września 2021 r. firma Google wycofa obsługę logowania w widoku internetowym. Jeśli aplikacje uwierzytelniają użytkowników za pomocą osadzonego widoku internetowego i korzystasz z federacji Google z usługą Azure AD B2C, użytkownicy usługi Google Gmail nie będą mogli uwierzytelniać się. Dowiedz się więcej.

Uwaga / Notatka

W usłudze Azure Active Directory B2C niestandardowe zasady 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

Tworzenie aplikacji Google

Aby włączyć logowanie dla użytkowników przy użyciu konta Google w usłudze Azure Active Directory B2C (Azure AD B2C), musisz utworzyć aplikację w konsoli Google Developers Console. Aby uzyskać więcej informacji, zobacz Konfigurowanie protokołu OAuth 2.0. Jeśli nie masz jeszcze konta Google, możesz zarejestrować się pod adresem https://accounts.google.com/signup.

  1. Zaloguj się do konsoli Google Developers Console przy użyciu poświadczeń konta Google.
  2. W lewym górnym rogu strony wybierz listę projektów, a następnie wybierz pozycję Nowy projekt.
  3. Wprowadź nazwę projektu, wybierz pozycję Utwórz.
  4. Upewnij się, że używasz nowego projektu, wybierając listę rozwijaną projektu w lewym górnym rogu ekranu. Wybierz projekt według nazwy, a następnie wybierz pozycję Otwórz.
  5. W menu po lewej stronie wybierz pozycję Interfejsy API i usługi, a następnie ekran zgody OAuth. Wybierz pozycję Zewnętrzne , a następnie wybierz pozycję Utwórz.
    1. Wprowadź nazwę aplikacji.
    2. Wybierz adres e-mail pomocy technicznej użytkownika.
    3. W sekcji Domena aplikacji wprowadź link do strony głównej aplikacji, link do zasad ochrony prywatności aplikacji i link do warunków użytkowania aplikacji.
    4. W sekcji Autoryzowane domeny wprowadź b2clogin.com.
    5. W sekcji Informacje kontaktowe dla deweloperów wprowadź rozdzielone przecinkami wiadomości e-mail dla firmy Google, aby powiadomić Cię o wszelkich zmianach w projekcie.
    6. Wybierz Zapisz.
  6. Wybierz pozycję Poświadczenia w menu po lewej stronie, a następnie wybierz pozycję Utwórz poświadczenia>identyfikatora klienta OAuth.
  7. W obszarze Typ aplikacji wybierz pozycję Aplikacja internetowa.
    1. Wprowadź nazwę aplikacji.
    2. W przypadku autoryzowanych źródeł języka JavaScript wprowadź .https://your-tenant-name.b2clogin.com Jeśli używasz domeny niestandardowej, wprowadź.https://your-domain-name
    3. W przypadku autoryzowanych URI przekierowania wprowadź https://your-tenant-name.b2clogin.com/your-tenant-name.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 własną domeną i your-tenant-name nazwą najemcy. Użyj wszystkich małych liter przy wprowadzaniu nazwy najemcy, nawet jeśli jest ona zdefiniowana wielkimi literami w usłudze Azure AD B2C. We wszystkich wystąpieniach zastąp ciąg your-tenant-name poddomeną katalogu (dzierżawcy). Na przykład, jeśli podstawowa domena najemcy to contoso.onmicrosoft.com, użyj contoso. Jeśli nie masz nazwy swojego dzierżawcy, dowiedz się, jak sprawdzać szczegóły dzierżawy.
  8. Wybierz Utwórz.
  9. Skopiuj wartości Identyfikator klienta i Klucz tajny klienta. Obie te rzeczy będą potrzebne do skonfigurowania Google jako dostawcę usług tożsamości w Twoim tennencie. Tajny klucz klienta to ważne poświadczenie zabezpieczeń.

Konfigurowanie usługi Google jako dostawcy tożsamości

  1. Zaloguj się do witryny Azure Portal przy użyciu konta, które ma co najmniej uprawnienia administratora zewnętrznego dostawcy tożsamości .
  2. Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się na dzierżawę Azure AD B2C z menu Katalogi + subskrypcje.
  3. Wybierz pozycję Wszystkie usługi w lewym górnym rogu witryny Azure Portal, wyszukaj i wybierz pozycję Azure AD B2C.
  4. Wybierz pozycję Dostawcy tożsamości, a następnie wybierz pozycję Google.
  5. W polu Nazwa wprowadź nazwę. Na przykład Google.
  6. W polu Identyfikator klienta wprowadź identyfikator klienta utworzonej wcześniej aplikacji Google.
  7. W polu Klucz tajny klienta wprowadź zarejestrowany klucz tajny klienta.
  8. Wybierz Zapisz.

Dodaj dostawcę tożsamości Google do przepływu użytkownika

W tym momencie dostawca tożsamości Google został skonfigurowany, ale nie jest jeszcze dostępny na żadnej ze stron logowania. Aby dodać dostawcę tożsamości Google do przepływu użytkownika:

  1. W dzierżawie Azure AD B2C wybierz opcję Przepływy użytkownika.
  2. Wybierz przepływ użytkownika, do którego chcesz dodać dostawcę tożsamości Google.
  3. W obszarze Dostawcy tożsamości społecznościowych wybierz pozycję Google.
  4. Wybierz Zapisz.
  5. Aby przetestować politykę, wybierz pozycję Uruchom przepływ użytkownika.
  6. W polu Aplikacja wybierz aplikację internetową o nazwie testapp1 , która została wcześniej zarejestrowana. Adres URL odpowiedzi powinien zawierać wartość https://jwt.ms.
  7. Wybierz przycisk Uruchom przepływ użytkownika.
  8. Na stronie rejestracji lub logowania wybierz pozycję Google , aby zalogować się przy użyciu konta Google.

Jeśli proces logowania zakończy się pomyślnie, przeglądarka zostanie przekierowana na adres https://jwt.ms. Na stronie zostanie wyświetlona zawartość tokenu zwracanego przez usługę Azure AD B2C.

Tworzenie klucza zasad

Musisz przechowywać tajny klucz klienta, który wcześniej zanotowałeś w dzierżawie Azure AD B2C.

  1. Zaloguj się do witryny Azure Portal.
  2. Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się na dzierżawę Azure AD B2C z menu Katalogi + subskrypcje.
  3. Wybierz pozycję Wszystkie usługi w lewym górnym rogu witryny Azure Portal, a następnie wyszukaj i wybierz pozycję Azure AD B2C.
  4. Na stronie Przegląd ogólny wybierz pozycję Identity Experience Framework.
  5. Wybierz Klucze zasad, a następnie wybierz Dodaj.
  6. W obszarze Opcje wybierz pozycję Manual.
  7. Wprowadź nazwę klucza zasad. Na przykład GoogleSecret. Prefiks B2C_1A_ jest dodawany automatycznie do nazwy klucza.
  8. W Tajny wprowadź wcześniej zarejestrowany tajny klienta.
  9. W obszarze Użycie klucza wybierz pozycję Signature.
  10. Wybierz Utwórz.

Konfigurowanie usługi Google jako dostawcy tożsamości

Aby umożliwić użytkownikom logowanie się przy użyciu konta Google, musisz zdefiniować konto 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.

Konto Google można zdefiniować jako dostawcę oświadczeń, dodając je do elementu ClaimsProviders 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>google.com</Domain>
      <DisplayName>Google</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Google-OAuth2">
          <DisplayName>Google</DisplayName>
          <Protocol Name="OAuth2" />
          <Metadata>
            <Item Key="ProviderName">google</Item>
            <Item Key="authorization_endpoint">https://accounts.google.com/o/oauth2/auth</Item>
            <Item Key="AccessTokenEndpoint">https://accounts.google.com/o/oauth2/token</Item>
            <Item Key="ClaimsEndpoint">https://www.googleapis.com/oauth2/v1/userinfo</Item>
            <Item Key="scope">email profile</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
            <Item Key="client_id">Your Google application ID</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_GoogleSecret" />
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="id" />
            <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="google.com" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" />
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. Ustaw client_id na identyfikator aplikacji z rejestracji aplikacji.

  5. Zapisz plik.

Dodanie ścieżki 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 niestandardowej podróży użytkownika, utwórz duplikat szablonu podróży użytkownika, inaczej 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 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ń identyfikator podróży użytkownika. Na przykład Id="CustomSignUpSignIn".

Dodaj dostawcę tożsamości do podróży użytkownika

Teraz, gdy masz ścieżkę użytkownika, dodaj nowego dostawcę tożsamości do tej ścieżki. 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" lub Type="ClaimsProviderSelection" w ścieżce 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 XML ClaimsProviderSelection. Ustaw wartość TargetClaimsExchangeId na przyjazną nazwę.

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

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="GoogleExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="GoogleExchange" TechnicalProfileReferenceId="Google-OAuth2" />
  </ClaimsExchanges>
</OrchestrationStep>

Konfigurowanie polityki podmiotu polegającego

Polityka zaufanej strony, na przykład SignUpSignIn.xml, określa podróż użytkownika, którą zrealizuje Azure AD B2C. Znajdź element DefaultUserJourney w stronie zaufanej. 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 dla ścieżki użytkownika CustomSignUpSignIn identyfikator ReferenceId jest ustawiony na:CustomSignUpSignIn

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

Przekaż zasady niestandardowe

  1. Zaloguj się do witryny 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 Policieswybierz pozycję Identity Experience Framework.
  5. Wybierz Załaduj zasady niestandardowe, a następnie załaduj dwa zmienione pliki zasad w następującej kolejności: zasady rozszerzenia, na przykład TrustFrameworkExtensions.xml, a następnie zasady strony zależnej, takie jak SignUpSignIn.xml.

Przetestuj swoje zasady niestandardowe

  1. Wybierz zasady zaufanej strony, 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ę Google , aby zalogować się przy użyciu konta Google.

Jeśli proces logowania zakończy się pomyślnie, przeglądarka zostanie przekierowana do https://jwt.ms, gdzie wyświetlana jest zawartość tokenu zwróconego przez Azure AD B2C.

Dalsze kroki