OAuth est une spécification d'autorisation
OAuth 2.0 est une spécification pour l'autorisation, mais PAS pour l'authentification. RFC 6749, 3.1. Authorization Endpoint dit explicitement ce qui suit:
Le point de terminaison d'autorisation est utilisé pour interagir avec le propriétaire de la ressource et obtenir une autorisation d'autorisation. Le serveur d'autorisation DOIT d'abord vérifier l'identité du propriétaire de la ressource. La manière dont le serveur d'autorisation authentifie le propriétaire de la ressource (par exemple, nom d'utilisateur et mot de passe de connexion, cookies de session) sort du cadre de cette spécification .
Authentification OAuth?
L'authentification traite des informations sur «qui on est». L'autorisation traite des informations sur «qui accorde quelles autorisations à qui». Le flux d'autorisation contient l'authentification comme première étape. C'est la raison pour laquelle les gens sont souvent confus.
De nombreuses bibliothèques et services utilisent OAuth 2.0 pour l'authentification. On l'appelle souvent "connexion sociale" et cela rend les gens plus confus. Si vous voyez "Authentification OAuth" (et non "Autorisation OAuth"), c'est une solution utilisant OAuth pour l'authentification.
OpenID Connect
OpenID 1.0 et OpenID 2.0 sont d'anciennes spécifications d'authentification. Ceux qui ont fait les spécifications s'attendaient à ce que les gens utilisent OpenID pour l'authentification. Cependant, certaines personnes ont commencé à utiliser OAuth 2.0 pour l'authentification (pas pour l'autorisation) et l'authentification OAuth a prévalu rapidement.
Du point de vue des gars d'OpenID, l'authentification basée sur OAuth n'était pas suffisamment sécurisée, mais ils ont dû admettre que les gens préféraient l'authentification OAuth. En conséquence, les gars d'OpenID ont décidé de définir une nouvelle spécification, OpenID Connect , en plus d'OAuth 2.0.
Oui, cela a rendu les gens beaucoup plus confus.
Définitions en une phrase d'OAuth 2.0 et d'OpenID Connect
OAuth 2.0 est un framework dans lequel un utilisateur d'un service peut permettre à une application tierce d'accéder à ses données hébergées dans le service sans révéler ses informations d'identification (ID et mot de passe) à l'application.
OpenID Connect est un framework au-dessus d'OAuth 2.0 dans lequel une application tierce peut obtenir les informations d'identité d'un utilisateur qui sont gérées par un service.
(Désolé, ces définitions sont extraits de la liste page de mon entreprise)
Définitions du point de vue des réalisateurs
L'authentification est un processus pour déterminer le sujet (= identifiant unique) d'un utilisateur final. Il existe de nombreuses façons de déterminer le sujet. ID et mot de passe, empreintes digitales, reconnaissance de l'iris, etc.
L'autorisation est un processus permettant d'associer le sujet aux autorisations demandées et à l'application cliente qui a demandé les autorisations. Un jeton d'accès représente l'association.
Voir également
- L'implémenteur complet d'OAuth et d'OpenID Connect discute des résultats
- Diagrammes et films de tous les flux OAuth 2.0
- Diagrammes de tous les flux OpenID Connect
- Le guide le plus simple d'OAuth 2.0