Was ist OAuth?
OAuth ist ein Protokoll zum Austausch von Autorisierungsinformationen, das die Interaktion mehrerer Onlinedienste mit der Erlaubnis des Benutzers ermöglicht. „OAuth 1.0“ wurde im April 2010 als RFC 5849 veröffentlicht, „OAuth 2.0“ folgte im Oktober 2012 als RFC 6749.
Stellen Sie sich vor, Sie möchten ein Foto auf Instagram posten und es automatisch auf Twitter teilen. Der manuelle Zugriff auf beide Dienste zum Erstellen desselben Beitrags kann mühsam sein. Stattdessen bietet Instagram eine Funktion namens Cross-Posting an, die das automatische Teilen Ihrer Instagram-Posts in anderen sozialen Netzwerken wie Twitter mithilfe der APIs ermöglicht. Dieser Prozess wird durch OAuth erleichtert.
Um auf Twitter zu posten, erfordert die typische Authentifizierung eine Benutzer-ID und ein Passwort, die als Basisauthentifizierung bezeichnet wird. Allerdings ist es riskant, diese sensiblen Anmeldeinformationen an einen anderen Dienst weiterzugeben. OAuth löst dieses Problem, indem Autorisierungsinformationen anstelle von Authentifizierungsdaten ausgetauscht werden und so eingeschränkte Berechtigungen für die Aufgabe gewährt werden.
In der OAuth-Terminologie:
Um den Vorgang zu starten, muss sich der OAuth-Client zunächst beim OAuth-Server registrieren, indem er Details wie seinen Application und seine Domäne angibt. Wenn der OAuth-Server den Client für vertrauenswürdig hält, weist er ihm eine Client-ID zu.
Wenn der Benutzer (Ressourcenbesitzer) die Autorisierung erteilt, leitet der OAuth-Client den Benutzer zum OAuth-Server weiter. Der OAuth-Server authentifiziert den Benutzer und fragt, ob dem OAuth-Client die angegebenen Berechtigungen erteilt werden sollen. Nach der Zustimmung des Benutzers leitet der Server den Benutzer zurück zum OAuth-Client und erteilt ihm ein Zugriffstoken. Dieses Token dient als Autorisierungsnachweis und ermöglicht dem OAuth-Client den Zugriff auf die API des OAuth-Servers. Das Token bleibt gültig, bis es abläuft oder explizit widerrufen wird.