Was ist OAuth (Open-Authorization)?

OAuth ist, einfach ausgedrückt, ein Protokoll und eine Anmeldemethode, die Benutzeridentitäten auf Grundlage einer bestehenden, verifizierten Authentifizierung bestätigt. Wenn Sie sich bei einer Anwendung oder Website anmelden und z.B. die Option „Anmelden mit Facebook“ oder eine ähnliche Option wählen, verwendet diese Authentifizierungsmethode OAuth.

Anwendungen und Websites nutzen dies, um einen sicheren Zugang zu ihren Portalen zu ermöglichen, so dass Benutzer nahtlos mit Anwendungen und Websites von Drittanbietern interagieren können, ohne bei jeder neuen Anmeldung ihre Anmeldedaten eingeben zu müssen.

Mit anderen Worten: OAuth ermöglicht es einem Benutzer (Ressourcen Owner), über seine Identität von einer anderen Website (Resource Server) aus auf eine andere Website zuzugreifen. Zusätzliche Funktionen, wie die gemeinsame Nutzung von sozialen Medien, werden durch OAuth ebenfalls ermöglicht. Beispielsweise autorisiert ein Benutzer den Zugriff auf eine Website (verwenden wir ESPN.com), um Aktualisierungen auf der Facebook-Timeline des Benutzers zu posten, ohne dass ESPN das Facebook-Passwort.i besitzt.

Eine fachtechnische Definition wäre: eine sichere, an Dritte delegierte Autorisierung durch den Benutzer-Agenten, definiert als ein Autorisierungsprotokoll mit offenem Standard, das beschreibt, wie getrennte Server und Dienste sicher authentifizierten Zugriff auf ihre Ressourcen erlauben können, ohne die ursprünglichen Anmeldeinformationen zu teilen.

Verwendung von OAuth

Über OAuth klickt der Benutzer auf ein Icon für Zugriffsrechte, das mit der anderen Website (z.B. Facebook, Google) verlinkt ist. Die Website, auf der sich der Benutzer bereits eingeloggt hat, verifiziert seine Identität und die neue Website oder App verwendet diese Authentifizierung, um den Zugriff zu ermöglichen.

Die beiden Webseiten teilen keine Passwortdaten. Stattdessen verwenden sie Autorisierungstoken, um die Identität des Benutzers zu überprüfen. Alle beteiligten Parteien (Benutzer und die beiden Seiten) arbeiten zusammen, um eine Transaktion abzuschließen.

OAuth wird nicht nur für den Identitätsaustausch zwischen Webseiten verwendet, sondern erleichtert auch das Versenden von gespeicherten Dateien in der Cloud zwischen Benutzern auf verschiedenen Systemen.i

OAuth 2.0 – Authorization

Heute verwenden wir OAuth 2.0 – ein völlig neues Design, das mit der ursprünglichen Version nicht kompatibel ist. Experten sind sich grundlegend einig, dass OAuth 2.0 schneller und weniger kompliziert ist als die alte Version, obwohl es mehr Prozessschritte enthält.i

OAuth 2.0 wurde 2012 veröffentlicht und wird von den Big Playern wie Google, Facebook, Amazon, Instagram, LinkedIn, Netflix und vielen anderen eingesetzt.

Anwendungsbeispiel:

Wenn sich ein Benutzer bereits bei einem Dienst angemeldet hat und dann eine Transaktion starten möchte, die auf einen anderen Dienst zugreifen muss, werden die folgenden OAuth 2.0-Schritte durchgeführt (im folgenden Beispiel vereinfacht):

  • Mit OAuth verbindet sich die erste Website mit der zweiten (Google, Facebook usw., wo der Benutzer bereits angemeldet ist), um die Authentifizierung zu beginnen.
  • Die zweite Website erstellt einen einmaligen Token und einen Geheimcode, der einzigartig für die Transaktion ist und das an die erste Website zurückgesendet wird.
  • Der Benutzer genehmigt die Transaktion auf der ersten Website.
  • Die zweite Website lässt die erste Website im Namen des Benutzers auf ihre Site zugreifen.

Zentrale Komponenten:

OAuth baut auf den folgenden zentralen Komponenten auf:

  • Anwendungsbereich und Einwilligung
  • Akteure/ Rollen (d.h. Ressourcenbesitzer (Resource Owner), Ressourcenserver, Client und Autorisierungsserver)
  • Zugriffs-Token (Access-Token und Refresh-Token)
  • Flows

Der Anwendungsbereich ist eine Sicherheitsfunktion in OAuth 2.0, die den Zugriff einer Anwendung auf das beschränken kann, was für das Benutzerkonto eines Benutzers notwendig ist. Die Einwilligung ist die ausdrückliche Erlaubnis des Benutzers, den Zugriff zu erlauben.

In OAuth gibt es vier Akteure: den Ressourcenbesitzer, den Ressourcen-Server, den Client und den Autorisierungsserver. Der Ressourcenbesitzer ist ein Benutzer, der auf die Informationen/Ressourcen auf dem Ressourcen-Server zugreift. Der Ressourcenserver ist der Dienst, der den Zugriff auf die Daten ermöglicht. Der Client ist die Anwendung, die auf die Daten des Benutzers zugreifen möchte. Der Autorisierungsserver ist die zentrale Instanz von OAuth und der Ort, an dem die Client-Anwendung registriert ist.

Zugriffs-Token werden verwendet, um API-Anfragen im Namen eines Benutzers zu stellen. Ein Client ist erforderlich, um diese Aufgabe zu erledigen und einen Zugriffs-Token vom Autorisierungsserver zu erhalten.

Sicherheit

Für all die vielen Vorteile ist zur Gewährleistung der Sicherheit ein Verschlüsselungsprotokoll erforderlich. OAuth 2.0 definiert oder unterstützt keine Verschlüsselung, Signatur oder Client-Verifizierung.ii Dies bedeutet, dass alle an der Transaktion beteiligten Parteien ein externes Verschlüsselungsprotokoll, wie z.B. Transport Layer Security (TLS), benötigen. TLS ist ein kryptographisches Verschlüsselungsprotokoll, das Kommunikationssicherheit über ein Computernetzwerk bietet.iii

Seit seiner Einführung wurde OAuth schnell zum Industriestandard. Seit fast einem Jahrzehnt wird OAuth 2.0 auf einigen der einflussreichsten Websites der Welt nach wie vor intensiv genutzt.

OpenID Connect und OAuth 2.0

OpenID Connect ist ein dezentralisierter Authentifizierungsmechanismus, der auf der OAuth 2.0-Spezifikation basiert. Es ermöglicht den Benutzern, sich an verschiedenen Orten mit dieser Identität anzumelden. Es wird bereits von Marktführern wie Google und Microsoft verwendet.

Eine Kombination aus OpenID Connect mit OAuth 2.0 stellt alle relevanten Funktionen für Single Sign-On (SSO) zur Verfügung.

[i] What is OAuth? Definition and How it Works

[ii] How the open authorization framework works

[iii] Transport Layer Security (TLS)

Tools4ever Informatik GmbH
Hauptstraße 145-147
51465 Bergisch Gladbach
Deutschland

Phone: +49 2202 2859-0

Email: [email protected]