OAuth
Kurz: OAuth (heute meist OAuth 2.0) ist ein Standard, mit dem eine App im Namen eines Nutzers auf dessen Daten bei einem anderen Dienst zugreifen darf, ohne das Passwort zu bekommen.
Genauer: Typisches Beispiel: „Mit Discord anmelden“ oder „Mit Google anmelden“. Die Seite leitet dich zum Anbieter. Dort meldest du dich an und bestätigst, was die App sehen darf. Die App erhält danach nur ein Token, nie dein Passwort.
Im Detail
Beteiligte
- Ressourcenbesitzer: der Nutzer.
- Client: die App, die Zugriff möchte.
- Autorisierungsserver: der Anbieter, bei dem man sich anmeldet und zustimmt.
- Ressourcenserver: die API mit den Daten.
Ablauf (Authorization Code Flow)
- Die App schickt den Nutzer zum Anbieter, mit gewünschten Scopes (Berechtigungen, z. B. „E-Mail lesen“).
- Der Nutzer meldet sich an und stimmt zu.
- Der Anbieter schickt einen kurzlebigen Code zurück an die App.
- Die App tauscht den Code serverseitig gegen ein Access Token (und evtl. ein Refresh Token).
- Mit dem Access Token ruft sie die API auf.
Wichtig zu wissen
- OAuth regelt Zugriff (Autorisierung). Die Anmeldung („wer bist du?“) setzt OpenID Connect obendrauf.
- Tokens sind wie Schlüssel: gut schützen, kurze Laufzeit, nur über HTTPS.
- Der
state-Parameter und PKCE schützen vor Fälschungen und abgefangenen Codes (Sicherheit in der Webentwicklung). - Zugriff lässt sich jederzeit beim Anbieter widerrufen.