Einrichten der Registrierung und Anmeldung mit einer Apple-ID mithilfe von Azure Active Directory B2C

Vorbereitung: Wählen Sie mithilfe des Selektors Richtlinientyp auswählen den Typ der einzurichtenden Richtlinie aus. Azure Active Directory B2C bietet zwei Methoden zum Definieren der Benutzerinteraktion mit Ihren Anwendungen: vordefinierte Benutzerflows oder vollständig konfigurierbare benutzerdefinierte Richtlinien. Die Schritte, die in diesem Artikel erforderlich sind, unterscheiden sich für jede Methode.

Hinweis

In Azure Active Directory B2C sind benutzerdefinierte Richtlinien in erster Linie für komplexe Szenarien konzipiert. Für die meisten Szenarien empfehlen wir die Verwendung von integrierten Benutzerflows. Informieren Sie sich, sofern noch nicht geschehen, unter Tutorial: Erstellen von Benutzerflows und benutzerdefinierten Richtlinien in Azure Active Directory B2C über das Starter Pack für benutzerdefinierte Richtlinien.

Voraussetzungen

Erstellen einer Apple-ID-Anwendung

Wenn Sie für Benutzer die Anmeldung mit einer Apple-ID in Azure Active Directory B2C (Azure AD B2C) aktivieren möchten, müssen Sie eine Anwendung in https://developer.apple.com erstellen. Weitere Informationen finden Sie unter Anmelden mit Apple. Wenn Sie noch nicht über ein Apple Developer-Konto verfügen, können Sie sich beim Apple Developer Program registrieren.

  1. Melden Sie sich mit Ihren Kontoanmeldeinformationen beim Apple Developer-Portal an.
  2. Wählen Sie im Menü die Option Zertifikate, IDs & Profile und dann (+) aus.
  3. Wählen Sie für Neue ID registrieren die Option App-IDs aus, und wählen Sie dann Weiter aus.
  4. Wählen Sie für Typ auswählen die Option App aus, und wählen Sie dann Weiter aus.
  5. Eine App-ID registrieren:
    1. Geben Sie eine Beschreibung ein.
    2. Geben Sie die Paket-ID (z. B. com.contoso.azure-ad-b2c) ein.
    3. Wählen Sie für Funktionen in der Liste der Funktionen die Option Mit Apple anmelden aus.
    4. Notieren Sie sich Ihre Team-ID (App-ID-Präfix) aus diesem Schritt. Sie benötigen die Information später.
    5. Klicken Sie auf Continue (Weiter) und dann auf Registrieren.
  6. Wählen Sie im Menü die Option Zertifikate, IDs & Profile und dann (+) aus.
  7. Wählen Sie für Neue ID registrieren die Option Dienst-IDs aus, und wählen Sie dann Weiter aus.
  8. Eine Dienst-ID registrieren:
    1. Geben Sie eine Beschreibung ein. Die Beschreibung wird dem Benutzer auf dem Zustimmungsbildschirm angezeigt.
    2. Geben Sie die ID (z. B. com.consoto.azure-ad-b2c-service) ein. Notieren Sie sich Ihre Dienst-ID. Bei dieser ID handelt es sich um die Client-ID für den OpenID Connect-Flow.
    3. Wählen Sie Weiter aus, und wählen Sie dann Registrieren aus.
  9. Wählen Sie unter IDs die von Ihnen erstellte ID aus.
  10. Wählen Sie Mit Apple anmelden aus, und wählen Sie dann Konfigurieren aus.
    1. Wählen Sie die primäre App-ID aus, die Sie für die Anmeldung mit Apple konfigurieren möchten.
    2. Geben Sie im Feld Domänen und Unterdomänen die Zeichenfolge your-tenant-name.b2clogin.com ein. Ersetzen Sie „your-tenant-name“ durch den Namen Ihres Mandanten. Bei Verwendung einer benutzerdefinierten Domäne geben Sie https://your-domain-name ein.
    3. Geben Sie im Feld Rückgabe-URLs die Zeichenfolge https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp ein. Bei Verwendung einer benutzerdefinierten Domäne geben Sie https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp ein. Ersetzen Sie your-tenant-name durch den Namen Ihres Mandanten und your-domain-name durch Ihre benutzerdefinierte Domäne. Die Rückgabe-URL darf nur Kleinbuchstaben enthalten.
    4. Wählen Sie Weiter aus, und wählen Sie dann Fertig aus.
    5. Wählen Sie nach dem Schließen des Popupfensters die Option Weiter aus, und wählen Sie dann Speichern aus.

Erstellen eines geheimen Apple-Clientschlüssels

  1. Wählen Sie im Menü des Apple Developer-Portals die Option Schlüssel aus, und wählen Sie dann (+) aus.
  2. Einen neuen Schlüssel registrieren:
    1. Geben Sie einen Schlüsselnamen ein.
    2. Wählen Sie Mit Apple anmelden aus, und wählen Sie dann Konfigurieren aus.
    3. Wählen Sie für die Option Primäre App-ID die zuvor von Ihnen erstellte App aus, und wählen Sie dann Speichern aus.
    4. Wählen Sie Konfigurieren aus, und wählen Sie dann Registrieren aus, um den Schlüsselregistrierungsprozess abzuschließen. Notieren Sie sich die Schlüssel-ID. Dieser Schlüssel wird beim Konfigurieren von Benutzerflows benötigt.
  3. Wählen Sie zum Herunterladen Ihres Schlüssels die Option Herunterladen aus, um eine P8-Datei herunterzuladen, die Ihren Schlüssel enthält.

Konfigurieren von Apple als Identitätsanbieter

  1. Melden Sie sich als globaler Administrator Ihres Azure AD B2C-Mandanten beim Azure-Portal an.
  2. Wenn Sie Zugriff auf mehrere Mandanten haben, wählen Sie das Symbol Einstellungen im Menü oben aus, um über das Menü Verzeichnisse + Abonnements zu Ihrem Azure AD B2C-Mandanten zu wechseln.
  3. Wählen Sie unter Azure-Dienste die Option Azure AD B2C aus. Oder verwenden Sie das Suchfeld, um nach Azure AD B2C zu suchen und diese Option auszuwählen.
  4. Wählen Sie Identitätsanbieter und dann Apple aus.
  5. Geben Sie als Name den Wert Mit Apple anmelden ein.
  6. Geben Sie die Apple Developer-ID (Team-ID) ein.
  7. Geben Sie die Apple-Dienst-ID (Client-ID) ein.
  8. Geben Sie die Apple-Schlüssel-ID aus dem Schritt Erstellen eines geheimen Apple-Clientschlüssels ein.
  9. Wählen Sie die Apple-Zertifikatdaten aus, und laden Sie diese hoch.
  10. Wählen Sie Speichern aus.

Wichtig

  • Zum Anmelden mit Apple muss der Administrator seinen geheimen Clientschlüssel alle 6 Monate erneuern.
  • Der geheime Apple-Clientschlüssel wird automatisch verlängert, wenn er abläuft. Wenn Sie den geheimen Clientschlüssel manuell erneuern müssen, öffnen Sie Azure AD B2C im Azure-Portal, navigieren Sie zu Identitätsanbieter>Apple, und wählen Sie Geheimnis erneuern aus.
  • Befolgen Sie die Richtlinien zum Anbieten einer Schaltfläche „Mit Apple anmelden“.

Hinzufügen von Apple als Identitätsanbieter zu einem Benutzerflow

Damit sich Benutzer mit einer Apple-ID anmelden können, müssen Sie einem Benutzerflow Apple als Identitätsanbieter hinzufügen. Das Anmelden mit Apple kann nur für die empfohlene Version der Benutzerflows konfiguriert werden. Gehen Sie wie folgt vor, um einem Benutzerflow Apple als Identitätsanbieter hinzuzufügen:

  1. Wählen Sie in Ihrem Azure AD B2C-Mandanten die Option Benutzerflows aus.
  2. Wählen Sie einen Benutzerflow aus, dem Sie Apple als Identitätsanbieter hinzufügen möchten.
  3. Wählen Sie unter Soziales Netzwerk als Identitätsanbieter die Option Apple aus.
  4. Wählen Sie Speichern aus.
  5. Um die Richtlinie zu testen, wählen Sie Benutzerflow ausführen aus.
  6. Wählen Sie für Anwendung die Webanwendung testapp1 aus, die Sie zuvor registriert haben. Als Antwort-URL sollte https://jwt.ms angezeigt werden.
  7. Wählen Sie die Schaltfläche Benutzerflow ausführen aus.
  8. Wählen Sie auf der Registrierungs- oder Anmeldeseite die Option Apple aus, um sich mit einer Apple-ID anzumelden.

Wenn der Anmeldevorgang erfolgreich verlaufen ist, wird der Browser an https://jwt.ms umgeleitet und dadurch der Inhalt des von Azure AD B2C zurückgegebenen Tokens angezeigt.

Signieren des geheimen Clientschlüssels

Verwenden Sie die zuvor heruntergeladene P8-Datei, um den geheimen Clientschlüssel in einem JWT-Token zu signieren. Das JWT-Token kann in vielen verfügbaren Bibliotheken erstellt und signiert werden. Verwenden Sie die Azure-Funktion, die ein Token für Sie erstellt.

  1. Erstellen Sie eine Azure-Funktion.

  2. Wählen Sie unter Developer die Option Programmieren und testen aus.

  3. Kopieren Sie den Inhalt der Datei run.csx, und fügen Sie ihn in den Editor ein.

  4. Wählen Sie Speichern aus.

  5. Senden Sie eine HTTP POST-Anforderung, und geben Sie die folgenden Informationen an:

    • appleTeamId: Ihre Apple Developer-Team-ID
    • appleServiceId: Die Apple-Dienst-ID (Client-ID)
    • appleKeyId: Die zehnstellige Schlüssel-ID, die im JWT-Header gespeichert ist (von Apple benötigt)
    • p8key: Der Schlüssel im PEM-Format. Sie können diesen Schlüssel erhalten, indem Sie die P8-Datei in einem Text-Editor öffnen und alles zwischen -----BEGIN PRIVATE KEY----- und -----END PRIVATE KEY----- ohne Zeilenumbrüche kopieren.

Der folgende JSON-Code ist ein Beispiel für einen Aufruf der Azure-Funktion:

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

Die Azure-Funktion antwortet mit einem ordnungsgemäß formatierten und signierten geheimen Clientschlüssel-JWT in einer Antwort. Beispiel:

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

Erstellen eines Richtlinienschlüssels

Sie müssen den geheimen Clientschlüssel speichern, den Sie zuvor in Ihrem Azure AD B2C-Mandanten notiert haben.

  1. Melden Sie sich beim Azure-Portal an.
  2. Wenn Sie Zugriff auf mehrere Mandanten haben, wählen Sie das Symbol Einstellungen im Menü oben aus, um über das Menü Verzeichnisse + Abonnements zu Ihrem Azure AD B2C-Mandanten zu wechseln.
  3. Wählen Sie unter Azure-Dienste die Option Azure AD B2C aus. Oder verwenden Sie das Suchfeld, um nach Azure AD B2C zu suchen und diese Option auszuwählen.
  4. Wählen Sie auf der Seite Übersicht die Option Identity Experience Framework aus.
  5. Wählen Sie Richtlinienschlüssel aus, und wählen Sie dann Hinzufügen aus.
  6. Wählen Sie unter Optionen die Option Manuell aus.
  7. Geben Sie einen Namen für den Richtlinienschlüssel ein. Beispielsweise „AppleSecret“. Dem Namen Ihres Schlüssels wird automatisch das Präfix „B2C_1A_“ hinzugefügt.
  8. Geben Sie im Feld Geheimnis den Wert eines von der Azure-Funktion zurückgegebenen Tokens (ein JWT-Token) ein.
  9. Wählen Sie unter SchlüsselverwendungSignatur aus.
  10. Klicken Sie auf Erstellen.

Wichtig

  • Zum Anmelden mit Apple muss der Administrator seinen geheimen Clientschlüssel alle 6 Monate erneuern.
  • Sie müssen den geheimen Apple-Clientschlüssel manuell erneuern, wenn er abläuft, und den neuen Wert im Richtlinienschlüssel speichern.
  • Wir empfehlen Ihnen, eine eigene Erinnerung innerhalb von 6 Monaten festzulegen, damit Sie rechtzeitig einen neuen geheimen Clientschlüssel generieren können.
  • Befolgen Sie die Richtlinien zum Anbieten einer Schaltfläche „Mit Apple anmelden“.

Konfigurieren von Apple als Identitätsanbieter

Damit sich Benutzer mit einer Apple-ID anmelden können, müssen Sie das Konto als Anspruchsanbieter definieren, mit dem Azure AD B2C über einen Endpunkt kommunizieren kann. Der Endpunkt bietet eine Reihe von Ansprüchen, mit denen Azure AD B2C überprüft, ob ein bestimmter Benutzer authentifiziert wurde.

Sie können eine Apple-ID als Anspruchsanbieter definieren, indem Sie in der Erweiterungsdatei Ihrer Richtlinie dem ClaimsProviders-Element die Apple-ID hinzufügen.

  1. Öffnen Sie die Datei TrustFrameworkExtensions.xml.

  2. Suchen Sie nach dem Element ClaimsProviders. Falls das Element nicht vorhanden sein sollte, fügen Sie es unter dem Stammelement hinzu.

  3. Fügen Sie ein neues ClaimsProvider-Element wie folgt hinzu:

    <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. Legen Sie client_id auf die Dienst-ID fest. Beispiel: com.consoto.azure-ad-b2c-service.

  5. Speichern Sie die Datei .

Hinzufügen einer User Journey

Der Identitätsanbieter wurde nun eingerichtet, aber er ist noch auf keiner der Anmeldeseiten verfügbar. Wenn Sie nicht über eine eigene benutzerdefinierte User Journey verfügen, erstellen Sie ein Duplikat einer vorhandenen User Journey-Vorlage, und fahren Sie andernfalls mit dem nächsten Schritt fort.

  1. Öffnen Sie die Datei TrustFrameworkBase.xml aus dem Starter Pack.
  2. Suchen und kopieren Sie den gesamten Inhalt des UserJourney-Elements, das Id="SignUpOrSignIn" enthält.
  3. Öffnen Sie die Datei TrustFrameworkExtensions.xml, und suchen Sie nach dem UserJourneys-Element. Wenn das Element nicht vorhanden ist, fügen Sie ein solches hinzu.
  4. Fügen Sie den gesamten Inhalt des kopierten UserJourney-Element als untergeordnetes Element des UserJourneys-Elements ein.
  5. Benennen Sie die ID der User Journey um. Beispiel: Id="CustomSignUpSignIn".

Hinzufügen des Identitätsanbieters zu einer User Journey

Nachdem Sie nun über eine User Journey verfügen, fügen Sie den neuen Identitätsanbieter der User Journey hinzu. Fügen Sie zunächst eine Anmeldeschaltfläche hinzu, und verknüpfen Sie dann die Schaltfläche mit einer Aktion. Die Aktion ist das technische Profil, das Sie zuvor erstellt haben.

  1. Suchen Sie nach dem Orchestrierungsschrittelement, das Type="CombinedSignInAndSignUp" enthält, oder Type="ClaimsProviderSelection" in der User Journey. Dies ist in der Regel der erste Orchestrierungsschritt. Das ClaimsProviderSelections-Element enthält eine Liste mit Identitätsanbietern, mit denen sich ein Benutzer anmelden kann. Die Reihenfolge der Elemente gibt die Reihenfolge der Anmeldeschaltflächen vor, die dem Benutzer angezeigt werden. Fügen Sie ein ClaimsProviderSelection-XML-Element hinzu. Legen Sie für TargetClaimsExchangeId einen Anzeigenamen fest.

  2. Fügen Sie im nächsten Orchestrierungsschritt ein ClaimsExchange-Element hinzu. Legen Sie die ID auf den Wert der Zielanspruchs-Austausch-ID fest. Ändern Sie den Wert von TechnicalProfileReferenceId in die ID des technischen Profils, das Sie zuvor erstellt haben.

Der folgende XML-Code veranschaulicht die ersten beiden Orchestrierungsschritte einer User Journey mit dem Identitätsanbieter:

<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>

Konfigurieren einer Richtlinie für die vertrauende Seite

Die Richtlinie für die vertrauende Seite (z. B. SignUpSignIn.xml) gibt die User Journey an, die Azure AD B2C ausführt. Suchen Sie das DefaultUserJourney-Element in Vertrauende Seite. Aktualisieren Sie ReferenceId auf die ID der User Journey, in der Sie den Identitätsanbieter hinzugefügt haben.

Im folgenden Beispiel wird die ReferenceId für die User Journey CustomSignUpSignIn auf CustomSignUpSignIn festgelegt:

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

Hochladen der benutzerdefinierten Richtlinie

  1. Melden Sie sich beim Azure-Portal an.
  2. Wählen Sie auf der Symbolleiste des Portals das Symbol Verzeichnis und Abonnement aus, und wählen Sie dann das Verzeichnis aus, das Ihren Azure AD B2C-Mandanten enthält.
  3. Suchen Sie im Azure-Portal nach Azure AD B2C, und wählen Sie diese Option dann aus.
  4. Wählen Sie unter Richtlinien die Option Identity Experience Framework aus.
  5. Wählen Sie Benutzerdefinierte Richtlinie hochladen aus, und laden Sie dann die beiden geänderten Richtliniendateien in der folgenden Reihenfolge hoch: zuerst die Erweiterungsrichtlinie (z. B. TrustFrameworkExtensions.xml) und dann die Richtlinie für die vertrauende Seite (z. B. SignUpSignIn.xml).

Testen der benutzerdefinierten Richtlinie

  1. Wählen Sie die Richtliniendatei für die vertrauende Seite aus, z. B. B2C_1A_signup_signin.
  2. Wählen Sie für Anwendung eine Webanwendung aus, die Sie zuvor registriert haben. Als Antwort-URL sollte https://jwt.ms angezeigt werden.
  3. Wählen Sie die Schaltfläche Jetzt ausführen aus.
  4. Wählen Sie auf der Registrierungs- oder Anmeldeseite die Option Apple aus, um sich mit einer Apple-ID anzumelden.

Wenn der Anmeldevorgang erfolgreich verlaufen ist, wird der Browser an https://jwt.ms umgeleitet und dadurch der Inhalt des von Azure AD B2C zurückgegebenen Tokens angezeigt.

Anpassen der Benutzeroberfläche

Befolgen Sie die Richtlinien zum Anbieten einer Anmeldung mit Apple. Apple stellt verschiedene Schaltflächen Mit Apple anmelden bereit, die Sie verwenden können, damit Benutzer ein Konto einrichten und sich anmelden können. Erstellen Sie bei Bedarf eine benutzerdefinierte Schaltfläche, um eine Anmeldung mit Apple zu ermöglichen. Erfahren Sie mehr über das Anzeigen einer Schaltfläche „Mit Apple anmelden“.

So sorgen Sie für die Einhaltung der Richtlinien für Apple-Benutzeroberflächen: