Zum Hauptinhalt springen

OAuth2

Was ist OAuth2?

OAuth2 (Open Authorization Version 2.0) ist ein Autorisierungs-Framework, das es einer App ermöglicht, beschränkten Zugriff auf einen HTTP-Dienst zu erhalten. OAuth2 wird häufig verwendet, um es Benutzern zu ermöglichen, Websites oder Anwendungen Zugriff auf ihre Informationen auf anderen Websites zu gewähren, ohne ihre Passwörter preisgeben zu müssen.

OAuth2 arbeitet mit Token, die den Zugriff auf bestimmte Ressourcen ermöglichen. Wenn sich ein Benutzer mit OAuth2 bei einer Anwendung anmeldet, wird er an den Autorisierungsserver weitergeleitet, wo er aufgefordert wird, der Anwendung Zugriff auf seine Ressourcen zu gewähren. Sobald der Benutzer den Zugriff gewährt, gibt der Autorisierungsserver ein Zugriffstoken an die Anwendung aus, mit dem diese auf die Ressourcen des Benutzers auf dem geschützten Server zugreifen kann.

OAuth2 bietet einen standardisierten Weg für verschiedene Anwendungen, um sicher zu kommunizieren und Ressourcen gemeinsam zu nutzen. Es wird von großen Webunternehmen wie Google, Facebook und Twitter, aber auch von vielen kleineren Entwicklern und Unternehmen verwendet.

Was ist der Unterschied zwischen OAuth und OAuth2?

OAuth und OAuth2 sind zwei Versionen des OAuth-Protokolls, das zur Authentifizierung und Autorisierung zwischen Anwendungen verwendet wird. Obwohl sie einige Ähnlichkeiten aufweisen, gibt es einige wichtige Unterschiede zwischen OAuth und OAuth2:

  • Authorization Grants: In OAuth war nur ein Typ von Authorization Grant (genannt "Authorization Code Grant") verfügbar. In OAuth2 sind mehrere Arten von Authorization Grants verfügbar, darunter „Authorization Code Grant“, „Implicit Grant“, „Resource Owner Password Credentials Grant“ und „Client Credentials Grant“. Diese Grants bieten mehr Flexibilität bei der Zugriffsgewährung.
  • Token-Format: In OAuth wurde nur eine Art von Token-Format verwendet (als "OAuth-Token" bezeichnet). In OAuth2 gibt es zwei Arten von Token: Access Token und Update Token. Access Token werden verwendet, um auf geschützte Ressourcen zuzugreifen, während Update Token verwendet werden, um neue Access Token zu erhalten.
  • Client-Registrierung: In OAuth mussten sich die Clients nicht beim Autorisierungsserver registrieren. In OAuth2 ist die Registrierung der Clients obligatorisch. Dadurch kann der Autorisierungsserver eine Liste vertrauenswürdiger Clients verwalten und die Sicherheit erhöhen.
  • Sicherheit: OAuth2 gilt als sicherer als OAuth. Es enthält zusätzliche Sicherheitsfunktionen wie Token-Ablauf und Token-Widerruf.
  • Scope: OAuth2 enthält das Konzept des "Scopes", das es dem Benutzer erlaubt, die Ressourcen zu spezifizieren, auf die der Client zugreifen kann. Dadurch ist es flexibler als OAuth, das nur eine eingeschränkte Zugriffskontrolle bietet.

Zusammenfassend lässt sich sagen, dass OAuth2 ein flexibleres und sichereres Protokoll als OAuth ist, mit zusätzlichen Funktionen wie mehrere Authorization-Grants, Tokenformate, Clientregistrierung und Reichweite.

Was ist der Unterschied zwischen OAuth2 und SSO (Single-Sign-On)?

OAuth2 und SSO (Single Sign-On) sind verwandte, aber unterschiedliche Konzepte. SSO ist ein Mechanismus, der es Benutzern ermöglicht, sich nur einmal zu authentifizieren und auf mehrere Systeme und Ressourcen zuzugreifen, ohne sich erneut anmelden zu müssen. Es vereinfacht den Authentifizierungsprozess und reduziert den Aufwand, sich mehrere Anmeldeinformationen für verschiedene Anwendungen merken zu müssen. OAuth2 ist ein Autorisierungs-Framework, das es Anwendungen von Drittanbietern ermöglicht, auf Benutzerdaten zuzugreifen, ohne die Anmeldeinformationen des Benutzers zu kompromittieren. OAuth2 kann als Teil einer SSO-Lösung verwendet werden, ist aber selbst keine vollständige SSO-Lösung.

OAuth2 bietet keine vollständige SSO-Lösung, da es sich nur um Autorisierung und nicht um Authentifizierung handelt. Mit OAuth2 kann sich ein Benutzer einmalig authentifizieren und einer Drittanwendung die Erlaubnis erteilen, in seinem Namen auf seine Daten zuzugreifen. Es bietet jedoch keinen Mechanismus für den Benutzer, sich erneut zu authentifizieren, wenn er auf andere Ressourcen zugreift. Im Gegensatz dazu bietet SSO eine vollständige Authentifizierungs- und Autorisierungslösung, die es einem Benutzer ermöglicht, sich einmal zu authentifizieren und auf mehrere Ressourcen zuzugreifen, ohne sich erneut anmelden zu müssen.

OAuth2 und SSO werden häufig zusammen verwendet, um eine vollständige Authentifizierungs- und Autorisierungslösung bereitzustellen. OAuth2 kann verwendet werden, um die Benutzerautorisierung an eine Drittanbieteranwendung zu delegieren, während SSO verwendet werden kann, um den Benutzer zu authentifizieren und einen einzigen Einstiegspunkt für den Zugriff auf mehrere Ressourcen bereitzustellen. In einem solchen Szenario authentifiziert sich der Benutzer einmal über den SSO-Anbieter, und der SSO-Anbieter generiert ein Token, das zur Authentifizierung des Benutzers gegenüber anderen Ressourcen verwendet werden kann. Das OAuth2-Zugriffstoken kann verwendet werden, um die Drittanwendung zu autorisieren, in seinem Namen auf die Daten des Benutzers zuzugreifen.

Zusammenfassend lässt sich sagen, dass OAuth2 und SSO zwar verwandt sind, aber unterschiedlichen Zwecken dienen. OAuth2 ist ein Autorisierungs-Framework, das es Anwendungen von Drittanbietern ermöglicht, auf Benutzerdaten zuzugreifen, ohne die Anmeldeinformationen des Benutzers zu kompromittieren. SSO ist ein Mechanismus, der es Benutzern ermöglicht, sich nur einmal zu authentifizieren und auf mehrere Systeme und Ressourcen zuzugreifen, ohne sich erneut anmelden zu müssen. OAuth2 kann als Teil einer SSO-Lösung verwendet werden, ist aber selbst keine vollständige SSO-Lösung.