Tauschen Sie ein von AD FS ausgestelltes SAML-Token gegen ein Microsoft Graph-Zugriffstoken aus

Folgen Sie der Beschreibung in diesem Artikel aus, um einmaliges Anmelden (SSO) in Anwendungen zu aktivieren, die von Active Directory-Verbunddienste (AD FS) ausgestellte SAML-Token verwenden und auch Zugriff auf Microsoft Graph benötigen.

Sie aktivieren den SAML-Überbringer-Aussagenablauf, ein von der Verbunds-AD FS-Instanz ausgestelltes SAMLv1-Token gegen ein OAuth 2.0-Zugriffstoken für Microsoft Graph auszutauschen. Wenn der Browser des Benutzers zu Microsoft Entra ID umgeleitet wird, um ihn zu authentifizieren, übernimmt der Browser die Sitzung von der SAML-Anmeldung, anstatt den Benutzer aufzufordern, seine Anmeldeinformationen einzugeben.

Wichtig

Dieses Szenario funktioniert nur, wenn AD FS der Verbunds-Identitätsanbieter ist, der das ursprüngliche SAMLv1-Token ausgestellt hat. Sie können nichtein von Microsoft Entra ID ausgestelltes SAMLv2-Token gegen ein Microsoft Graph-Zugriffstoken austauschen.

Voraussetzungen

Übersicht über das Szenario

Mit dem OAuth 2.0-SAML-Bearerassertionsflow können Sie ein OAuth-Zugriffstoken mithilfe einer SAML-Assertion anfordern, wenn ein Client eine vorhandene Vertrauensstellung verwenden muss. Die auf die SAML-Assertion angewandte Signatur stellt die Authentifizierung der autorisierten App bereit. Eine SAML-Assertion ist ein XML-Sicherheitstoken, das von einem Identitätsanbieter ausgegeben und von einem Dienstanbieter genutzt wird. Der Dienstanbieter verlässt sich auf seinen Inhalt, um das Subjekt der Aussage für sicherheitsbezogene Zwecke zu identifizieren.

Die SAML-Assertion wird an den Endpunkt des OAuth-Tokens gesendet. Der Endpunkt verarbeitet die Assertion und stellt basierend auf der vorherigen Genehmigung der App ein Zugriffstoken aus. Der Client muss weder ein Aktualisierungstoken haben oder speichern, noch muss der geheime Clientschlüssel an den Tokenendpunkt übergeben werden.

OAuth flow

Registrieren Sie die Anwendung mit Microsoft Entra ID.

Registrieren Sie erstmal die Anwendung im Portal:

  1. Melden Sie sich bei der App-Registrierungsseite des Portals an. (Beachten Sie, dass wir hier die v2.0-Endpunkte für die Graph-API verwenden und die Anwendung daher im Microsoft Entra Admin Center registriert werden muss. Andernfalls hätten wir die Registrierungen in Microsoft Entra ID verwenden können.)
  2. Wählen Sie Neue Registrierung aus.
  3. Geben Sie auf der daraufhin angezeigten Seite Anwendung registrieren die Registrierungsinformationen für Ihre Anwendung ein:
    1. Name: Geben Sie einen aussagekräftigen Anwendungsnamen ein, der den Benutzern der App angezeigt wird.
    2. Unterstützte Kontotypen: Wählen Sie aus, welche Konten von Ihrer Anwendung unterstützt werden sollen.
    3. Umleitungs-URI (optional): Wählen Sie die Art der App aus, die Sie erstellen: „Web“ oder „Öffentlicher Client“ (Mobilgerät und Desktop), und geben Sie dann den Umleitungs-URI (oder die Antwort-URL) für die Anwendung ein.
    4. Wenn Sie so weit sind, klicken Sie auf Registrieren.
  4. Notieren Sie sich die Anwendungs-ID (Client-ID).
  5. Wählen Sie im linken Bereich Zertifikate und Geheimnisse aus. Klicken Sie im Abschnitt Geheime Clientschlüssel auf Neuer geheimer Clientschlüssel. Kopieren Sie den neuen geheimen Clientschlüssel. Nach dem Schließen der Seite können Sie ihn nicht mehr abrufen.
  6. Wählen Sie im linken Bereich die Option API-Berechtigungen und dann Berechtigung hinzufügen aus. Wählen Sie Microsoft Graph, anschließend Delegierte Berechtigungen und dann Tasks.read aus, da die Outlook-Graph-API verwendet werden soll.

Rufen Sie die SAML-Assertion von AD FS ab

Erstellen Sie mithilfe des SOAP-Umschlags eine POST-Anforderung an den AD FS-Endpunkt, um die SAML-Assertion abzurufen:

Get SAML assertion

Headerwerte:

Header values

AD FS-Anforderungstext:

AD FS request body

Sobald die Anforderung erfolgreich gepostet wurde, sollten Sie eine SAML-Aussage von AD FS erhalten. Nur die Daten des Tags SAML:Assertion sind erforderlich. Konvertieren Sie sie zur Verwendung in weiteren Anforderungen in die base64-Codierung.

Rufen Sie das OAuth 2.0-Token mithilfe der SAML-Aussage ab

Rufen Sie ein OAuth 2.0-Token mithilfe der AD FS-Aussage-Antwort ab.

  1. Erstellen Sie wie unten gezeigt eine POST-Anforderung mit den Headerwerten:

    POST request

  2. Ersetzen Sie im Text der Anforderung client_id, client_secret und assertion (die base64-codierte im vorherigen Schritt abgerufene SAML-Assertion):

    Request body

  3. Nach erfolgreicher Anforderung erhalten Sie einen Zugriffstoken von Microsoft Entra ID.

Rufen Sie die Daten mit dem OAuth 2.0-Token ab

Rufen Sie nach dem Empfang des Zugriffstokens die Graph-APIs (Outlook-Aufgaben in diesem Beispiel) auf.

  1. Erstellen Sie eine GET-Anforderung mit dem im vorherigen Schritt erstellten Zugriffstoken:

    GET request

  2. Nach erfolgreicher Anforderung erhalten Sie eine JSON-Antwort.

Nächste Schritte

Weitere Informationen zur App-Registrierung und zum Authentifizierungsablauf finden Sie unter: