Par Clément Oudot (@clementoudot) – Diapositives (PDF – 2,1 Mo)
Pour ma part, j’ai donné une présentation sur OpenID Connect, un nouveau standard de SSO basé sur OAuth 2.0 qui va être utilisé dans la prochaine plate-forme d’authentification gouvernementale nommée France Connect.
OAuth 2.0 est un framework utilisant REST pour les communications et JSON pour la formalisation des données. Il définit les rôles qui distinguent les propriétaires des ressources (utilisateurs finaux), des clients (applications) et des serveurs d’autorisation et de ressources. Les notions de jeton d’accès (access token) et jetons de rafraîchissement (refresh tokens) sont également présentes dans le cadriciel. Ces jetons permettent l’accès, autorisé par l’utilisateur, à une ressource par un client sans que celui-ci n’utilise directement le mot de passe de l’utilisateur.
L’accès à une ressource en OAuth 2.0, en suivant le flux « authorization code » se déroule comme suit:
- L’utilisateur se connecte à une application (client) qui a besoin d’accéder à une ressource possédée par l’utilisateur sur un autre service (par exemple, sa photo sur un service de stockage de fichiers).
- L’utilisateur est redirigé sur le serveur d’autorisation protégeant l’accès au serveur de ressources. L’utilisateur s’authentifie si nécessaire et donne son accord pour l’accès à sa photo par le client.
- L’utilisateur revient sur le client avec un code. Ce code est transmis par le client au serveur d’autorisation qui lui donne en échange un jeton d’accès.
- Le jeton d’accès est transmis au serveur de ressources lors de l’accès à la ressource par le client. Si le jeton est valide, le client peut alors récupérer la ressource.
OpenID Connect suit la même philosophie, sauf que la ressource est alors l’identité de l’utilisateur (date d’authentification et informations personnelles). Les données d’authentification sont transmises dans un jeton JWT signé (et pouvant aussi être chiffré), ce qui garantit au client la non altération des ses données.
La présentation se poursuit avec une comparaison entre OpenID Connect et SAML: ces deux protocoles ont de nombreuses similitudes et permettent, en résumé, de répondre aux mêmes exigences. D’un point de vue technique, cependant, SAML est basé sur XML et OpenID Connect sur JSON, ce qui fera pencher certains développeurs vers ce nouveau protocole.
Pour conclure, quelques diapositives décrivent le support du protocole OpenID Connect au sein de LemonLDAP::NG, à la fois comme client (Relying Party) et comme fournisseur (OpenID Provider).