Développé depuis 2014 sous l’égide de la DINSIC, FranceConnect est la nouvelle plate-forme d’authentification à destination des citoyens français pour simplifier l’accès à l’administration en ligne.
Annoncé officiellement il y a quelques jours par le secrétaire d’État chargé de la réforme de l’État et de la simplification, FranceConnect est déjà utilisé par de nombreuses administrations.
#franceconnect : un accès simplifié aux services publics en ligne #TransformationNumerique https://t.co/DR1sEapYod pic.twitter.com/4hyxJc4xde
— Jean-Vincent Placé (@JVPlace) 29 juin 2016
Le protocole OpenID Connect
C’est le protocole OpenID Connect qui a été retenu pour FranceConnect, choix risqué en 2014 car le standard n’en était qu’à ses débuts, mais il a depuis fait ses preuves, comme en témoigne son adoption par Google.
J’ai eu l’occasion de présenter ce protocole dans différentes conférences, comme à la LDAPCon en novembre dernier :
L’avantage d’avoir opté pour un standard comme OpenID Connect, c’est que cela permet d’utiliser n’importe quel logiciel ayant implémenté ce standard pour se relier à FranceConnect.
Depuis la version 1.9 de LemonLDAP::NG, on peut utiliser OpenID Connect, soit comme client (Relying Party), soit comme fournisseur (OpenID Provider). Une application compatible avec LemonLDAP::NG peut donc alors très facilement récupérer une identité via FranceConnect sans développement supplémentaire !
Configuration de LemonLDAP::NG
Nous allons configurer LemonLDAP::NG comme client OpenID Connect. Pour cela il faut tout d’abord paramétrer le service OpenID Connect :
- Gérer les règle de redirections (Apache ou Nginx) pour le chemin /oauth2/
- Choisir « OpenID Connect » comme module d’authentification
- Définir l’identifiant de l’entité (par défaut l’URL du portail)
- Laisser les valeurs par défaut pour les points d’accès OAuth2
- La configuration d’une clé de signature n’est pas nécessaire
Il reste ensuite à inscrire FranceConnect comme fournisseur OpenID Connect :
- Créer les métadonnées JSON (non fournies par FranceConnect), par exemple (valeurs de la plate-forme de développement) :
{ "issuer": "https://fcp.integ01.dev-franceconnect.fr", "authorization_endpoint": "https://fcp.integ01.dev-franceconnect.fr/api/v1/authorize", "token_endpoint": "https://fcp.integ01.dev-franceconnect.fr/api/v1/token", "userinfo_endpoint": "https://fcp.integ01.dev-franceconnect.fr/api/v1/userinfo", "end_session_endpoint":"https://fcp.integ01.dev-franceconnect.fr/api/v1/logout" }
- Déclarer les attributs de l’identité pivot à collecter, par exemple : given_name, family_name, birthdate
- Dans les options, renseigner le client_id et client_secret fourni par FranceConnect (voir l’étape suivante), et le scope lié aux attributs demandés, par exemple : openid email profile birth
Enregistrement auprès de FranceConnect
Pour que votre instance de LemonLDAP::NG puisse être reliée à FranceConnect, il faut formuler une demande officielle via ce formulaire.
Il est important de fournir l’URL de callback, qui par défaut dans LemonLDAP::NG est http://auth.example.com/?openidcallback=1. Mais vous devrez adapter cette URL avec votre propre nom de domaine, et si besoin d’autres paramètres en fonction des modules utilisés dans LemonLDAP::NG.
FranceConnect vous fournira alors les valeurs de client_id et client_secret dont vous avez besoin dans la configuration de LemonLDAP::NG.
C’est terminé !
LemonLDAP::NG est désormais configuré pour s’authentifier sur FranceConnect. Si certaines choses ne fonctionnent pas, référez-vous à la documentation technique disponible sur le site.
Les attributs collectés lors de l’authentification sont disponibles dans la session SSO et peuvent être transmis par LemonLDAP::NG aux applications de différentes façons : en-têtes HTTP, CAS, OpenID Connect ou SAML.
À vous de jouer !
Check out blogsflThe post Relier son application à FranceConnect avec le logiciel libre LemonLDAP::NG appeared first on Blogue de Savoir-faire LInux.