Compatibilité OpenID Connnect

Des modifications ont été apportées à EoleSSO pour permettre d'authentifier les utilisateurs auprès du fournisseur d'identité France Connect[1].

Il est également possible de configurer d'autres fournisseurs d'identité OpenID Connect[2] dans les limites des fonctionnalités implémentées. Seul France Connect et l'authentification OAuth[3] 2.0 de Google ont été testés à ce jour.

Le principe de fonctionnement est le suivant :

  • l'utilisateur se connecte à une application protégée par EoleSSO et est redirigé sur la mire d'authentification ;

  • la mire d'authentification EoleSSO présente un bouton pour chaque fournisseur d'identité OpenID configuré ;

  • lorsqu'un utilisateur clique sur un de ces boutons, il est redirigé vers le portail de connexion du fournisseur correspondant ;

  • après authentification, il est renvoyé sur le portail EoleSSO ;

  • lors de la première connexion de l'utilisateur avec ce fournisseur, EoleSSO demande de renseigner le couple identifiant/mot de passe habituel, et l'associe à l'identifiant retourné par le fournisseur ;

  • si l'association a déjà été réalisée, EoleSSO retrouve le compte associé, et créer directement la session de nécessaire à l'utilisateur ;

  • l'utilisateur est redirigé vers l'application à laquelle il souhaite accéder.

ComplémentDonnées échangées

Le protocole OpenID Connect prévoit que le fournisseur de service précise un ensemble de données auxquelles il veut accéder (scope dans le vocabulaire OpenID).

Cela peut permettre de récupérer diverses informations (sous réserve du consentement de l'utilisateur) , comme l'adresse de messagerie, le numéro de téléphone…

Pour l'implémentation de OpenID réalisé dans EoleSSO, le but est de récupérer un identifiant pérenne et que l'utilisateur l'associe à son compte local. Le scope minimal nommé openid est utilisé et seul l'attribut sub est récupéré par EoleSSO (identifiant nom nominatif de l'utilisateur et sans informations personnelles).

La correspondance entre l'identifiant local et l'identifiant OpenID est stockée dans un fichier /usr/share/sso/openid_users/<référence_fournisseur>_users.ini

Pré-requis à la mise en œuvre

OpenID Connect repose sur un principe de confiance entre un fournisseur de service (Relying Party, par exemple EoleSSO), et un fournisseur d'identité (OpenID Provider, par exemple France Connect).

Pour mettre en place cette relation de confiance, le fournisseur de service va effectuer une demande d'enregistrement auprès du fournisseur d'identité. Celui-ci lui renverra un identifiant et une clé secrète.

Le fournisseur d'identité met à disposition un certain nombre d'URLs nécessaires à la configuration du client.

Remarque

Un principe de configuration automatique est prévu par le protocole, mais il est rarement utilisé dans la pratique et n'a pas été implémenté dans EoleSSO.

Les modalités de cet échange d'informations sont spécifiques à chaque fournisseur.

Dans la plupart des cas, il sera demandé :

  • une adresse dite de callback : c'est l'adresse sur laquelle est renvoyé l'utilisateur après authentification.

    Dans le cas d'EoleSSO cette adresse est :

    https://<adresse_serveur_eolesso>:8443/oidcallback

  • une adresse électronique de contact ;

  • un logo représentant le fournisseur de service (logo EOLE, logo de l'académie…) qui apparaîtra sur la page d'authentification du fournisseur d'identité.

Gestion de la déconnexion

La cinématique de déconnexion (single logout) n'est pas implémentée par tous les fournisseurs.

Par ailleurs, certains acteurs utilisent une cinématique de déconnexion spécifique. Des adaptations ont ainsi été réalisées pour la déconnexion de Google (testée) ainsi que pour celles de Facebook et Microsoft (non testées).