Haben Sie sich schon mal mit Ihrem Google- oder Facebook-Account bei einem anderen Dienst angemeldet? Dann war vermutlich OAuth oder OAuth 2.0 im Spiel. Ein Autorisierungsverfahren, das so etwas überhaupt erst sicher ermöglicht und Ihre Benutzerdaten schützt. In diesem Artikel erklären wir Ihnen alles rund um OAuth und OAuth 2.0.

→ Cybersecurity in der DACH-Region [Kostenloser Download]

Rollen in OAuth

Im OAuth-Kosmos gibt es verschiedene Rollen, von denen immer wieder die Rede ist. Dazu zählen vor allem der Ressourcenbesitzer und Client sowie weitere:

  • Ressourcenbesitzer: So wird das System bezeichnet, das die Daten enthält, auf die zugegriffen werden soll.
  • Client: Der Client möchte auf die Informationen des Ressourcenbesitzers zugreifen.
  • Autorisierungsserver: Auf dem Autorisierungsserver geht die Anfrage des Clients ein. Er stellt entsprechende Zugriffstokens nach erfolgter Autorisierung zur Verfügung.
  • Ressourcenserver: Dieser schützt die Ressourcen eines Nutzers oder einer Nutzerin und empfängt die Zugriffsanfragen des Clients.

Letzterer akzeptiert zudem den erhaltenen Token und ermöglicht den finalen Zugriff.

Was ist OAuth2?

OAuth2 ist die zweite Version des OAuth-Protokolls und hat als Erweiterung im Oktober 2012 OAuth1 abgelöst. In dieser Weiterentwicklung sind viele ursprüngliche Einschränkungen und Mängel behoben. OAuth2 (auch OAuth 2.0) basiert auf den gleichen Grundprinzipien wie OAuth, ist aber flexibler in der Verwendung.

Welche Neuerungen hat OAuth 2.0 im Vergleich zu OAuth?

OAuth 2.0 wurde im Vergleich zum Vorgänger OAuth einem deutlichen Upgrade unterzogen und ist seit mehr als zehn Jahren das Standardverfahren zur Autorisierung. Verglichen mit seinem Vorgänger hat das Protokoll folgende Vorteile:

  • Einfachere Client-Entwicklung: OAuth 2.0 vereinfacht den Prozess der Integration für Entwickler und Entwicklerinnen, indem es klarere und flexiblere Workflows bietet.
  • Mehr Flexibilität: OAuth 2.0 unterstützt eine breitere Palette von Anwendungen und Diensten und ermöglicht es, spezifischere Zugriffsberechtigungen zu erteilen.
  • Bessere Performance: Mit optimierten Protokollen erreicht OAuth 2.0 eine bessere Leistung und Skalierbarkeit, besonders bei großen Systemen.

Wichtig zu wissen: OAuth 2.0 ist nicht rückwärtskompatibel.

Wie funktioniert OAuth 2.0?

OAuth 2.0 ist ein offenes Protokoll zur Autorisierung, das den sicheren Zugriff auf Ressourcen eines Benutzers oder einer Benutzerin auf einem Server ermöglicht. Es wird hauptsächlich dazu verwendet, Token anstelle von Anmeldeinformationen zu übergeben, was sowohl den Usern als auch den Anbietenden Flexibilität und Sicherheit bietet.

Im Kern lässt sich die Funktionsweise auf vier Schritte herunterbrechen:

  • Anfrage des Clients: Der Client, beispielsweise eine App, die direkt auf Facebook Bilder posten will, fordert den Zugriff auf diese Informationen vom Ressourcenbesitzer an.
  • Genehmigung des Users: Der Benutzer oder die Benutzerin genehmigt die Anfrage, der Client erhält daraufhin ein Autorisierungstoken.
  • Zugriffstoken anfordern: Der Client tauscht das Autorisierungstoken gegen ein Zugriffstoken, das zur Authentifizierung bei der API (Application Programming Interfaces, auf Deutsch Programmierschnittstelle) verwendet wird.
  • Zugriff auf Ressourcen: Mit dem Zugriffstoken kann der Client auf die gewünschten Ressourcen des Ressourcenbesitzers zugreifen.

Diese Schritte ermöglichen eine sichere und kontrollierte Freigabe von Informationen. Aus Benutzersicht ist die deutliche Erleichterung, dass Sie nicht jedes Mal Ihre gesamten Anmeldeinformationen direkt mit dem Client teilen müssen.

Grant Types bei OAuth2

OAuth 2.0 definiert verschiedene Möglichkeiten, wie ein Client ein „Access Token“ erhalten kann. Diese Erlaubnisarten werden als „Grant Types“ bezeichnet. Die häufigsten Grant Types sind:

  • Authorization Code: Am häufigsten verwendet, insbesondere bei Server-to-Server-Authentifizierung.
  • Implicit: Verwendet in Mobile Apps oder Web-Anwendungen, wo der Client-Code im Browser des Benutzers oder der Benutzerin läuft.
  • Password: Hierbei verwendet der Client die Benutzername-Anmeldeinformationen des Users oder der Userin sowie ein sicheres Passwort, um ein Token zu erhalten.
  • Client Credentials: Ideal für Machine-to-Machine-Authentifizierung, wo eine Anwendung auf ihre eigenen Ressourcen zugreifen muss.
  • Refresh Token: Ermöglicht es dem Client, ein neues Access Token zu erhalten, ohne dass der Benutzer oder die Benutzerin erneut authentifiziert werden muss.

Was sind OAuth Scopes?

Im Rahmen von OAuth 2.0 werden „Scopes“ verwendet, um den Zugriffsbereich des Access Tokens zu definieren. Scopes legen fest, auf welche Ressourcen ein Token zugreifen kann und welche Aktionen es ausführen darf. Vereinfacht gesagt: Scopes begrenzen die Möglichkeiten eines Tokens – sie sorgen dafür, dass es nur das tun kann, wofür es vorgesehen ist.

SAML vs. OAuth

SAML (Security Assertion Markup Language) und OAuth 2.0 sind beides Autorisierungsprotokolle. Sie haben allerdings unterschiedliche Anwendungsbereiche. Während SAML primär im Bereich Single-Sign-On (SSO) zum Einsatz kommt, ist OAuth 2.0 ideal für den Zugriff auf Ressourcen von Drittanbietern.

Ein weiterer Unterschied: SAML arbeitet mit XML-Daten, während OAuth 2.0 JSON (JavaScript Object Notation) verwendet, was es leichter und schneller zu handhaben macht.

OAuth 2.0 vs. OpenID

OpenID ist ein weiteres Authentifizierungsprotokoll, das oft mit OAuth 2.0 verglichen wird. Kein Wunder: OpenID Connect, eine Erweiterung von OpenID, baut auf OAuth 2.0 auf. Während OAuth 2.0 primär zur Autorisierung entwickelt wurde, wurde OpenID hingegen für die Authentifizierung entwickelt.

Die Besonderheit von OpenID Connect: Sowohl Autorisierung als auch Authentifizierung sind so mit dem gleichen Protokoll möglich.

Wie sicher ist OAuth 2.0?

Auch wenn es vor allem mit der Umstellung von OAuth auf OAuth 2.0 einige Sicherheitsbedenken gab, wird das Protokoll von Forschern und Forscherinnen der Universität Trier, die sich 2016 damit beschäftigten, als verhältnismäßig sicher eingestuft. Die Voraussetzung dafür ist allerdings, dass das Protokoll korrekt implementiert wird.

Fazit: Open Authorization schützt Ihre Daten

OAuth 2.0 ist ein Schlüsselelement in einer vernetzten Welt und erleichtert es Ihnen, sicher auf Daten und Ressourcen zuzugreifen, ohne ihre Anmeldedaten preiszugeben. Die Verwendung von OAuth 2.0 ist zwar sicher, allerdings auch nur, wenn es verantwortungsvoll implementiert wird.

Kostenloser Guide: Cybersecurity in der DACH-Region

 Kostenloser Download: Cybersecurity in der DACH-Region

Titelbild: pixdeluxe / iStock / Getty Images Plus

Ursprünglich veröffentlicht am Aug 24, 2023 2:00:00 AM, aktualisiert am August 24 2023

Themen:

Cybersecurity