• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,430
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
37
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. LemonLDAP::NGLemonLDAP::NGUn WebSSO libre Clément OUDOTLemonLDAP::NG leader Consultant LINAGORA
  • 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. LemonLDAP::NG Bas les masques 10/03/113 http://lemonldap-ng.org
  • 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. LemonLDAP::NG Pourquoi moi ? 10/03/115 http://lemonldap-ng.org
  • 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. 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. 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. 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. LemonLDAP::NG Le WebSSO ? 10/03/1110 http://lemonldap-ng.org
  • 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. Architectures● Deux architectures complémentaires existent : ● WebSSO par délégation ● WebSSO par mandataire inverse 10/03/11 12 http://lemonldap-ng.org
  • 13. Délégation 10/03/1113 http://lemonldap-ng.org
  • 14. Mandataire inverse (reverse proxy) 10/03/1114 http://lemonldap-ng.org
  • 15. LemonLDAP::NG LemonLDAP::NG se présente 10/03/1115 http://lemonldap-ng.org
  • 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. 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. Vue macroscopique 10/03/1118 http://lemonldap-ng.org
  • 19. Cinématique principale 10/03/1119 http://lemonldap-ng.org
  • 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. 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. 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. 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. LemonLDAP::NG Et les autres ? 10/03/1124 http://lemonldap-ng.org
  • 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. Cinématique CAS 10/03/1126 http://lemonldap-ng.org
  • 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. Cinématique OpenID 10/03/1128 http://lemonldap-ng.org
  • 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. Cinématique SAML 10/03/1130 http://lemonldap-ng.org
  • 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. LemonLDAP::NG Questions ? 10/03/1132 http://lemonldap-ng.org
  • 33. LemonLDAP::NG Merci de votre attention 10/03/1133 http://lemonldap-ng.org