OAuth 2.0

Was ist OAuth 2.0

OAuth 2.0 ist ein Protokollrahmen für die Autorisierung, der sich zum Industriestandard entwickelt hat. Er erlaubt es Anwendungen, einen sicheren delegierten Zugriff zu erhalten, was bedeutet, dass sie im Namen eines Benutzers handeln können, ohne dass dessen Kennwörter preisgegeben werden müssen.

Grundlegende Begriffe

Ressourcenbesitzer (Resource Owner)

Der Benutzer, der seine Zustimmung zur Zugriffsanfrage einer Anwendung erteilt.

Klient (Client)

Die Anwendung, die um Zugriff auf den Account des Ressourcenbesitzers bittet und vom Server autorisiert wird.

Ressourcenserver (Resource Server)

Der Server, auf dem die vom Client angeforderten Benutzerdaten gespeichert sind.

Autorisierungsserver (Authorization Server)

Der Server, der die Identität des Ressourcenbesitzers verifiziert und dem Client die entsprechenden Tokens ausstellt.

Ablauf und Komponenten

Umleitungs-URI (Redirect URI)

Die URI, an die der Benutzer nach der Autorisierung weitergeleitet wird.

Umfang (Scope)

Das Spektrum der Berechtigungen, das der Client anfordert.

Token

Sicherheitsschlüssel, der vom Autorisierungsserver ausgestellt wird. Es gibt Zugriffstoken (Access Tokens) zur Autorisierung von API-Anrufen und Aktualisierungstoken (Refresh Tokens), um neue Access Tokens zu erhalten.

Autorisierungscode (Authorization Code)

Ein einmaliger Code, den der Client nach der Genehmigung des Ressourcenbesitzers erhält und gegen ein Access Token eintauschen kann.

Autorisierungs-Flows

OAuth 2.0 bietet verschiedene Autorisierungs-Grants-Typen für unterschiedliche Szenarien:

  • Authorization Code: Für Anwendungen, die über einen Server laufen, bei denen die Vertraulichkeit des Client-Geheimnisses gewährleistet werden kann.
  • Implicit: Für mobile Apps oder Web-Anwendungen (wie JavaScript-Spa), bei denen das Client-Geheimnis nicht sicher aufbewahrt werden kann.
  • Password Credentials: Wenn Benutzer ihre Anmeldedaten direkt der Anwendung anvertrauen.
  • Client Credentials: Für Anwendungen, die auf einem Server laufen und bei denen es um den Zugriff auf geschützte Ressourcen geht, ohne dass dabei der Ressourcenbesitzer involviert ist.

Bedeutung in der modernen Entwicklung

Die Verwendung von OAuth 2.0 ist entscheidend für die Implementierung sicherer Autorisierungsmechanismen in modernen Anwendungen. Es ermöglicht eine standardisierte Methode für Benutzer, ihre Zustimmung zu erteilen, ohne sensible Anmeldeinformationen weiterzugeben.