Autorisierungsprozess von OAuth 2.0
OAuth 2.0 ermöglicht einer Anwendung den Zugriff auf Ressourcen eines Benutzers,
ohne dessen Passwort zu kennen. Stattdessen werden Access Tokens verwendet.
Beteiligte Komponenten
- Benutzer (Resource Owner)
- Anwendung (Client)
- Autorisierungsserver
- Ressourcenserver (API)
Ablauf des Autorisierungsprozesses
Benutzer → Anmeldung → Zustimmung → Authorization Code → Access Token → API-Zugriff
1. Benutzer möchte eine Anwendung nutzen
Die Anwendung benötigt Zugriff auf bestimmte Daten oder Dienste.
2. Weiterleitung zum Autorisierungsserver
Der Benutzer wird z. B. zu Google, Microsoft oder GitHub weitergeleitet.
3. Anmeldung und Zustimmung
Der Benutzer meldet sich an und stimmt den angeforderten Berechtigungen zu.
4. Erhalt eines Authorization Codes
Der Autorisierungsserver sendet einen temporären Authorization Code an die Anwendung.
5. Austausch gegen Access Token
Die Anwendung tauscht den Authorization Code beim Autorisierungsserver gegen ein Access Token aus.
6. Zugriff auf die Ressource
Mit dem Access Token greift die Anwendung auf die gewünschte API oder Ressource zu.
Praxisbeispiel
Eine Website bietet „Mit Google anmelden“ an.
Nach der Anmeldung bei Google erhält die Website ein Access Token
und kann – je nach Berechtigung – auf bestimmte Profildaten zugreifen,
ohne das Google-Passwort des Benutzers zu kennen.
Prüfungswissen:
Das Passwort wird nur beim Autorisierungsserver eingegeben.
Die Anwendung erhält lediglich ein Access Token und niemals das Passwort.
Merksatz für die FISI-Prüfung:
OAuth 2.0 arbeitet mit Tokens statt Passwörtern.
Benutzer → Zustimmung → Authorization Code → Access Token → Ressourcenzugriff
Typische Prüfungsantwort
Beim OAuth-2.0-Autorisierungsprozess wird der Benutzer zunächst zum
Autorisierungsserver weitergeleitet. Nach erfolgreicher Anmeldung und Zustimmung
zu den angeforderten Berechtigungen erhält die Anwendung einen Authorization Code.
Dieser wird gegen ein Access Token ausgetauscht. Mit dem Access Token kann die
Anwendung anschließend auf die freigegebenen Ressourcen zugreifen, ohne das
Passwort des Benutzers zu kennen.
```