Zum Hauptinhalt springen

OAuth, oder Open Authorization, ist ein offenes Standard-Autorisierungsprotokoll für die Zugriffsdelegation. Es handelt sich um eine sichere Methode, die es Nutzern ermöglicht, Dienstanbietern (d. h. Websites und Anwendungen) Zugang zu ihren Informationen zu gewähren, ohne ihnen ihre Passwörter zu geben.

OAuth bietet Clients einen sicheren delegierten Zugriff auf Serverressourcen im Namen des Serverbesitzers. Spezifische Autorisierungsabläufe ermöglichen dem Kunden den Zugriff auf geschützte Ressourcen, ohne dass er sein Passwort angeben muss. Stattdessen verwendet der Kunde Zugriffstoken, die vom Ressourceneigentümer genehmigt werden können, um ihm Zugang zu dieser Ressource zu gewähren.

Was sind OAuth-Token?

OAuth-Token autorisieren den Zugriff eines Benutzers auf Ressourcen. Mit anderen Worten, sie dienen nicht der Authentifizierung von Benutzern, sondern werden vom Dienstanbieter verwendet, um im Namen des Benutzers den Zugang zu anderen Ressourcen zu genehmigen.

Eine OAuth-Transaktion findet statt, wenn ein Benutzer unter Verwendung der Identität seines Dienstanbieters die Genehmigung einer anderen Ressource anfordert. Die Ressource bittet den Dienstanbieter um eine Erlaubnis, die in Form eines Anfrage-Tokens und eines geheimen Werts (Geheimnisses) erteilt wird. Anschließend leitet die Ressource den Benutzer an seinen Dienstanbieter weiter, um die Anfrage zu authentifizieren. An diesem Punkt tauscht die Ressource das Anfrage-Token gegen ein Zugriffs-Token und ein Geheimnis aus. Wenn die beiden Token das gleiche Geheimnis haben, ist der OAuth-Prozess abgeschlossen, und der Benutzer hat den Zugriff auf die Ressource erfolgreich an den Dienstanbieter delegiert.

Der OAuth-Prozess

Das obige Beispiel fasst einen allgemeinen OAuth-Prozess zusammen. OAuth ermöglicht auch eine detailliertere Kontrolle und Berechtigung, z. B. das Recht, Token zu widerrufen, wann immer der Nutzer dies wünscht, und die Festlegung verschiedener Zugriffsebenen für Dienstanbieter für verschiedene Ressourcen.

OAuth 1.0 im Vergleich zu OAuth 2.0

Im Jahr 2012 wurde OAuth 2.0 als grundlegende Überarbeitung von OAuth 1.0 eingeführt. Die an dieser Version von OAuth vorgenommenen Änderungen waren so bedeutend, dass die Versionen 2.0 und 1.0 nicht kompatibel sind. OAuth 2.0 wurde entwickelt, um eine Sicherheitslücke bei der Session-Fixation im OAuth-Autorisierungsablauf zu schließen.

Obwohl dieses Problem mit OAuth 2.0 behoben wurde, definiert oder unterstützt die neue Version absichtlich keine Verschlüsselung, Signatur, Client-Verifizierung oder Kanalbindung, sondern verlangt von den Implementierern die Verwendung eines anderen Sicherheitsprotokolls wie HTTPS/TLS für diesen Zweck.

Die Unterschiede zwischen OAuth 1.0 und 2.0 sind im Folgenden zusammengefasst:

OAuth 1.0 im Vergleich zu OAuth 2.0

OAuth im Vergleich zu SAML – was ist der Unterschied?

SAML ist eine XML-Sprachvariante, die ein Modell beschreibt, das es einem Gerät ermöglicht, sowohl die Authentifizierung als auch die Autorisierung im Namen eines oder mehrerer Geräte durchzuführen.

Als „leichtgewichtige“ Optionen für die Kodierung von Daten aufkamen, wie z. B. JSON, setzte sich OAuth durch, um Benutzer von Mobilgeräten zu unterstützen. Obwohl OAuth ein neueres Protokoll ist, das aus der Notwendigkeit heraus entstanden ist, SAML zu ersetzen, sind beide Protokolle für ein sicheres Single Sign-On (SSO) entscheidend.

Mit anderen Worten: OAuth ist keine Alternative zu SAML, sondern die beiden Protokolle können sich gegenseitig ergänzen. In einer SSO-Umgebung kann SAML beispielsweise für die Authentifizierung (Bestätigung, dass der Benutzer authentisch ist und Zugang erhalten soll) und OAuth für die Autorisierung (Gewährung des Zugangs zu bestimmten geschützten Ressourcen) zuständig sein.