OAuth 2.0 ist ein offenes Autorisierungs-Framework (RFC 6749, 2012), das es Anwendungen erlaubt, im Namen eines Nutzers begrenzten Zugriff auf Ressourcen eines anderen Dienstes zu erhalten — ohne dass dem Anwender Passwörter offengelegt oder von der Drittanwendung gespeichert werden müssen. Der Anwender autorisiert die Drittanwendung beim sogenannten Authorization Server, der daraufhin ein Access Token ausstellt. Die Drittanwendung präsentiert dieses Token gegenüber einem Resource Server (typischerweise einer API), der den Zugriff anhand des Tokens prüft.
Eingesetzt wird OAuth 2.0 als De-facto-Standard für die Autorisierung von API-Zugriffen — von "Login mit Google/Microsoft/Apple/Facebook" über App-zu-API-Zugriffe in Mobile- und SPA-Anwendungen bis zu Service-zu-Service-Kommunikation in Microservice-Architekturen. Bekannte Flows sind Authorization Code Flow (mit PKCE für Native- und SPA-Apps), Client Credentials Flow (für Server-zu-Server), Device Authorization Grant (für Geräte ohne Browser, etwa CLI-Tools, Smart-TVs), sowie Refresh Token Flow für Token-Erneuerung. Resource Indicators, Token Binding und der Pushed Authorization Request (PAR, RFC 9126) gehören zu den moderneren Erweiterungen.
Der Einsatzzweck liegt darin, dass Anwender ihren Drittanwendungen nicht mehr ihre Master-Anmeldedaten anvertrauen müssen. Vor OAuth waren "Password Anti-Patterns" üblich — eine App fragte Nutzer:innen nach ihrem Google-Passwort, um auf deren Daten zuzugreifen. OAuth ersetzt das durch delegierte Autorisierung: Der Nutzer authentifiziert sich nur direkt beim Authorization Server, gibt der App nur die nötigen Scopes und kann Zugriff jederzeit widerrufen.
Historisch baut OAuth 2.0 auf OAuth 1.0 (2010) auf, das von Twitter, Yahoo und anderen entwickelt wurde. OAuth 2.0 wurde ab 2010 in der IETF unter Federführung von Eran Hammer (zunächst Yahoo) entworfen; Hammer trat 2012 prominent vom Editor-Posten zurück und bezeichnete OAuth 2.0 öffentlich als "A Road to Hell" — eine bemerkenswerte Episode in der Sicherheitsstandards-Welt. Der Standard wurde dennoch 2012 als RFC 6749 verabschiedet und hat sich trotz aller Kritik durchgesetzt. Der Nachfolger OAuth 2.1 (Draft) konsolidiert mehrere bewährte Best Practices — z. B. PKCE-Pflicht, Verbot des Implicit-Flows — in einem aufgeräumteren Standard.