OAuth Autorisierungscode-Flow
- Zuletzt aktualisiert2024/10/31
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: