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:
Der Autorisierungsendpunkt wird verwendet, um mit dem Ressourcenbesitzer zu interagieren und eine Autorisierungsgewährung zu erhalten. Der Autorisierungsserver MUSS zuerst die Identität des Ressourcenbesitzers überprüfen. Die Art und Weise, wie der Autorisierungsserver den Ressourcenbesitzer authentifiziert (z. B. Benutzername und Kennwort, Sitzungscookies), geht über den Rahmen dieser Spezifikation hinaus .
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
- Full-Scratch-Implementierer von OAuth und OpenID Connect spricht über Ergebnisse
- Diagramme und Filme aller OAuth 2.0-Flows
- Diagramme aller OpenID Connect-Flows
- Die einfachste Anleitung zu OAuth 2.0