OAuth Autorisierungscode-Flow

Der Autorisierungscode-Ablauf ist ein Sicherheitsprotokoll, das in OAuth 2.0 verwendet wird, um Anwendungen von Drittanbietern den Zugriff auf die Ressourcen eines Nutzers zu ermöglichen, ohne dessen Anmeldedaten preiszugeben.

Bei diesem Ablauf leitet die Client-Anwendung den Nutzer an den Autorisierungsserver weiter, wo er sich anmeldet und die Zugriffsanforderung des Clients genehmigt. Nach der Genehmigung sendet der Autorisierungsserver einen Autorisierungscode an den Client, den er gegen ein Zugriffstoken und optional ein Refresh-Token eintauscht. Dieses Zugriffstoken wird dann verwendet, um im Namen des Nutzers autorisierte Anforderungen an den Ressourcenserver zu stellen.

Dieser Ablauf wird häufig in Szenarien verwendet, in denen ein Nutzer einer Drittanwendung Zugriff auf seine Ressourcen (wie Daten oder Dienste) gewähren möchte, ohne seine Anmeldedaten direkt weiterzugeben.

Der Hauptunterschied zwischen dem Autorisierungscode-Ablauf und dem Autorisierungscode-Ablauf mit PKCE (Proof Key for Code Exchange) liegt in den Sicherheitsmechanismen, die verwendet werden, um bestimmte Angriffe zu verhindern, insbesondere gegen mobile und native Anwendungen.

Im Standard-Autorisierungscode-Ablauf erhält der Client einen Autorisierungscode, nachdem sich der Nutzer beim Autorisierungsserver authentifiziert hat. Der Client tauscht diesen Code dann gegen ein Zugriffstoken aus. Dieser Ablauf ist jedoch anfällig für Angriffe auf den Autorisierungscode, bei denen ein Angreifer den Autorisierungscode abfangen und verwenden kann, um ein Zugriffstoken zu erhalten.

Der Autorisierungscode-Ablauf mit PKCE fügt eine zusätzliche Sicherheitsebene hinzu, indem ein dynamisch generiertes Geheimnis, der Code Verifier, zur Authentifizierung der Autorisierungsanfrage verwendet wird. Dies macht es sicherer, insbesondere in Umgebungen, in denen es schwierig ist, Client-Geheimnisse sicher zu speichern, wie z. B. in mobilen oder nativen Anwendungen.

So erstellen Sie einen Grant-Typ mit dem Autorisierungscode-Ablauf:

Prozedur

  1. Führen Sie die Schritte 1-6 aus Herstellung der OAuth-Verbindung aus.
  2. Wählen Sie den Gewährungstyp als Autorisierungscodefluss oder Autorisierungscodefluss mit PKCE, um die Benutzerauthentifizierung vom Tokenaussteller zu trennen. Dies erhöht die Sicherheit, da der Berechtigungstyp Aktualisierungstoken für langfristigen Zugriff unterstützt, ohne vertrauliche Anmeldeinformationen preiszugeben. Überprüfen Sie die folgenden Berechtigungen, wenn Sie Autorisierungscodefluss mit dem Microsoft 365 Outlook-Paket verwenden: Einzelheiten finden Sie unter Berechtigungen für die Anwendung.
    • Mail.Read
    • Mail.ReadWrite
    • Mail.Senden
    • MailboxSettings.Read
    • MailboxSettings.ReadWrite
    • offline_access
    • openid
    • Benutzer.Lesen
    • Benutzer.LesenGrundlegend.Alle
    Sie müssen die Authentifizierungsmethode Client Secret Post parallel zum Berechtigungstyp Authorization Code Flow mit PKCE verwenden, da Sie sonst einen Validierungsfehler erhalten.
  3. Führen Sie die Schritte 8-18 aus Herstellung der OAuth-Verbindung aus.