LemonLDAP::NG, un WebSSO libre (ConFoo 2011)

3 150 vues

Publié le

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
3 150
Sur SlideShare
0
Issues des intégrations
0
Intégrations
94
Actions
Partages
0
Téléchargements
39
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

LemonLDAP::NG, un WebSSO libre (ConFoo 2011)

  1. 1. LemonLDAP::NGLemonLDAP::NGUn WebSSO libre Clément OUDOTLemonLDAP::NG leader Consultant LINAGORA
  2. 2. Questions du jour● Qui est ce conférencier devant moi ?● Pourquoi faire du SSO ?● Quest-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 ? 10/03/11 2 http://lemonldap-ng.org
  3. 3. LemonLDAP::NG Bas les masques 10/03/113 http://lemonldap-ng.org
  4. 4. 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 10/03/11 4 http://lemonldap-ng.org
  5. 5. LemonLDAP::NG Pourquoi moi ? 10/03/115 http://lemonldap-ng.org
  6. 6. Mon application gère ses utilisateurs● Mon application possède sa propre base dutilisateurs avec les mots de passe● Les utilisateurs sauthentifient chez moi 10/03/11 6 http://lemonldap-ng.org
  7. 7. 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 menvoyer leur mot de passe 10/03/11 7 http://lemonldap-ng.org
  8. 8. La sécurité nest pas mon métier● Quest-ce que la complexité dun mot de passe ?● Quest quune attaque par force brute ?● Injection SQL, faille XSS ?● Expiration dun mot de passe, conservation dun historique, formulaire de changement de mot de passe ?● Comment changer mon mode dauthentification (biométrie, carte à puce, Kerberos, etc.) ? 10/03/11 8 http://lemonldap-ng.org
  9. 9. La gestion didentité nest pas mon métier● Comment créer le compte dun utilisateur existant dans un autre référentiel ?● Comment savoir que les informations de lutilisateur ont changé ?● Comment savoir que lutilisateur nexiste plus ?● Qui doit avoir accès à mon application, qui ne doit pas y accéder ?● Que faire quand lutilisateur a perdu son mot de passe ? 10/03/11 9 http://lemonldap-ng.org
  10. 10. LemonLDAP::NG Le WebSSO ? 10/03/1110 http://lemonldap-ng.org
  11. 11. Quest-ce que le WebSSO ?● SSO signifie « Single Sign On », qui peut se traduire en français par « authentification unique »● Le WebSSO se consacre à lauthentification unique pour les applications Web, cest-à-dire des applications client-serveur dont le client est un navigateur Web (IE, Firefox, etc.)● Le principe de base est dintercepter les requêtes entre le client et le serveur, et indiquer au serveur que le client est bien authentifié 10/03/11 11 http://lemonldap-ng.org
  12. 12. Architectures● Deux architectures complémentaires existent : ● WebSSO par délégation ● WebSSO par mandataire inverse 10/03/11 12 http://lemonldap-ng.org
  13. 13. Délégation 10/03/1113 http://lemonldap-ng.org
  14. 14. Mandataire inverse (reverse proxy) 10/03/1114 http://lemonldap-ng.org
  15. 15. LemonLDAP::NG LemonLDAP::NG se présente 10/03/1115 http://lemonldap-ng.org
  16. 16. 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 lidentité de lutilisateur● 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 10/03/11 16 http://lemonldap-ng.org
  17. 17. Parlons technique● LemonLDAP::NG repose sur trois composants : ● Le portail (Portal) : interface dauthentification, 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 10/03/11 17 http://lemonldap-ng.org
  18. 18. Vue macroscopique 10/03/1118 http://lemonldap-ng.org
  19. 19. Cinématique principale 10/03/1119 http://lemonldap-ng.org
  20. 20. Les phases dauthentification● LemonLDAP::NG découpe lauthentification en plusieurs phases : ● Vérification des sessions existantes ● Récupération des données dauthentification ● Recherche de lutilisateur ● Authentification ● Stockage des données dans la session ● Écriture du cookie ● Redirection (menu ou application demandée) 10/03/11 20 http://lemonldap-ng.org
  21. 21. Les différentes bases● Plusieurs « bases » sont utilisées : ● Authentification : comment vérifier les données dauthentification ● Utilisateurs : où trouver les données de lutilisateur ● Mots de passe : où changer le mot de passe de lutilisateur● Exemple dutilisation : authentification par Kerberos, données de lutilisateur dans un annuaire LDAP 10/03/11 21 http://lemonldap-ng.org
  22. 22. Méthodes dauthentification● LemonLDAP::NG supporte de nombreuses méthodes dauthentification : ● LDAP ● Database ● SSL X509 ● Apache built-in modules (Kerberos, OTP, ...) ● SAML 2.0 ● OpenID ● Twitter ● CAS● 10/03/11 22 http://lemonldap-ng.org
  23. 23. 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 lauthentification Apache (REMOTE_USER) est compatible !● Adaptations possibles de lapplication : ● Auto-création du compte local de lutilisateur ● Suppression du formulaire dauthentification 10/03/11 23 http://lemonldap-ng.org
  24. 24. LemonLDAP::NG Et les autres ? 10/03/1124 http://lemonldap-ng.org
  25. 25. CAS● Central Authentication Service● Documentation du protocole pour 1.0 et 2.0● Utilisation de tickets de service dans lURL, avec validation par un lien dorsal● Possibilité de tickets proxy● Pas de partage dattributs 10/03/11 25 http://lemonldap-ng.org
  26. 26. Cinématique CAS 10/03/1126 http://lemonldap-ng.org
  27. 27. OpenID● Lidentifiant de lutilisateur contient ladresse du service dauthentification● Aussi basé sur les redirections HTTP● Permet le partage dattributs (mais plusieurs normes possibles...)● Pas de notion de cercle de confiance 10/03/11 27 http://lemonldap-ng.org
  28. 28. Cinématique OpenID 10/03/1128 http://lemonldap-ng.org
  29. 29. SAML● Cercle de confiance : enregistrement préalable des fournisseurs de services et des fournisseurs didentités● Plusieurs méthodes : GET / POST / Artefact GET / Artefact POST 10/03/11 29 http://lemonldap-ng.org
  30. 30. Cinématique SAML 10/03/1130 http://lemonldap-ng.org
  31. 31. LemonLDAP::NG et les autres● LemonLDAP::NG peut déléguer son authentification à CAS, OpenID et SAML (avec récupération dattributs en OpenID et SAML)● LemonLDAP::NG peut fournir lidentité par CAS, OpenID et SAML (avec fourniture dattributs pour OpenID et SAML)● LemonLDAP::NG peut agir comme un pont entre tous ces protocoles 10/03/11 31 http://lemonldap-ng.org
  32. 32. LemonLDAP::NG Questions ? 10/03/1132 http://lemonldap-ng.org
  33. 33. LemonLDAP::NG Merci de votre attention 10/03/1133 http://lemonldap-ng.org

×