Konfigurowanie rejestracji i logowania przy użyciu identyfikatora Apple ID przy użyciu usługi Azure Active Directory 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

Tworzenie aplikacji Apple ID

Aby włączyć logowanie dla użytkowników z identyfikatorem Apple ID w usłudze Azure Active Directory B2C (Azure AD B2C), należy utworzyć aplikację w usłudze https://developer.apple.com. Aby uzyskać więcej informacji, zobacz Logowanie się przy użyciu firmy Apple. Jeśli nie masz jeszcze konta dewelopera firmy Apple, możesz zarejestrować się w programie Apple Developer Program.

  1. Zaloguj się do portalu deweloperów firmy Apple przy użyciu poświadczeń konta.
  2. Z menu wybierz pozycję Certyfikaty, identyfikatory, & profile, a następnie wybierz pozycję (+).
  3. W obszarze Rejestrowanie nowego identyfikatora wybierz pozycję Identyfikatory aplikacji, a następnie wybierz pozycję Kontynuuj.
  4. W obszarze Wybierz typ wybierz pozycję Aplikacja, a następnie wybierz pozycję Kontynuuj.
  5. Aby zarejestrować identyfikator aplikacji:
    1. Wprowadź opis
    2. Wprowadź identyfikator pakietu, taki jak com.contoso.azure-ad-b2c.
    3. W obszarze Możliwości wybierz pozycję Zaloguj się przy użyciu firmy Apple z listy możliwości.
    4. Zanotuj identyfikator zespołu (prefiks identyfikatora aplikacji) z tego kroku. Będziesz jej potrzebować później.
    5. Wybierz pozycję Kontynuuj , a następnie pozycję Zarejestruj.
  6. Z menu wybierz pozycję Certyfikaty, identyfikatory, & profile, a następnie wybierz pozycję (+).
  7. W obszarze Rejestrowanie nowego identyfikatora wybierz pozycję Identyfikatory usług, a następnie wybierz pozycję Kontynuuj.
  8. Aby zarejestrować identyfikator usług:
    1. Wprowadź opis. Opis jest wyświetlany użytkownikowi na ekranie zgody.
    2. Wprowadź identyfikator, taki jak com.consoto.azure-ad-b2c-service. Zanotuj identyfikator usługi . Identyfikator jest identyfikatorem klienta przepływu Połączenie OpenID.
    3. Wybierz pozycję Kontynuuj, a następnie wybierz pozycję Zarejestruj.
  9. W obszarze Identyfikatory wybierz utworzony identyfikator.
  10. Wybierz pozycję Zaloguj się przy użyciu firmy Apple, a następnie wybierz pozycję Konfiguruj.
    1. Wybierz podstawowy identyfikator aplikacji, za pomocą którego chcesz skonfigurować logowanie przy użyciu firmy Apple.
    2. W domenach i domenach podrzędnych wprowadź wartość your-tenant-name.b2clogin.com. Zastąp ciąg your-tenant-name nazwą dzierżawy. Jeśli używasz domeny niestandardowej, wprowadź .https://your-domain-name
    3. W obszarze Zwracane adresy URL 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-tenant-name ciąg nazwą dzierżawy i your-domain-name domeną niestandardową. Adres URL zwracany musi być we wszystkich małych literach.
    4. Wybierz przycisk Dalej, a następnie wybierz pozycję Gotowe.
    5. Po zamknięciu okna podręcznego wybierz pozycję Kontynuuj, a następnie wybierz pozycję Zapisz.

Tworzenie wpisu tajnego klienta firmy Apple

  1. W menu Portalu deweloperów firmy Apple wybierz pozycję Klucze, a następnie wybierz pozycję (+).
  2. Aby zarejestrować nowy klucz:
    1. Wpisz nazwę klucza.
    2. Wybierz pozycję Zaloguj się przy użyciu firmy Apple, a następnie wybierz pozycję Konfiguruj.
    3. W polu Podstawowy identyfikator aplikacji wybierz utworzoną wcześniej aplikację, a następnie wybierz pozycję Zapisz.
    4. Wybierz pozycję Konfiguruj, a następnie wybierz pozycję Zarejestruj , aby zakończyć proces rejestracji klucza. Zanotuj identyfikator klucza. Ten klucz jest wymagany podczas konfigurowania przepływów użytkownika.
  3. W obszarze Pobierz klucz wybierz pozycję Pobierz , aby pobrać plik p8 zawierający klucz.

Konfigurowanie firmy Apple jako dostawcy tożsamości

  1. Zaloguj się do witryny Azure Portal jako administrator globalny dzierżawy usługi Azure AD B2C.
  2. 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.
  3. W obszarze Usługi platformy Azure wybierz pozycję Azure AD B2C. Możesz też użyć pola wyszukiwania, aby znaleźć i wybrać usługę Azure AD B2C.
  4. Wybierz pozycję Dostawcy tożsamości, a następnie wybierz pozycję Apple.
  5. W polu Nazwa wprowadź ciąg Zaloguj się przy użyciu firmy Apple.
  6. Wprowadź identyfikator dewelopera firmy Apple (identyfikator zespołu).
  7. Wprowadź identyfikator usługi firmy Apple (identyfikator klienta).
  8. Wprowadź identyfikator klucza firmy Apple z kroku Tworzenie wpisu tajnego klienta firmy Apple.
  9. Wybierz i przekaż dane certyfikatu firmy Apple.
  10. Wybierz pozycję Zapisz.

Ważne

  • Logowanie się przy użyciu firmy Apple wymaga Administracja odnowienia klucza tajnego klienta co 6 miesięcy.
  • Wpis tajny klienta firmy Apple zostanie automatycznie odnowiony po wygaśnięciu. Jeśli musisz ręcznie odnowić wpis tajny, otwórz usługę Azure AD B2C w witrynie Azure Portal, przejdź do pozycji Dostawcy>tożsamości Apple i wybierz pozycję Odnów wpis tajny.
  • Postępuj zgodnie z wytycznymi, jak zaoferować przycisk Zaloguj się przy użyciu firmy Apple.

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

Aby umożliwić użytkownikom logowanie się przy użyciu identyfikatora Apple ID, należy dodać dostawcę tożsamości firmy Apple do przepływu użytkownika. Logowanie przy użyciu firmy Apple można skonfigurować tylko dla zalecanej wersji przepływów użytkownika. Aby dodać dostawcę tożsamości firmy Apple do przepływu użytkownika:

  1. W dzierżawie usługi Azure AD B2C wybierz pozycję Przepływy użytkownika.
  2. Wybierz przepływ użytkownika, dla którego chcesz dodać dostawcę tożsamości firmy Apple.
  3. W obszarze Dostawcy tożsamości społecznościowych wybierz pozycję Apple.
  4. Wybierz pozycję Zapisz.
  5. Aby przetestować zasady, 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ę Apple , aby zalogować się przy użyciu identyfikatora Apple ID.

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.

Podpisywanie wpisu tajnego klienta

Użyj pobranego wcześniej pliku p8, aby podpisać klucz tajny klienta do tokenu JWT. Istnieje wiele bibliotek, które mogą utworzyć i podpisać zestaw JWT. Użyj funkcji platformy Azure, która tworzy token .

  1. Tworzenie funkcji platformy Azure.

  2. W obszarze Deweloper wybierz pozycję Kod i testowanie.

  3. Skopiuj zawartość pliku run.csx i wklej ją w edytorze.

  4. Wybierz pozycję Zapisz.

  5. Utwórz żądanie HTTP POST i podaj następujące informacje:

    • appleTeamId: Identyfikator zespołu deweloperów firmy Apple
    • appleServiceId: identyfikator usługi firmy Apple (identyfikator klienta)
    • appleKeyId: 10-cyfrowy identyfikator klucza przechowywany w nagłówku JWT (wymagany przez firmę Apple)
    • p8key: klucz formatu PEM. Można to uzyskać, otwierając plik p8 w edytorze tekstów i kopiując wszystko między -----BEGIN PRIVATE KEY----------END PRIVATE KEY----- i bez podziałów wierszy.

Poniższy kod json jest przykładem wywołania funkcji platformy Azure:

{
    "appleTeamId": "ABC123DEFG",
    "appleServiceId": "com.yourcompany.app1",
    "appleKeyId": "URKEYID001",
    "p8key": "MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQg+s07NiAcuGEu8rxsJBG7ttupF6FRe3bXdHxEipuyK82gCgYIKoZIzj0DAQehRANCAAQnR1W/KbbaihTQayXH3tuAXA8Aei7u7Ij5OdRy6clOgBeRBPy1miObKYVx3ki1msjjG2uGqRbrc1LvjLHINWRD"
}

Funkcja platformy Azure odpowiada prawidłowo sformatowanym i podpisanym kluczem tajnym klienta JWT w odpowiedzi, na przykład:

{
    "token": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjb20ueW91cmNvbXBhbnkuYXBwMSIsIm5iZiI6MTU2MDI2OTY3NSwiZXhwIjoxNTYwMzU2MDc1LCJpc3MiOiJBQkMxMjNERUZHIiwiYXVkIjoiaHR0cHM6Ly9hcHBsZWlkLmFwcGxlLmNvbSJ9.Dt9qA9NmJ_mk6tOqbsuTmfBrQLFqc9BnSVKR6A-bf9TcTft2XmhWaVODr7Q9w1PP3QOYShFXAnNql5OdNebB4g"
}

Tworzenie klucza zasad

Musisz przechowywać wpis tajny klienta, który został wcześniej zarejestrowany w dzierżawie usługi Azure AD B2C.

  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 usługi Azure AD B2C z menu Katalogi i subskrypcje.
  3. W obszarze Usługi platformy Azure wybierz pozycję Azure AD B2C. Możesz też użyć pola wyszukiwania, aby znaleźć i wybrać usługę Azure AD B2C.
  4. Na stronie Przegląd wybierz pozycję Identity Experience Framework.
  5. Wybierz pozycję Klucze zasad, a następnie wybierz pozycję Dodaj.
  6. W obszarze Opcje wybierz pozycję Ręczne.
  7. Wprowadź nazwę klucza zasad. Na przykład "AppleSecret". Prefiks "B2C_1A_" jest dodawany automatycznie do nazwy klucza.
  8. W polu Wpis tajny wprowadź wartość tokenu zwróconego przez funkcję platformy Azure (token JWT).
  9. W obszarze Użycie klucza wybierz pozycję Podpis.
  10. Wybierz pozycję Utwórz.

Ważne

  • Logowanie się przy użyciu firmy Apple wymaga Administracja odnowienia klucza tajnego klienta co 6 miesięcy.
  • Musisz ręcznie odnowić klucz tajny klienta firmy Apple, jeśli wygaśnie i zapisz nową wartość w kluczu zasad.
  • Zalecamy ustawienie własnego przypomnienia w ciągu 6 miesięcy, aby wygenerować nowy klucz tajny klienta.
  • Postępuj zgodnie z wytycznymi, jak zaoferować przycisk Zaloguj się przy użyciu firmy Apple.

Konfigurowanie firmy Apple jako dostawcy tożsamości

Aby umożliwić użytkownikom logowanie się przy użyciu identyfikatora Apple ID, 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 w celu sprawdzenia, czy określony użytkownik jest uwierzytelniony.

Identyfikator Apple ID można zdefiniować jako dostawcę oświadczeń, dodając go 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>apple.com</Domain>
      <DisplayName>Apple</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Apple-OIDC">
          <DisplayName>Sign in with Apple</DisplayName>
          <Protocol Name="OpenIdConnect" />
          <Metadata>
            <Item Key="ProviderName">apple</Item>
            <Item Key="authorization_endpoint">https://appleid.apple.com/auth/authorize</Item>
            <Item Key="AccessTokenEndpoint">https://appleid.apple.com/auth/token</Item>
            <Item Key="JWKS">https://appleid.apple.com/auth/keys</Item>
            <Item Key="issuer">https://appleid.apple.com</Item>
            <Item Key="scope">name email openid</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="response_types">code</Item>
            <Item Key="external_user_identity_claim_id">sub</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="ReadBodyClaimsOnIdpRedirect">user.name.firstName user.name.lastName user.email</Item>
            <Item Key="client_id">You Apple ID</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_AppleSecret"/>
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="https://appleid.apple.com" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="user.name.firstName"/>
            <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="user.name.lastName"/>
            <OutputClaim ClaimTypeReferenceId="email" />
          </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 usługi. Na przykład com.consoto.azure-ad-b2c-service.

  5. Zapisz plik.

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

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="AppleExchange" TechnicalProfileReferenceId="Apple-OIDC" />
  </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ę Apple , aby zalogować się przy użyciu identyfikatora Apple ID.

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.

Dostosowywanie interfejsu użytkownika

Postępuj zgodnie z wytycznymi dotyczącymi oferowania logowania się za pomocą firmy Apple. Firma Apple udostępnia kilka przycisków Zaloguj się przy użyciu firmy Apple , których można użyć, aby umożliwić użytkownikom skonfigurowanie konta i zalogowanie się. W razie potrzeby utwórz przycisk niestandardowy, aby zaoferować pozycję Zaloguj się za pomocą firmy Apple. Dowiedz się, jak wyświetlić przycisk Zaloguj się przy użyciu firmy Apple.

Aby dostosować się do wytycznych interfejsu użytkownika firmy Apple: