Übergeben des Zugriffstokens eines Identitätsanbieters an Ihre Anwendung in 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.

Ein Benutzerflow in Azure Active Directory B2C (Azure AD B2C) ermöglicht es Benutzern Ihrer Anwendung, sich mit einem Identitätsanbieter zu registrieren oder anzumelden. Bei diesem Vorgang empfängt Azure AD B2C zunächst ein Zugriffstoken vom Identitätsanbieter. Azure AD B2C verwendet dieses Token, um Informationen zum Benutzer abzurufen. Sie aktivieren einen Anspruch in Ihrem Benutzerflow, um das Token an die Anwendungen zu übergeben, die Sie in Azure AD B2C registrieren.

Azure AD B2C unterstützt die Übergabe des Zugriffstokens für OAuth 2.0-Identitätsanbieter. Hierzu zählen unter anderem Facebook und Google. Für alle weiteren Identitätsanbieter wird ein leerer Anspruch zurückgegeben.

Azure AD B2C unterstützt die Übergabe des Zugriffstokens von OAuth 2.0- und OpenID Connect-Identitätsanbietern. Für alle weiteren Identitätsanbieter wird ein leerer Anspruch zurückgegeben. Weitere Einzelheiten finden Sie in der Livedemo zum Verbund mit Identitätsanbietern.

Das folgende Diagramm zeigt, wie ein Identitätsanbieter Token an Ihre App zurückgibt:

Identity provider pass through flow

Voraussetzungen

Aktivieren des Anspruchs

  1. Melden Sie sich beim Azure-Portal als globaler Administrator Ihres Azure AD B2C-Mandanten 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. Klicken Sie links oben im Azure-Portal auf Alle Dienste, suchen Sie nach Azure AD B2C, und klicken Sie darauf.

  4. Wählen Sie Benutzerflows (Richtlinien) und dann Ihren Benutzerflow aus. Beispiel: B2C_1_signupsignin1.

  5. Wählen Sie Anwendungsansprüche aus.

  6. Aktivieren Sie den Anspruch Zugriffstoken des Identitätsanbieters.

    Enable the Identity Provider Access Token claim

  7. Klicken Sie auf Speichern, um den Benutzerflow zu speichern.

Testen des Benutzerflows

Wenn Sie Ihre Anwendungen in Azure AD B2C testen, kann es nützlich sein, das Azure AD B2C-Token an https://jwt.ms zurückzugeben, um die darin enthaltenen Ansprüche zu überprüfen.

  1. Wählen Sie auf der Übersichtsseite des Benutzerflows die Option Benutzerflow ausführen aus.

  2. Wählen Sie für Anwendung Ihre Anwendung aus, die Sie zuvor registriert haben. Um das Token im nachstehenden Beispiel anzuzeigen, muss als Antwort-URL der Wert https://jwt.ms angegeben werden.

  3. Klicken Sie auf Benutzerflow ausführen, und melden Sie sich dann mit den Anmeldeinformationen für Ihr Konto an. Es sollte das Zugriffstoken des Identitätsanbieters im Anspruch idp_access_token angezeigt werden.

    Sie sollten eine Ausgabe ähnlich wie im folgenden Beispiel sehen:

    Decoded token in jwt.ms with idp_access_token block highlighted

Hinzufügen der Anspruchselemente

  1. Öffnen Sie Ihre Datei TrustframeworkExtensions.xml, und fügen Sie das folgende ClaimType-Element mit dem Bezeichner identityProviderAccessToken zum ClaimsSchema-Element hinzu:

    <BuildingBlocks>
      <ClaimsSchema>
        <ClaimType Id="identityProviderAccessToken">
          <DisplayName>Identity Provider Access Token</DisplayName>
          <DataType>string</DataType>
          <AdminHelpText>Stores the access token of the identity provider.</AdminHelpText>
        </ClaimType>
        ...
      </ClaimsSchema>
    </BuildingBlocks>
    
  2. Fügen Sie für jeden OAuth 2.0-Anbieter, für den Sie ein Zugriffstoken benötigen, das OutputClaim-Element zum TechnicalProfile-Element hinzu. Das folgende Beispiel zeigt, wie das Element zum technischen Profil für Facebook hinzugefügt wurde:

    <ClaimsProvider>
      <DisplayName>Facebook</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Facebook-OAUTH">
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="{oauth2:access_token}" />
          </OutputClaims>
          ...
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  3. Speichern Sie die Datei TrustframeworkExtensions.xml.

  4. Öffnen Sie Ihre Richtliniendatei der vertrauenden Seite, z.B. SignUpOrSignIn.xml, und fügen Sie das OutputClaim-Element zum TechnicalProfile-Element hinzu:

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <TechnicalProfile Id="PolicyProfile">
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="idp_access_token"/>
        </OutputClaims>
        ...
      </TechnicalProfile>
    </RelyingParty>
    
  5. Speichern Sie die Richtliniendatei.

Testen Ihrer Richtlinie

Wenn Sie Ihre Anwendungen in Azure AD B2C testen, kann es nützlich sein, das Azure AD B2C-Token an https://jwt.ms zurückzugeben, um die darin enthaltenen Ansprüche zu überprüfen.

Hochladen der Dateien

  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 links oben im Azure-Portal die Option Alle Dienste aus, suchen Sie nach Azure AD B2C, und wählen Sie dann diese Option aus.
  4. Wählen Sie Framework für die Identitätsfunktion aus.
  5. Klicken Sie auf der Seite „Benutzerdefinierte Richtlinien“ auf Richtlinie hochladen.
  6. Aktivieren Sie Richtlinie überschreiben, sofern vorhanden, suchen Sie nach der Datei TrustframeworkExtensions.xml, und wählen Sie die Datei aus.
  7. Klicken Sie auf Hochladen.
  8. Wiederholen Sie die Schritte 5 bis 7 für die Datei der vertrauenden Seite, z.B. SignUpOrSignIn.xml.

Ausführen der Richtlinie

  1. Öffnen Sie die Richtlinie, die Sie geändert haben. Beispiel: B2C_1A_signup_signin.

  2. Wählen Sie für Anwendung Ihre Anwendung aus, die Sie zuvor registriert haben. Um das Token im nachstehenden Beispiel anzuzeigen, muss als Antwort-URL der Wert https://jwt.ms angegeben werden.

  3. Wählen Sie Jetzt ausführen aus.

    Sie sollten eine Ausgabe ähnlich wie im folgenden Beispiel sehen:

    Decoded token in jwt.ms with idp_access_token block highlighted

Übergeben des IDP-Aktualisierungstokens (optional)

Das vom Identitätsanbieter zurückgegebene Zugriffstoken ist für einen kurzen Zeitraum gültig. Einige Identitätsanbieter stellen auch ein Aktualisierungstoken zusammen mit dem Zugriffstoken aus. Ihre Clientanwendung kann dann dieses Aktualisierungstoken des Identitätsanbieters bei Bedarf gegen ein neues Zugriffstoken austauschen.

Die benutzerdefinierte Azure AD B2C-Richtlinie unterstützt derzeit nur die Übergabe des Aktualisierungstokens für OAuth 2.0-Identitätsanbieter, zu denen Facebook, Google und GitHub gehören.

Führen Sie die folgenden Schritte aus, um das Aktualisierungstoken des Identitätsanbieters zu übergeben:

  1. Öffnen Sie Ihre Datei TrustframeworkExtensions.xml, und fügen Sie das folgende ClaimType-Element mit dem Bezeichner identityProviderRefreshToken zum ClaimsSchema-Element hinzu.

    <ClaimType Id="identityProviderRefreshToken">
        <DisplayName>Identity provider refresh token</DisplayName>
        <DataType>string</DataType>
    </ClaimType>
    
  2. Fügen Sie für jeden OAuth 2.0-Identitätsanbieter, für den Sie ein Aktualisierungstoken benötigen, das OutputClaim-Element zum TechnicalProfile-Element hinzu. Das folgende Beispiel zeigt, wie das Element zum technischen Profil für Facebook hinzugefügt wurde:

    <ClaimsProvider>
      <DisplayName>Facebook</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Facebook-OAUTH">
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="{oauth2:refresh_token}" />
          </OutputClaims>
          ...
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  3. Einige Identitätsanbieter erfordern, dass Sie Metadaten oder Bereiche in das technische Profil des Identitätsanbieters einschließen.

    • Fügen Sie für den Google-Identitätsanbieter zwei Anspruchstypen access_type und prompt hinzu. Fügen Sie dann dem technischen Profil des Identitätsanbieters die folgenden Eingabeansprüche hinzu:

      <InputClaims>
          <InputClaim ClaimTypeReferenceId="access_type" PartnerClaimType="access_type" DefaultValue="offline" AlwaysUseDefaultValue="true" />
      
          <!-- The refresh_token is return only on the first authorization for a given user. Subsequent authorization request doesn't return the refresh_token.
              To fix this issue we add the prompt=consent query string parameter to the authorization request-->
          <InputClaim ClaimTypeReferenceId="prompt" PartnerClaimType="prompt" DefaultValue="consent" AlwaysUseDefaultValue="true" />
      </InputClaims>
      
    • Andere Identitätsanbieter haben möglicherweise unterschiedliche Methoden, um ein Aktualisierungstoken auszustellen. Befolgen Sie die Anweisungen für die Zielgruppe des Identitätsanbieters, und fügen Sie dem technischen Profil Ihres Identitätsanbieters die erforderlichen Elemente hinzu.

  4. Speichern Sie die Änderungen, die Sie in Ihrer TrustframeworkExtensions.xml-Datei vorgenommen haben.

  5. Öffnen Sie Ihre Richtliniendatei der vertrauenden Seite, z.B. SignUpOrSignIn.xml, und fügen Sie das OutputClaim-Element zum TechnicalProfile-Element hinzu:

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <TechnicalProfile Id="PolicyProfile">
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="idp_refresh_token"/>
        </OutputClaims>
        ...
      </TechnicalProfile>
    </RelyingParty>
    
  6. Speichern Sie die Änderungen, die Sie in der Richtliniendatei der vertrauenden Seite Ihrer Richtlinie vorgenommen haben.

  7. Laden Sie die TrustframeworkExtensions.xml-Datei und dann die Richtliniendatei der vertrauenden Seite hoch.

  8. Testen Ihrer Richtlinie

Nächste Schritte

Weitere Informationen finden Sie unter Azure AD B2C: Tokenreferenz.