Suchen

Definition OAuth Was ist OAuth?

| Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Peter Schmitz

Bei OAuth handelt es sich um ein offenes Sicherheitsprotokoll für die tokenbasierte Autorisierung und Authentifizierung im Internet. Webservices eines Drittanbieters können auf externe Ressourcen zugreifen, ohne dass Benutzernamen und Passwort offenzulegen sind. Dienste von Google, Facebook oder Twitter nutzen OAuth.

OAuth ist ein offenes Protokoll für die Autorisierung und Authentifizierung im Internet.
OAuth ist ein offenes Protokoll für die Autorisierung und Authentifizierung im Internet.
(Bild: Chris Messina)

Die Abkürzung OAuth steht für Open Authorization und ist ein offenes Protokoll, das eine sichere Autorisierung von Webservices oder mobilen Anwendungen ermöglicht, ohne Drittanbietern Passwörter offenlegen zu müssen. Das Protokoll verwendet eine tokenbasierte Autorisierung und Authentifizierung. Der Prozess zum Erhalt eines Tokens nennt sich Flow.

Mit Hilfe von Open Authorization kann eine User einer Drittanwendung erlauben, auf Daten zuzugreifen, die bei einem anderen Dienst gespeichert sind. Hierfür müssen der Drittanwendung keine geheimen Details der Zugangsberechtigung preisgegeben werden. Die erste Version von Open Authorization entstand in den Jahren 2006 und 2007. Beteiligt an der Entwicklung waren unter anderem Mitarbeiter von Google, Yahoo und Twitter. Die Spezifikation von Open Authorization 1.0 ist in RFC 5849 veröffentlicht. 2009 wurde eine Sicherheitslücke im Protokoll entdeckt. Das Open Authorization-Framework 2.0 wurde im Jahr 2012 im RFC 6749 verabschiedet. OAuth 2.0 ist nicht rückwärtskompatibel zur Version 1.0.

Die verschiedenen Rollen in OAuth

Open Authorization kennt insgesamt vier verschiedene Rollen. Diese Rollen sind:

  • der Resource Owner
  • der Resource Server
  • der Client
  • der Authorization Server

Beim Resource Owner handelt es sich um den User, der einem Drittanbieter Zugriff auf seine Ressourcen gestatten möchte. Auf dem Resource Server sind die geschützten Ressourcen des Users gespeichert. Der Resource Server kann mit Hilfe von Token anderen Zugriff auf die Ressourcen gewähren. Der Client ist der Drittanbieter, der Zugriff auf die geschützten Ressourcen zu erlangen versucht. Der Client selbst kann eine Webanwendung, eine mobile App oder eine Anwendung auf einem Desktoprechner sein. Der Authorization Server schließlich ist für die Authentifizierung des Users verantwortlich und stellt die Zugriffstoken aus. Oft werden der Authorization Server und der Resource Server gemeinsam auf einer Plattform betrieben.

Typischer Anwendungsfall und Autorisierungsvorgang mit OAuth

Ein typischer Anwendungsfall für Open Authorization könnte folgendermaßen aussehen: Ein Anwender möchte einem Drittanbieter B Zugriff auf seine Dokumente gewähren, die auf dem Webservice A gespeichert sind. Da es sich um unterschiedliche Services handelt, muss sich Drittanbieter B beim Webservice A autorisieren, um Zugriff zu erlangen. Der Anwender möchte allerdings seinen Benutzernamen und das Passwort für Webservice A nicht an den Drittanbieter B übermitteln. Für diesen Fall ermöglicht OAuth dem Drittanbieter B den Zugriff auf Basis eines Berechtigungstokens. Der Anwender muss hierfür lediglich dem Webservice A bestätigen, dass Drittanbieter B Zugriff auf bestimmte Ressourcen erhalten darf.

Der Autorisierungsvorgang läuft vereinfacht dargestellt in diesen Schritten ab:

  • 1. Der Anwender wird für die Dateifreigabe von der Seite des Drittanbieters B mit einen Link auf den Webservice A weitergeleitet, bei dem er sich anmelden muss.
  • 2. Er bekommt angezeigt, dass Drittanbieter B auf bestimmte Dokumente zugreifen möchte.
  • 3. Der Anwender stimmt zu und der Webservice A erstellt einen Autorisierungs-Token.
  • 4. Diesen Autorisierungs-Token teilt Webservice A dem Drittanbieter B mit.
  • 5. Gleichzeitig wird der Anwender wieder auf die Seite des Drittanbieters B zurückgeleitet.
  • 6. Drittanbieter B fragt nun mit dem Token beim Webservice A an und erhält Zugriff auf die Dokumente.

(ID:45283964)

Über den Autor