OAuth
OAuth ist ein offener Autorisierungsstandard, mit dem Nutzer einer Anwendung erlauben können, in ihrem Namen begrenzt auf Ressourcen bei einem anderen Dienst zuzugreifen, ohne dabei ihr Passwort weiterzugeben.
Kurz erklärt
OAuth löst ein grundlegendes Problem: Eine Anwendung soll auf Daten bei einem anderen Dienst zugreifen können - etwa Kontakte oder Kalendereinträge -, ohne dass der Nutzer dafür sein Passwort für diesen Dienst preisgibt. Stattdessen meldet sich der Nutzer direkt beim ursprünglichen Dienst an und erteilt dort eine begrenzte, jederzeit widerrufbare Zugriffsberechtigung (Access Token), die die anfragende Anwendung anschließend verwenden kann.
Beispiel
Klickt ein Nutzer auf einer Website auf “Mit Google anmelden”, wird er zu Google weitergeleitet, meldet sich dort mit seinen Google-Zugangsdaten an und bestätigt, welche Informationen die Website erhalten darf. Google übermittelt danach einen Token an die Website - sie erfährt dabei nie das Google-Passwort des Nutzers.
Warum ist das relevant?
OAuth ist die Grundlage für praktisch jede “Mit X anmelden”-Funktion im heutigen Web und für den sicheren Zugriff von Drittanbieter-Apps auf APIs großer Plattformen. Für Entwickler bedeutet das, Authentifizierung nicht selbst von Grund auf implementieren zu müssen, sondern auf einen etablierten, breit unterstützten Standard zurückzugreifen.
Häufige Missverständnisse
OAuth ist ein Autorisierungsprotokoll, kein Authentifizierungsprotokoll - es regelt, worauf eine Anwendung zugreifen darf, sagt für sich genommen aber nichts darüber aus, wer der Nutzer ist. Für die Identitätsprüfung selbst wird häufig zusätzlich OpenID Connect eingesetzt, das auf OAuth aufbaut. Auch wird OAuth oft mit JWT verwechselt: OAuth definiert den Autorisierungsablauf, während JWT lediglich ein mögliches Format für die dabei ausgestellten Tokens ist.