LemonLDAP::NG supporte de nombreux protocoles comme CAS, OpenID Connect et SAML. Au travers de cette présentation nous verrons les principes de fonctionnement du logiciel ainsi que les technologies Perl utilisées (Mouse, PSGI, Net::LDAP, Apache::Session, Cache::Cache, etc.)
5. 5
@SFLinux
@clementoudot
LemonLDAP::NG
● Logiciel libre (GPLv2+) / OW2 consortium
● Authentification unique (SSO), contrôle d'accès
● Fournisseur de Service / Fournisseur d'Identité
● Perl/Apache/Nginx/CGI/FCGI
● Réinitialisation de mot de passe et création de compte
● http://www.lemonldap-ng.org
9. 9
@SFLinux
@clementoudot
Fonctionnement basique d'un WebSSO
1.L'utilisateur accède sans être authentifié à une
application intégrée au WebSSO
2.Il est redirigé sur un service d'authentification qui valide
son identité et fournit un jeton
3.Le jeton est transmis à l'application qui obtient l'identité
de l'utilisateur en validant/résolvant ce jeton
4.L'utilisateur accède aux autres applications sur le
même principe, sans se réauthentifier
10. 10
@SFLinux
@clementoudot
Application Web Portail d'authentification
Premier accès
Redirection pour
authentification
Génération
d'un jeton
Envoi
du jeton
Validation du jeton
Récupération de l'identité
16. 16
@SFLinux
@clementoudot
Le protocole CAS
● Central Authentication Service
● À l'origine, uniquement dédié à l'authentification
(versions 1.0 et 2.0 du protocole)
● Possibilité de partager des attributs depuis la version
3.0 du protocole
18. 18
@SFLinux
@clementoudot
Le protocole SAML
● Security Assertion Markup Language
● Basé sur XML, XML Security, SOAP
● Choix des méthodes HTTP (GET ou POST)
● Choix de l'utilisation d'un artefact pour transmettre les
messages via SOAP (Artefact GET ou Artefact POST)
● Publication des informations de configuration
(metadonnées) au format XML
19. 19
@SFLinux
@clementoudot
Spécifications du protocole
● Publiées sur le site de l'OASIS :
– saml-core-2.0-os
– saml-authn-context-2.0-os
– saml-bindings-2.0-os
– saml-conformance-2.0-os
– saml-metadata-2.0-os
– saml-profiles-2.0-os
20. 20
@SFLinux
@clementoudot
Fournisseur de service (SP) Fournisseur d'identité (IDP)
Premier accès
Choix de l'IDP
Requête
d'authentification
Réponse
d'authentificationEnvoi de
la réponse
Validation de la signature
Lecture de l'assertion
22. 22
@SFLinux
@clementoudot
Le protocole OpenID Connect
● Basé sur OAuth2, REST, JSON, JWT, JOSE
● Adapté aux navigateurs Web et aux applications
mobiles natives
● Publication des informations de configuration au format
JSON
● Consentement de l'utilisateur requis sur le partage
d'attributs
24. 24
@SFLinux
@clementoudot
Partie de confiance (RP) Fournisseur OpenID (OP)
Premier accès
Choix de l'OP
Requête
d'authentification
Création
du JWT
Envoi
du JWT
Validation de la signature
Lecture du JWT
Lecture du UserInfo
28. 28
@SFLinux
@clementoudot
Lien LL::NG / FranceConnect
● LemonLDAP::NG peut être configuré comme RP OpenID
Connect
● France Connect peut être déclaré comme OP OpenID
Connect
● Procédure détaillée :
http://lemonldap-ng.org/documentation/latest/authopen
idconnect_franceconnect
● Démonstration : https://auth.openid.club/