Die OAuth-Terminologie hat mich schon lange beschäftigt. Ist OAuth-Autorisierung, wie einige vorschlagen würden, oder ist es Authentifizierung?
Korrigieren Sie mich, wenn ich falsch liege, aber ich habe Autorisierung immer so gelesen, dass jemandem Zugriff auf eine Ressource gewährt wird. OAuth scheint jedoch keine Implementierung zu haben, die tatsächlich den Zugriff auf Benutzer auf eine bestimmte Ressource ermöglicht. Alle OAuth-Implementierungen, über die gesprochen wird, stellen einem Benutzer ein Token zur Verfügung (signiert und manchmal verschlüsselt). Dieses Token wird dann bei jedem Aufruf an einen Back-End-Service-Endpunkt übergeben, wo es auf Gültigkeit überprüft wird, was wiederum kein OAuth-Problem darstellt.
Ist für die OAuth-Authentifizierung (in jedem Artikel wird angegeben, dass dies nicht der Fall ist) erforderlich, dass ein Benutzer Anmeldeinformationen bereitstellt, die wiederum beweisen, dass ein Benutzer Zugriff haben sollte / sollte?
Es scheint also, dass OAuth keine Autorisierung oder Authentifizierung ist, da diese von anderen Prozessen ausgeführt werden müssen. Was zum Teufel ist das? Ist es ein Prozess zur Kommunikation eines Tokens? Ist es ein Flusenwort, das wirklich keine spezifische Bedeutung hat?
Es ist schwer, eine Frage zu diesem Thema zu stellen, ohne rätselhaft und abergläubisch zu klingen (Geister und Kobolde), daher erwarte ich, dass die Beantwortung dieser Frage auch keine einfache Sache sein wird. Betreten auf eigene Gefahr.
Antworten:
OAuth ist eine Spezifikation für die Autorisierung
OAuth 2.0 ist eine Spezifikation für die Autorisierung, jedoch NICHT für die Authentifizierung. RFC 6749, 3.1. Der Autorisierungsendpunkt lautet ausdrücklich wie folgt:
OAuth-Authentifizierung?
Die Authentifizierung enthält Informationen darüber, wer einer ist. Die Autorisierung enthält Informationen darüber, "wer wem welche Berechtigungen erteilt". Der Autorisierungsablauf enthält als ersten Schritt die Authentifizierung. Es ist der Grund, warum Menschen oft verwirrt sind.
Es gibt viele Bibliotheken und Dienste, die OAuth 2.0 zur Authentifizierung verwenden. Es wird oft als "Social Login" bezeichnet und macht die Leute verwirrter. Wenn "OAuth-Authentifizierung" (nicht "OAuth-Autorisierung") angezeigt wird, handelt es sich um eine Lösung, bei der OAuth zur Authentifizierung verwendet wird.
OpenID Connect
OpenID 1.0 und OpenID 2.0 sind alte Spezifikationen für die Authentifizierung. Diejenigen, die die Spezifikationen erstellt haben, erwarteten, dass Benutzer OpenID zur Authentifizierung verwenden. Einige Leute begannen jedoch, OAuth 2.0 für die Authentifizierung (nicht für die Autorisierung) zu verwenden, und die OAuth-Authentifizierung hat sich schnell durchgesetzt.
Aus Sicht der OpenID-Leute war die auf OAuth basierende Authentifizierung nicht sicher genug, aber sie mussten zugeben, dass die Leute die OAuth-Authentifizierung bevorzugten. Infolgedessen beschlossen die OpenID- Mitarbeiter, zusätzlich zu OAuth 2.0 eine neue Spezifikation, OpenID Connect , zu definieren .
Ja, das hat die Leute viel verwirrter gemacht.
Ein-Satz-Definitionen von OAuth 2.0 und OpenID Connect
OAuth 2.0 ist ein Framework, in dem ein Benutzer eines Dienstes einer Drittanbieteranwendung den Zugriff auf seine im Dienst gehosteten Daten ermöglichen kann, ohne der Anwendung seine Anmeldeinformationen (ID und Kennwort) mitzuteilen.
OpenID Connect ist ein Framework über OAuth 2.0, in dem eine Drittanbieteranwendung die Identitätsinformationen eines Benutzers abrufen kann, die von einem Dienst verwaltet werden.
(Diese Definitionen sind leider Auszüge aus der Übersichtsseite meines Unternehmens.)
Definitionen aus Sicht der Implementierer
Die Authentifizierung ist ein Prozess zum Bestimmen des Betreffs (= eindeutige Kennung) eines Endbenutzers. Es gibt viele Möglichkeiten, das Thema zu bestimmen. ID & Passwort, Fingerabdrücke, Iriserkennung usw.
Die Autorisierung ist ein Prozess zum Zuordnen des Betreffs zu den angeforderten Berechtigungen und der Clientanwendung, die die Berechtigungen angefordert hat. Ein Zugriffstoken repräsentiert die Zuordnung.
Siehe auch
quelle