OAuth ist ein Verfahren, mit dem eine Anwendung im Namen eines Nutzers auf einen fremden Dienst zugreifen darf, ohne dessen Passwort zu kennen. Die heute übliche Fassung heißt OAuth 2.0.
- OAuth
Ein Verfahren, mit dem eine Anwendung im Namen eines Nutzers auf einen fremden Dienst zugreifen darf.
Beispiel: „Über OAuth darf das Buchungswerkzeug Termine in den Kalender schreiben, ohne das Kennwort des Kontos zu kennen.“Auch: OAuth 2.0, abgekürzt OAuth2. Das Wort steht für „Open Authorization“.
Abgrenzung zur Anmeldung: OAuth regelt die Erlaubnis, nicht die Identität. Wer wissen will, wer der Nutzer ist, braucht OpenID Connect obendrauf.
Welches Problem OAuth löst
Das Weitergeben von Passwörtern an Dritte. Vor OAuth musste ein Dienst, der im Namen eines Nutzers auf einen anderen zugreifen wollte, dessen Zugangsdaten bekommen; damit hatte er vollen Zugriff auf alles und auf Dauer. OAuth ersetzt das durch ein Zeichen mit begrenztem Umfang und begrenzter Laufzeit, das sich zurückziehen lässt, ohne dass sich sonst etwas ändert.
Wie der Ablauf aussieht
In vier Schritten. Die Anwendung schickt den Nutzer zum Anmeldedienst; der Nutzer meldet sich dort an und bestätigt, was erlaubt sein soll; der Anmeldedienst schickt ihn mit einem kurzlebigen Code zurück; die Anwendung tauscht den Code im Hintergrund gegen ein Zugriffszeichen. Entscheidend ist, dass die Zugangsdaten dabei nie die Anwendung erreichen, sondern nur den Anmeldedienst.
Warum OAuth keine Anmeldung ist
Weil ein Zugriffszeichen nichts darüber sagt, wer davorsitzt. Es besagt, dass jemand einmal eine Erlaubnis erteilt hat, und nicht, dass gerade diese Person anfragt. Dienste, die aus OAuth eine Anmeldung gebastelt haben, sind deshalb in der Vergangenheit auf Token hereingefallen, die für eine andere Anwendung ausgestellt waren. Für Anmeldung gibt es die Erweiterung OpenID Connect, und die löst genau dieses Problem.
Worauf bei der Einrichtung zu achten ist
Auf den Umfang und auf die Rückkehradresse. Der Umfang legt fest, was die Anwendung darf; wer hier großzügig ist, hat später keine Handhabe. Die Rückkehradresse muss genau eingetragen sein und darf keine offenen Platzhalter enthalten, sonst lässt sich der Code an einen fremden Ort umleiten. Dazu kommt die Frage, wo das Zugriffszeichen liegt: im Speicher des Browsers ist es für Cross-Site-Scripting erreichbar.