LemonLDAP::NG, un WebSSO libre

2 731 vues

Publié le

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

Aucun téléchargement
Vues
Nombre de vues
2 731
Sur SlideShare
0
Issues des intégrations
0
Intégrations
19
Actions
Partages
0
Téléchargements
57
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

LemonLDAP::NG, un WebSSO libre

  1. 1. LemonLDAP::NG LemonLDAP::NG Un WebSSO libre Clément OUDOT Consultant LINAGORA
  2. 2. Questions du jour <ul><li>Qui est ce conférencier devant moi ?
  3. 3. Pourquoi faire du SSO ?
  4. 4. Qu'est-ce que le SSO ?
  5. 5. Comment fonctionne LemonLDAP::NG ?
  6. 6. Et les autres dans tout ça : CAS, OpenID, Shibboleth, SAML, ...
  7. 7. Ai-je bien tout compris à cette conférence ? </li></ul>
  8. 8. LemonLDAP::NG Bas les masques
  9. 9. Clément OUDOT <ul><li>Contributeur LemonLDAP::NG depuis 2007, Leader depuis 2011, en relai de Xavier GUIMARD
  10. 10. Leader du projet LDAP Tool Box
  11. 11. Actif dans les communautés OpenLDAP et LDAP Synchronization Connector
  12. 12. Membre de la cellule Identité / Sécurité du Groupe LINAGORA depuis 2003
  13. 13. Collabore au produit LINAGORA LinID </li></ul>
  14. 14. LINAGORA : qui sommes nous Nos principaux clients Mission : Logiciels et services Open source pour réussir les grands projets du libre Fondée : Mai 2000 Capital: Capital privé (principalement détenu par les fondateurs) Nombre d'ingénieurs : 150
  15. 15. LINAGORA : nos métiers
  16. 16. LemonLDAP::NG Pourquoi moi ?
  17. 17. Mon application gère ses utilisateurs <ul><li>Mon application possède sa propre base d'utilisateurs avec les mots de passe
  18. 18. Les utilisateurs s'authentifient chez moi </li></ul>
  19. 19. Mon application utilise une base centrale <ul><li>Les utilisateurs existent déjà dans une base, du coup je ne stocke pas les mots de passe
  20. 20. Par contre les utilisateurs doivent toujours m'envoyer leur mot de passe </li></ul>
  21. 21. La sécurité n'est pas mon métier <ul><li>Qu'est-ce que la complexité d'un mot de passe ?
  22. 22. Qu'est qu'une attaque par force brute ?
  23. 23. Injection SQL, faille XSS ?
  24. 24. Expiration d'un mot de passe, conservation d'un historique, formulaire de changement de mot de passe ?
  25. 25. Comment changer mon mode d'authentification (biométrie, carte à puce, Kerberos, etc.) ? </li></ul>
  26. 26. La gestion d'identité n'est pas mon métier <ul><li>Comment créer le compte d'un utilisateur existant dans un autre référentiel ?
  27. 27. Comment savoir que les informations de l'utilisateur ont changé ?
  28. 28. Comment savoir que l'utilisateur n'existe plus ?
  29. 29. Qui doit avoir accès à mon application, qui ne doit pas y accéder ?
  30. 30. Que faire quand l'utilisateur a perdu son mot de passe ? </li></ul>
  31. 31. LemonLDAP::NG Le WebSSO ?
  32. 32. Qu'est-ce que le WebSSO ? <ul><li>SSO signifie « Single Sign On », qui peut se traduire en français par « authentification unique »
  33. 33. 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.)
  34. 34. 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é </li></ul>
  35. 35. Architectures <ul><li>Deux architectures complémentaires existent : </li><ul><li>WebSSO par délégation
  36. 36. WebSSO par mandataire inverse </li></ul></ul>
  37. 37. Délégation
  38. 38. Mandataire inverse (reverse proxy)
  39. 39. LemonLDAP::NG LemonLDAP::NG se présente
  40. 40. Historique <ul><li>LemonLDAP a été créé en 2003 par Eric GERMAN (Ministère des Finances, France) pour remplace Novell iChain (Novell -> llevon -> Lemon)
  41. 41. Comme Novell ou SiteMinder, LemonLDAP utilise des en-têtes HTTP pour propager l'identité de l'utilisateur
  42. 42. LemonLDAP::NG est une réécriture complète de LemonLDAP par Xavier GUIMARD (Gendarmerie Nationale, France) en 2005
  43. 43. Thomas CHEMINEAU et Clément OUDOT complètent l'équipe de développement </li></ul>
  44. 44. Parlons technique <ul><li>LemonLDAP::NG repose sur trois composants : </li><ul><li>Le portail (Portal) : interface d'authentification, menu des applications, changement de mot de passe
  45. 45. Le handler (Handler) : agent réalisant le contrôle des accès aux applications Web
  46. 46. Le manager (Manager) : interface de configuration, explorateur de sessions </li></ul><li>Tous les composants sont écrits en Perl
  47. 47. Nécessite Apache et mod_perl </li></ul>
  48. 48. Vue macroscopique
  49. 49. Cinématique principale
  50. 50. Les phases d'authentification <ul><li>LemonLDAP::NG découpe l'authentification en plusieurs phases : </li><ul><li>Vérification des sessions existantes
  51. 51. Récupération des données d'authentification
  52. 52. Recherche de l'utilisateur
  53. 53. Authentification
  54. 54. Stockage des données dans la session
  55. 55. Écriture du cookie
  56. 56. Redirection (menu ou application demandée) </li></ul></ul>
  57. 57. Les différentes bases <ul><li>Plusieurs « bases » sont utilisées : </li><ul><li>Authentification : comment vérifier les données d'authentification
  58. 58. Utilisateurs : où trouver les données de l'utilisateur
  59. 59. Mots de passe : où changer le mot de passe de l'utilisateur </li></ul><li>Exemple d'utilisation : authentification par Kerberos, données de l'utilisateur dans un annuaire LDAP </li></ul>
  60. 60. Méthodes d'authentification <ul><li>LemonLDAP::NG supporte de nombreuses méthodes d'authentification : </li><ul><li>LDAP
  61. 61. Database
  62. 62. SSL X509
  63. 63. Apache built-in modules (Kerberos, OTP, ...)
  64. 64. SAML 2.0
  65. 65. OpenID
  66. 66. Twitter
  67. 67. CAS </li></ul></ul>
  68. 68. Rendre mon application compatible <ul><li>LemonLDAP::NG est très peu intrusif : </li><ul><li>Pas de module à importer dans le code
  69. 69. Pas de WebService à appeler
  70. 70. Simplement lire une en-tête HTTP ! </li></ul><li>Une application qui utilise l'authentification Apache (REMOTE_USER) est compatible !
  71. 71. Adaptations possibles de l'application : </li><ul><li>Auto-création du compte local de l'utilisateur
  72. 72. Suppression du formulaire d'authentification </li></ul></ul>
  73. 73. LemonLDAP::NG Et les autres ?
  74. 74. CAS <ul><li>Central Authentication Service
  75. 75. Documentation du protocole pour 1.0 et 2.0
  76. 76. Utilisation de tickets de service dans l'URL, avec validation par un lien dorsal
  77. 77. Possibilité de tickets proxy
  78. 78. Pas de partage d'attributs </li></ul>
  79. 79. Cinématique CAS
  80. 80. OpenID <ul><li>L'identifiant de l'utilisateur contient l'adresse du service d'authentification
  81. 81. Aussi basé sur les redirections HTTP
  82. 82. Permet le partage d'attributs (mais plusieurs normes possibles...)
  83. 83. Pas de notion de cercle de confiance </li></ul>
  84. 84. Cinématique OpenID
  85. 85. SAML <ul><li>Cercle de confiance : enregistrement préalable des fournisseurs de services et des fournisseurs d'identités
  86. 86. Plusieurs méthodes : GET / POST / Artefact GET / Artefact POST </li></ul>
  87. 87. Cinématique SAML
  88. 88. LemonLDAP::NG et les autres <ul><li>LemonLDAP::NG peut déléguer son authentification à CAS, OpenID et SAML (avec récupération d'attributs en OpenID et SAML)
  89. 89. LemonLDAP::NG peut fournir l'identité par CAS, OpenID et SAML (avec fourniture d'attributs pour OpenID et SAML)
  90. 90. LemonLDAP::NG peut agir comme un pont entre tous ces protocoles </li></ul>
  91. 91. LemonLDAP::NG Questions ?
  92. 92. LemonLDAP::NG Merci de votre attention

×