LemonLDAP::NG - the New Generation WebSSO !, David Coutadeur, Linagora.
LemonLDAP::NG, un WebSSO libre (ConFoo 2011)
-
Upload
oudot-clement -
Category
Technology
-
view
2.530 -
download
8
Transcript of LemonLDAP::NG, un WebSSO libre (ConFoo 2011)
![Page 1: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/1.jpg)
LemonLDAP::NGUn WebSSO libre
Clément OUDOT
LemonLDAP::NG leaderConsultant LINAGORA
LemonLDAP::NG
![Page 2: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/2.jpg)
http://lemonldap-ng.org2
10/03/11
Questions du jour
● Qui est ce conférencier devant moi ?● Pourquoi faire du SSO ?● Qu'est-ce que le SSO ?● Comment fonctionne LemonLDAP::NG ?● Et les autres dans tout ça : CAS, OpenID,
Shibboleth, SAML, ...● Ai-je bien tout compris à cette conférence ?
![Page 3: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/3.jpg)
http://lemonldap-ng.org3
10/03/11
Bas les masques
LemonLDAP::NG
![Page 4: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/4.jpg)
http://lemonldap-ng.org4
10/03/11
Clément OUDOT
● Contributeur LemonLDAP::NG depuis 2007, Leader depuis 2011, en relai de Xavier GUIMARD
● Leader du projet LDAP Tool Box● Actif dans les communautés OpenLDAP et
LDAP Synchronization Connector● Membre de la cellule Identité / Sécurité du
Groupe LINAGORA depuis 2003● Collabore au produit LINAGORA LinID
![Page 5: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/5.jpg)
http://lemonldap-ng.org5
10/03/11
Pourquoi moi ?
LemonLDAP::NG
![Page 6: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/6.jpg)
http://lemonldap-ng.org6
10/03/11
Mon application gère ses utilisateurs
● Mon application possède sa propre base d'utilisateurs avec les mots de passe
● Les utilisateurs s'authentifient chez moi
![Page 7: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/7.jpg)
http://lemonldap-ng.org7
10/03/11
Mon application utilise une base centrale
● Les utilisateurs existent déjà dans une base, du coup je ne stocke pas les mots de passe
● Par contre les utilisateurs doivent toujours m'envoyer leur mot de passe
![Page 8: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/8.jpg)
http://lemonldap-ng.org8
10/03/11
La sécurité n'est pas mon métier
● Qu'est-ce que la complexité d'un mot de passe ?
● Qu'est qu'une attaque par force brute ?● Injection SQL, faille XSS ?● Expiration d'un mot de passe, conservation
d'un historique, formulaire de changement de mot de passe ?
● Comment changer mon mode d'authentification (biométrie, carte à puce, Kerberos, etc.) ?
![Page 9: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/9.jpg)
http://lemonldap-ng.org9
10/03/11
La gestion d'identité n'est pas mon métier
● Comment créer le compte d'un utilisateur existant dans un autre référentiel ?
● Comment savoir que les informations de l'utilisateur ont changé ?
● Comment savoir que l'utilisateur n'existe plus ?● Qui doit avoir accès à mon application, qui ne
doit pas y accéder ?● Que faire quand l'utilisateur a perdu son mot de
passe ?
![Page 10: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/10.jpg)
http://lemonldap-ng.org10
10/03/11
Le WebSSO ?
LemonLDAP::NG
![Page 11: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/11.jpg)
http://lemonldap-ng.org11
10/03/11
Qu'est-ce que le WebSSO ?
● SSO signifie « Single Sign On », qui peut se traduire en français par « authentification unique »
● Le WebSSO se consacre à l'authentification unique pour les applications Web, c'est-à-dire des applications client-serveur dont le client est un navigateur Web (IE, Firefox, etc.)
● Le principe de base est d'intercepter les requêtes entre le client et le serveur, et indiquer au serveur que le client est bien authentifié
![Page 12: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/12.jpg)
http://lemonldap-ng.org12
10/03/11
Architectures
● Deux architectures complémentaires existent :● WebSSO par délégation● WebSSO par mandataire inverse
![Page 13: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/13.jpg)
http://lemonldap-ng.org13
10/03/11
Délégation
![Page 14: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/14.jpg)
http://lemonldap-ng.org14
10/03/11
Mandataire inverse (reverse proxy)
![Page 15: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/15.jpg)
http://lemonldap-ng.org15
10/03/11
LemonLDAP::NG se présente
LemonLDAP::NG
![Page 16: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/16.jpg)
http://lemonldap-ng.org16
10/03/11
Historique
● LemonLDAP a été créé en 2003 par Eric GERMAN (Ministère des Finances, France) pour remplace Novell iChain (Novell → llevon → Lemon)
● Comme Novell ou SiteMinder, LemonLDAP utilise des en-têtes HTTP pour propager l'identité de l'utilisateur
● LemonLDAP::NG est une réécriture complète de LemonLDAP par Xavier GUIMARD (Gendarmerie Nationale, France) en 2005
● Thomas CHEMINEAU et Clément OUDOT complètent l'équipe de développement
![Page 17: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/17.jpg)
http://lemonldap-ng.org17
10/03/11
Parlons technique
● LemonLDAP::NG repose sur trois composants :● Le portail (Portal) : interface d'authentification,
menu des applications, changement de mot de passe
● Le handler (Handler) : agent réalisant le contrôle des accès aux applications Web
● Le manager (Manager) : interface de configuration, explorateur de sessions
● Tous les composants sont écrits en Perl● Nécessite Apache et mod_perl
![Page 18: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/18.jpg)
http://lemonldap-ng.org18
10/03/11
Vue macroscopique
![Page 19: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/19.jpg)
http://lemonldap-ng.org19
10/03/11
Cinématique principale
![Page 20: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/20.jpg)
http://lemonldap-ng.org20
10/03/11
Les phases d'authentification
● LemonLDAP::NG découpe l'authentification en plusieurs phases :● Vérification des sessions existantes● Récupération des données d'authentification● Recherche de l'utilisateur● Authentification● Stockage des données dans la session● Écriture du cookie● Redirection (menu ou application demandée)
![Page 21: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/21.jpg)
http://lemonldap-ng.org21
10/03/11
Les différentes bases
● Plusieurs « bases » sont utilisées :● Authentification : comment vérifier les données
d'authentification● Utilisateurs : où trouver les données de l'utilisateur● Mots de passe : où changer le mot de passe de
l'utilisateur
● Exemple d'utilisation : authentification par Kerberos, données de l'utilisateur dans un annuaire LDAP
![Page 22: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/22.jpg)
http://lemonldap-ng.org22
10/03/11
Méthodes d'authentification
● LemonLDAP::NG supporte de nombreuses méthodes d'authentification :● LDAP● Database● SSL X509● Apache built-in modules (Kerberos, OTP, ...)● SAML 2.0● OpenID● Twitter● CAS
●
![Page 23: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/23.jpg)
http://lemonldap-ng.org23
10/03/11
Rendre mon application compatible
● LemonLDAP::NG est très peu intrusif :● Pas de module à importer dans le code● Pas de WebService à appeler● Simplement lire une en-tête HTTP !
● Une application qui utilise l'authentification Apache (REMOTE_USER) est compatible !
● Adaptations possibles de l'application :● Auto-création du compte local de l'utilisateur● Suppression du formulaire d'authentification
![Page 24: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/24.jpg)
http://lemonldap-ng.org24
10/03/11
Et les autres ?
LemonLDAP::NG
![Page 25: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/25.jpg)
http://lemonldap-ng.org25
10/03/11
CAS
● Central Authentication Service● Documentation du protocole pour 1.0 et 2.0● Utilisation de tickets de service dans l'URL,
avec validation par un lien dorsal● Possibilité de tickets proxy● Pas de partage d'attributs
![Page 26: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/26.jpg)
http://lemonldap-ng.org26
10/03/11
Cinématique CAS
![Page 27: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/27.jpg)
http://lemonldap-ng.org27
10/03/11
OpenID
● L'identifiant de l'utilisateur contient l'adresse du service d'authentification
● Aussi basé sur les redirections HTTP● Permet le partage d'attributs (mais plusieurs
normes possibles...)● Pas de notion de cercle de confiance
![Page 28: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/28.jpg)
http://lemonldap-ng.org28
10/03/11
Cinématique OpenID
![Page 29: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/29.jpg)
http://lemonldap-ng.org29
10/03/11
SAML
● Cercle de confiance : enregistrement préalable des fournisseurs de services et des fournisseurs d'identités
● Plusieurs méthodes : GET / POST / Artefact GET / Artefact POST
![Page 30: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/30.jpg)
http://lemonldap-ng.org30
10/03/11
Cinématique SAML
![Page 31: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/31.jpg)
http://lemonldap-ng.org31
10/03/11
LemonLDAP::NG et les autres
● LemonLDAP::NG peut déléguer son authentification à CAS, OpenID et SAML (avec récupération d'attributs en OpenID et SAML)
● LemonLDAP::NG peut fournir l'identité par CAS, OpenID et SAML (avec fourniture d'attributs pour OpenID et SAML)
● LemonLDAP::NG peut agir comme un pont entre tous ces protocoles
![Page 32: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/32.jpg)
http://lemonldap-ng.org32
10/03/11
Questions ?
LemonLDAP::NG
![Page 33: LemonLDAP::NG, un WebSSO libre (ConFoo 2011)](https://reader034.fdocuments.net/reader034/viewer/2022042814/55595848d8b42a93708b49c9/html5/thumbnails/33.jpg)
http://lemonldap-ng.org33
10/03/11
Merci de votre attention
LemonLDAP::NG