<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.jsmansart.com/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Jean-Sébastien Mansart .com - Tag - ldap</title>
  <link>http://www.jsmansart.com/</link>
  <atom:link href="http://www.jsmansart.com/feed/tag/ldap/rss2" rel="self" type="application/rss+xml"/>
  <description>Le blog de Jean-Sébastien Mansart à propos du web, des performances, de l'ergonomie et de l'accessibilité</description>
  <language>fr</language>
  <pubDate>Sun, 15 Nov 2009 12:10:11 +0100</pubDate>
  <copyright>Jean-Sébastien Mansart</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>1 an déjà</title>
    <link>http://www.jsmansart.com/post/1-an-deja</link>
    <guid isPermaLink="false">urn:md5:c006a0f2de07aa1678aef73ee89ad5b8</guid>
    <pubDate>Mon, 25 Aug 2008 20:30:00 +0200</pubDate>
    <dc:creator>Jean-Sébastien Mansart</dc:creator>
        <category>Vie du blog</category>
        <category>AIR</category><category>atacamag</category><category>carte</category><category>cms</category><category>communaute</category><category>css</category><category>dotclear</category><category>feedburner</category><category>jaiku</category><category>jeux</category><category>ldap</category><category>life2.0</category><category>magazine</category><category>metiers</category><category>microsoft</category><category>miniville</category><category>objectis</category><category>optimisation</category><category>plone</category><category>psd</category><category>realite-augmentee</category><category>spwitt</category><category>twitter</category><category>video</category><category>videoBSW</category>    
    <description>&lt;p&gt;&lt;img src=&quot;http://www.jsmansart.com/public/divers/.moi_t.jpg&quot; alt=&quot;Jean-Sébastien Mansart&quot; style=&quot;float:left; margin: 0 1em 1em 0;&quot; title=&quot;Jean-Sébastien Mansart&quot; /&gt; Ça fait déjà &lt;strong&gt;un peu plus d'un an&lt;/strong&gt; que j'ai ouvert ce blog.&lt;/p&gt;


&lt;p&gt;Je profite de mes vacances pour faire le point &lt;strong&gt;avec vous&lt;/strong&gt;.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;On va commencer par les 10 billets les plus lu&lt;/strong&gt; :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/La-Miss-Webmate-decembre-2007&quot; hreflang=&quot;fr&quot;&gt;La Miss Webmate décembre 2007&lt;/a&gt;, a croire que vous êtes obsédés ?&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/Plone-et-LDAP-mode-demploi&quot; hreflang=&quot;fr&quot;&gt;Plone et LDAP : mode d'emploi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/la-miss-webmate-fevrier-2008&quot; hreflang=&quot;fr&quot;&gt;La Miss Webmate février 2008&lt;/a&gt;, a ben oui, en fait, vous êtes vraiment obsédés !&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/Life-20-la-realite-augmentee&quot; hreflang=&quot;fr&quot;&gt;Life 2.0 : la réalité augmentée&lt;/a&gt;, merci les backlink chez &lt;a href=&quot;http://www.fredcavazza.net/2008/01/16/une-illustration-interessante-de-la-realite-augmentee/&quot; hreflang=&quot;fr&quot;&gt;Fred Cavazza&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/Optimisation-du-referencement-dun-blog-sous-Dotclear-2&quot; hreflang=&quot;fr&quot;&gt;Optimisation du référencement d'un blog sous Dotclear 2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/Optimisation-dun-site-Plone&quot; hreflang=&quot;fr&quot;&gt;Optimisation d'un site Plone&lt;/a&gt;, il faut croire que vous aimez optimiser vos sites !&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/quel-cms-choisir-suivez-le-plan&quot; hreflang=&quot;fr&quot;&gt;Quel CMS choisir ? Suivez le plan !&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/Failles-de-securite-dans-les-CMS&quot; hreflang=&quot;fr&quot;&gt;Failles de sécurité dans les CMS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/Bon-Patron-%3A-ne-faites-plus-de-fautes&quot; hreflang=&quot;fr&quot;&gt;Bon Patron : ne faites plus de fautes !&lt;/a&gt;, moi aussi j'ai encore un peu de mal avec l'ortho...&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/Objectis-l-hebergement-gratuit-de-sites-Plone&quot; hreflang=&quot;fr&quot;&gt;Objectis : l'hébergement gratuit de sites Plone&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A noter quand même que la page la plus lue, celle sur &lt;a href=&quot;http://www.jsmansart.com/post/La-Miss-Webmate-decembre-2007&quot; hreflang=&quot;fr&quot;&gt;la miss webmate de décembre 2007&lt;/a&gt;, représente 14,34% des pages vues...&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;On continue avec les 10 articles les plus commentés&lt;/strong&gt; :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/Twitter-le-service-toujours-en-rade&quot; hreflang=&quot;fr&quot;&gt;Twitter : le service toujours en rade&lt;/a&gt;, le sujet a du vous plaire, d'autant plus que j'offrais des invitations pour &lt;a href=&quot;http://www.jsmansart.com/tag/jaiku&quot; hreflang=&quot;fr&quot;&gt;Jaiku&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/les-metiers-du-web-les-connaissez-vous-tous&quot; hreflang=&quot;fr&quot;&gt;Les métiers du web, les connaissez vous tous ?&lt;/a&gt;, un sujet qui fait toujours autant parler d'encre. C'est normal, c'est notre métier !&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/utiliser-les-nouvelles-technologies-a-tout-prix&quot; hreflang=&quot;fr&quot;&gt;Utiliser les nouvelles technologies a tout prix&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/psd2css-online-le-fake-du-mois&quot; hreflang=&quot;fr&quot;&gt;psd2css online : le fake du mois ?&lt;/a&gt;, ok, sur ce billet je m'étais planté, ce n'étais pas un fake. Mais je conseil quand même de faire son intégration sois même, ce sera toujours plus propre...&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/nouveau-theme-je-vous-fais-faire-le-tour-du-proprio&quot; hreflang=&quot;fr&quot;&gt;Nouveau thème : je vous fais faire le tour du proprio ?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/dotclear-2-le-wordpress-killer&quot; hreflang=&quot;fr&quot;&gt;DotClear 2 : le Wordpress killer ?&lt;/a&gt;, comment ça j'aime &lt;a href=&quot;http://www.jsmansart.com/tag/dotclear&quot; hreflang=&quot;fr&quot;&gt;dotclear&lt;/a&gt; ?&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/note-de-service-changements-sur-le-blog&quot; hreflang=&quot;fr&quot;&gt;Note de service : changements sur le blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/les-commentaires-videos-une-vraie-fausse-bonne-idee&quot; hreflang=&quot;fr&quot;&gt;Les commentaires vidéos : une vraie fausse bonne idée ?&lt;/a&gt;, je suis toujours d'accord pour dire que les commentaires vidéos ne sont pas la meilleure chose de l'année. Il n'y a qu'à voir chez TechCrunch et regarder le nombre de commentaires vidéos posté pour s'en rendre compte.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/video-premier-contact-avec-microsoft-expression-web&quot; hreflang=&quot;fr&quot;&gt;Premier contact avec Microsoft Expression Web&lt;/a&gt;, ma première vidéo, j'en suis encore tout ému.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/refonte-complete-du-blog&quot; hreflang=&quot;fr&quot;&gt;Refonte complète du blog&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ce que je trouve marrant, c'est qu'à partir du moment où j'ai annoncé que &lt;a href=&quot;http://www.jsmansart.com/post/refonte-complete-du-blog&quot; hreflang=&quot;fr&quot;&gt;j'allais refondre mon blog&lt;/a&gt;, les commentaires se sont multipliés. Avant j'avais quelques commentaires éparses, depuis, j'ai au minimum 3 commentaires sur chaque articles (mis à part deux qui n'ont toujours pas de commentaires. &lt;em&gt;Saurez vous les retrouver ?&lt;/em&gt;)&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Et maintenant, je garde le meilleur pour la fin, ma petite sélection personnelle&lt;/strong&gt; :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/Pourquoi-utiliser-FeedBurner&quot; hreflang=&quot;fr&quot;&gt;Pourquoi utiliser FeedBurner&lt;/a&gt;. C'est maintenant une vrai question. FeedBurner n'a pas de vrai concurrent direct et le service marche un peu comme twitter, c'est à dire, un peu comme il veut ou quand il veut...&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/AIR-et-SilverLight-sont-ils-vraiment-des-pionniers&quot; hreflang=&quot;fr&quot;&gt;AIR et SilverLight sont-ils vraiment des pionniers ?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/Une-metrique-pour-evaluer-la-qualite-du-code&quot; hreflang=&quot;fr&quot;&gt;Une métrique pour évaluer la qualité du code&lt;/a&gt;, pour le fun ;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/enfin-une-date-pour-dotclear-2&quot; hreflang=&quot;fr&quot;&gt;Enfin une date pour Dotclear 2&lt;/a&gt;, on l'a attendu longuement. Il est enfin sortit. C'était pas trop tôt !&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/Atacamag-le-magazine-qui-vous-emmene-ailleurs&quot; hreflang=&quot;fr&quot;&gt;Atacamag, le magazine qui vous emmène ailleurs...&lt;/a&gt;, d'ailleurs, &lt;a href=&quot;http://www.atacamag.com/&quot; hreflang=&quot;fr&quot;&gt;le numéro 3&lt;/a&gt; vient de sortir !&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/comment-utilisez-vous-votre-service-de-micro-blogging&quot; hreflang=&quot;fr&quot;&gt;Comment utilisez vous votre service de micro-blogging ?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/le-spwitt-le-spam-via-twitter&quot; hreflang=&quot;fr&quot;&gt;Le spwitt : le spam via twitter&lt;/a&gt;, il y en a de plus en plus, vous trouvez pas ?&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/Miniville-le-SimCity-20&quot; hreflang=&quot;fr&quot;&gt;Miniville, le SimCity 2.0&lt;/a&gt;, y'a pas à dire, ils sont fort Motion Twins pour faire des hits. Vous avez testé &lt;a href=&quot;http://blog.js-zone.net/index.php/post/2008/07/29/Citoyens-hors-de-la-ville-prudence-%3A-HORDES&quot; hreflang=&quot;fr&quot;&gt;Hordes&lt;/a&gt; ?&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.jsmansart.com/post/Plone-30&quot; hreflang=&quot;fr&quot;&gt;Plone 3.0&lt;/a&gt;, un an après avoir écris ce billet, j'ai enfin un projet avec Plone 3.&lt;/li&gt;
&lt;li&gt;Pour finir, pas un billet, non. Mais une suite de billets sur &lt;a href=&quot;http://www.jsmansart.com/tag/videoBSW&quot; hreflang=&quot;fr&quot;&gt;la réalisation d'une vidéo&lt;/a&gt;, avec toutes les étapes, depuis l'acquisition jusqu'au montage final. Un moment passionnant, surtout en tant qu'acteur :)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Voilà, le petit tour est terminé, j'espère que vous en avez bien profité. N'ayez crainte, il y aura encore &lt;strong&gt;beaucoup d'autres articles&lt;/strong&gt;, alors continuez à commenter et à réagir !&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Merci à tous&lt;/strong&gt; pour votre fidélité.&lt;/p&gt;    &lt;hr /&gt;&lt;p&gt;&lt;small&gt;Article original &#233;crit par Jean-S&#233;bastien Mansart et publi&#233; sur &lt;a href='http://www.jsmansart.com'&gt;Jean-S&#233;bastien
 Mansart .com&lt;/a&gt; | &lt;a href='http://www.jsmansart.com/post/1-an-deja'&gt;Lien direct vers l'article&lt;/a&gt; | Si vous lisez cet article dans son int&#233;gralit&#233; sur un autre site que
&lt;a href='http://www.jsmansart.com'&gt;Jean-S&#233;bastien Mansart .com&lt;/a&gt; c'est qu'il a &#233;t&#233; reproduit ill&#233;galement et sans autorisation. Merci de le sig
naler &#224; son auteur original &lt;a href='mailto:jean-sebastien.mansart@laposte.net'&gt;en cliquant ici&lt;/a&gt; | &amp;copy; jsmansart.com.&lt;/small&gt;
    </description>
    
    
    
      </item>
    
  <item>
    <title>Plone et LDAP : mode d'emploi</title>
    <link>http://www.jsmansart.com/post/Plone-et-LDAP-mode-demploi</link>
    <guid isPermaLink="false">urn:md5:8daa249bc5e37d80d875c515b29b2830</guid>
    <pubDate>Thu, 05 Jul 2007 17:44:00 +0200</pubDate>
    <dc:creator>Jean-Sébastien Mansart</dc:creator>
        <category>Plone</category>
        <category>cms</category><category>ldap</category><category>plone</category><category>python</category><category>zope</category>    
    <description>&lt;p&gt;Depuis la version 2.5, Plone intègre un module d'authentification
extensible grâce à des plugins : PAS (PluggableAuthService). Celà
permet de s'identifier à un site Plone depuis (potentiellement)
n'importe quelle source : MySQL, openID, LDAP, etc...&lt;/p&gt;
&lt;p&gt;Je vais ici expliquer comment connecter un site Plone à une base
LDAP afin de pouvoir s'identifier sur le site, modifier son mot de
passe depuis l'interface Plone, ajouter des utilisateurs depuis Plone
et sauvegarder des données utilisateurs dans le LDAP.&lt;/p&gt;
&lt;p&gt;Je part du principe que vous avez des connaissances en LDAP, que
vous savez ce qu'est un DN (Distinguished Name), comment créer un arbre
dans le LDAP, etc...&lt;/p&gt;    &lt;h2&gt;LDAP c'est quoi ?&lt;/h2&gt;
&lt;p&gt;D'après &lt;a href=&quot;http://fr.wikipedia.org/wiki/LDAP&quot;&gt;wikipédia&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Lightweight Directory Access Protocol (LDAP) est un protocole permettant l'interrogation et la modification des services d'annuaire. Ce protocole repose sur TCP/IP. Un annuaire LDAP respecte généralement
le modèle X.500 édicté par l'UIT-T : c'est une structure arborescente dont chacun des nœuds est constitué d'attributs associés à leurs valeurs.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Un LDAP est donc une base de données spécialisée pour le stockage d'information concernant des personnes et des groupes de personnes.&lt;/p&gt;
&lt;br /&gt;
&lt;h2&gt;Ce qu'il vous faut&lt;/h2&gt;
&lt;p&gt;Pour connecter votre LDAP à votre site Plone, il vous faut :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Un serveur LDAP (&lt;a href=&quot;http://www.openldap.org/&quot;&gt;OpenLDAP&lt;/a&gt;, Active Directory, OpenDirectory, Lotus...)
&lt;/li&gt;
&lt;li&gt;
Un serveur &lt;a href=&quot;http://www.zope.org/&quot;&gt;Zope&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
Un site &lt;a href=&quot;http://www.plone.org/&quot;&gt;Plone&lt;/a&gt; de version 2.5.x
&lt;/li&gt;
&lt;li&gt;
Le produit &lt;a href=&quot;http://www.dataflake.org/software/ldapmultiplugins/&quot;&gt;LDAPMultiPlugins&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
Le produit &lt;a href=&quot;http://www.dataflake.org/software/ldapuserfolder/&quot;&gt;LDAPUserFolder&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
Le module python &lt;a href=&quot;http://sourceforge.net/project/showfiles.php?group_id=2072&quot;&gt;python-ldap&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le LDAPUserFolder qui se trouve sur le site de &lt;a href=&quot;http://plone.org/products/ldapuserfolder&quot;&gt;Plone.org&lt;/a&gt; n'est pas à jour, il date du 30 novembre 2005. Faites bien attention d'utiliser celui fournit par &lt;a href=&quot;http://www.dataflake.org/software/ldapuserfolder/&quot;&gt;dataflake.org&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Copiez les deux produits LDAPMultiPlugins et LDAPUserFolder dans le dossier Products de votre instance, installez le module python-ldap, et démarrez votre serveur Zope.&lt;/p&gt;
&lt;br /&gt;
&lt;h2&gt;Configuration du Multi Plugin&lt;/h2&gt;
&lt;p&gt;Allez dans la ZMI (Zope Management Interface), ajoutez un site Plone et allez dans l'acl_users de votre site. Dans le menu déroulant, sélectionnez LDAP Multi Plugins et cliquez sur le bouton Add. Un formulaire vous demande plusieurs information à propos de votre LDAP :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
ID : pour identifier l'objet LDAP Multi Plugin qu'on est en train d'ajouter. (généralement, je le nomme LDAP)
&lt;/li&gt;
&lt;li&gt;
Title : un titre (LDAP Serveur)
&lt;/li&gt;
&lt;li&gt;
LDAP Server : là où se trouve votre serveur LDAP (localhost par exemple)
&lt;/li&gt;
&lt;li&gt;
Login Name Attribute : l'attribut qui servira d'identifiant pour se connecter au site (laissez la valeur par défaut pour le moment)
&lt;/li&gt;
&lt;li&gt;
User ID Attribute : l'attribut qui servira d'id pour les utilisateurs (laissez la valeur par défaut pour le moment)
&lt;/li&gt;
&lt;li&gt;
RDN Attribute : l'attribut pour le Relative Distinguished Name (laissez la valeur par défaut pour le moment)
&lt;/li&gt;
&lt;li&gt;
Users Base DN : où sont stockés vos utilisateurs dans le LDAP
&lt;/li&gt;
&lt;li&gt;
Group storage : vous pouvez choisir de stocker les groupes soit sur le LDAP, soit dans Plone directement
&lt;/li&gt;
&lt;li&gt;
Groups Base DN : si vous choisissez de stocker les groupes sur le LDAP, indiquez dans quelle branche ils se trouvent
&lt;/li&gt;
&lt;li&gt;
Manager DN : indiquez où se trouve l'admin LDAP (ou=admin,dc=mon,dc=ldap,dc=com par exemple) et saisissez sont mot de passe par la même occasion
&lt;/li&gt;
&lt;li&gt;
User password encryption : le type d'encryption pour les mots de passe
&lt;/li&gt;
&lt;li&gt;
Default User Roles : le rôle par défaut des utilisateurs logué (Anonymous par défaut, on peut leur donner le rôle Member par exemple)
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img style=&quot;margin: 0 auto; display: block;&quot; alt=&quot;&quot; src=&quot;http://www.jsmansart.com/public/images%20ldap/config_ldap.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Une fois les champs saisis, validez le formulaire. On se retrouve dans l'acl_users, cliquez sur votre LDAP Multi Plugins que vous venez d'ajouter.&lt;/p&gt;
&lt;p&gt;On va maintenant faire le lien entre les attributs LDAP et les attributs de vos utilisateurs dans Plone.&lt;/p&gt;
&lt;br /&gt;
&lt;h2&gt;Autentification&lt;/h2&gt;
&lt;p&gt;Cochez au passage les options &amp;quot;Authentication&amp;quot; et &amp;quot;Properties&amp;quot; et validez, puis cliquez directement sur le lien &amp;quot;Authentication&amp;quot;. Dans le cadre de droite, faite remonter LDAP tout en haut. Faites la même chose pour &amp;quot;Properties&amp;quot;. Ca permet de dire ce qu'on veut faire avec le LDAP. Là on lui indique que l'on veut pouvoir s'identifier et qu'on veut récupérer les propriétés (attributs) des utilisateurs stockés dans le LDAP.&lt;/p&gt;
&lt;br /&gt;&lt;p&gt;&lt;img style=&quot;margin: 0 auto; display: block;&quot; alt=&quot;&quot; src=&quot;http://www.jsmansart.com/public/images%20ldap/activate.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style=&quot;margin: 0 auto; display: block;&quot; alt=&quot;&quot; src=&quot;http://www.jsmansart.com/public/images%20ldap/active_plugin.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Dans l'onglet &amp;quot;contents&amp;quot;, cliquez sur acl_users (LDAP Serveur). Vous vous retrouvez à la configuration que vous aviez saisi juste auparavant. Allez dans l'onglet LDAP Schema. C'est à partir de là que l'on va &amp;quot;mapper&amp;quot; les attributs LDAP avec les champs Plone.&lt;/p&gt;
&lt;p&gt;&lt;img style=&quot;margin: 0 auto; display: block;&quot; alt=&quot;&quot; src=&quot;http://www.jsmansart.com/public/images%20ldap/ldap_schema.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Par exemple : l'attribut LDAP &amp;quot;mail&amp;quot; va être mappé sur le champ &amp;quot;email&amp;quot;, le &amp;quot;cn&amp;quot; sera mappé sur &amp;quot;fullname&amp;quot; etc...&lt;/p&gt;
&lt;p&gt;On peut même mapper la photo jpeg...&lt;/p&gt;
&lt;p&gt;Par contre, pas besoin de mapper le mot de passe.&lt;/p&gt;
&lt;p&gt;Ajoutez en priorité l'attribut qui vous servira pour le login, et notifiez le dans le champs &amp;quot;Friendly Name&amp;quot;,&lt;/p&gt;
&lt;p&gt;Revenez dans l'onglet &amp;quot;configure&amp;quot;, et spécifiez maintenant:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Login Name Attribute
&lt;/li&gt;
&lt;li&gt;
User ID Attribute
&lt;/li&gt;
&lt;li&gt;
RDN Attribute
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour ces trois champs indiquez lui l'attribut que vous avez choisi pour le login.&lt;/p&gt;
&lt;p&gt;Une fois fait, allez dans l'onglet &amp;quot;users&amp;quot; et essayez de trouver un utilisateur pour tester que votre configuration fonctionne.&lt;/p&gt;
&lt;p&gt;Vous pouvez ensuite tenter de vous connecter sur votre site Plone avec un utilisateur contenu dans votre LDAP.&lt;/p&gt;
&lt;p&gt;La première partie est finie, c'était la partie facile. Pour la suite, il va falloir mettre les mains dans le cambouis.&lt;/p&gt;
&lt;br /&gt;
&lt;h2&gt;Pour aller plus loin&lt;/h2&gt;
&lt;p&gt;Maintenant qu'on peut se connecter sur un site Plone avec des utilisateurs stockés dans un LDAP, on va s'amuser un peu à triturer tout ça.&lt;/p&gt;
&lt;p&gt;Vous voulez pouvoir changer votre mot de passe depuis Plone ?&lt;/p&gt;
&lt;p&gt;Vous avez spécifié des attributs dans le LDAP et vous voudriez non seulement les voir dans votre profil, mais en plus vous voulez pouvoir modifier ces valeurs ?&lt;/p&gt;
&lt;p&gt;Vous voulez ajouter des utilisateurs depuis Plone ?&lt;/p&gt;
&lt;p&gt;Pas de soucis, c'est là que ça commence à devenir intéressant.&lt;/p&gt;
&lt;p&gt;De base, le Multi Plugin ne prend pas en charge la modification du mot de passe, ni l'ajout d'utilisateur. Il faut donc &lt;a href=&quot;http://antiloop.plone.org/LDAPMultiPlugins-plone.org.patch&quot;&gt;patcher&lt;/a&gt; pour lui donner de nouvelles fonctionnalités :&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;
# On se place dans le dossier Products :&lt;br /&gt;
cd mon_instance/Products&lt;br /&gt;
# On récupère le patch :&lt;br /&gt;
wget http://antiloop.plone.org/LDAPMultiPlugins-plone.org.patch&lt;br /&gt;
# On va dans le dossier du produit :&lt;br /&gt;
cd LDAPMultiPlugins&lt;br /&gt;
# On applique le patch :&lt;br /&gt;
patch -p0 &amp;lt; ../LDAPMultiPlugins-plone.org.patch
&lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;Et après on regarde un peu ce qui a été fait. On corrige un peu les erreurs qui se sont glissées : les déclarations de sécurité ne sont pas bonnes dans le fichier LDAPMultiPlugin.py pour les méthodes doChangeUser, doDeleteUser, etc... (je sais pas si ça joue un grand rôle, mais bon...)&lt;/p&gt;
&lt;p&gt;On redémarre le serveur zope, et on remarque que l'on a de nouvelles possibilité dans notre LDAP Multi Plugin. Cochez &amp;quot;User_Management&amp;quot; et faites monter &amp;quot;LDAP&amp;quot; en haut de la liste comme tout à l'heure.&lt;/p&gt;
&lt;br /&gt;
&lt;h3&gt;Changement du mot de passe :&lt;/h3&gt;
&lt;p&gt;Depuis le site Plone, allez dans vos préférences, et allez sur le formulaire pour changer votre mot de passe. Testez, et normalement, ça ne marche pas.
&lt;br /&gt;Normal, dans la classe MembershipTool (Products.CMFPlone.MembershipTool) la méthode _findUsersAclHome n'arrive pas à trouver l'acl_users à utiliser.&lt;/p&gt;
&lt;p&gt;Il faut donc faire un MonkeyPatch :&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;
from Products.CMFPlone.MembershipTool import MembershipTool&lt;br /&gt;
from Products.CMFCore.utils import getToolByName&lt;br /&gt;
&lt;br /&gt;
def _findUsersAclHome(self, userid):&lt;br /&gt;
    portal = getToolByName(self, 'portal_url').getPortalObject()&lt;br /&gt;
    acl_users=portal.acl_users&lt;br /&gt;
    parent = acl_users.LDAP.acl_users&lt;br /&gt;
    return parent&lt;br /&gt;
&lt;br /&gt;
MembershipTool._findUsersAclHome = _findUsersAclHome
&lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;La ligne &lt;code&gt;parent = acl_users.LDAP.acl_users&lt;/code&gt; spécifie implicitement où se situe l'acl_users.&lt;/p&gt;
&lt;p&gt;On redémarre le serveur, et hop, miracle ça marche !&lt;/p&gt;
&lt;br /&gt;
&lt;h3&gt;Stockage d'informations utilisateur dans le LDAP :&lt;/h3&gt;
&lt;p&gt;On a vu au début qu'on pouvait mapper les attributs du LDAP sur les champs Plone. C'est bien, mais des fois, on voudrait pouvoir modifier les valeurs directement depuis Plone.&lt;/p&gt;
&lt;p&gt;Il faut déjà modifier le template personalize_form.pt pour faire afficher les champs que l'on veut.&lt;/p&gt;
&lt;p&gt;Ensuite il faut créer une External Method qui va mettre à jour le LDAP :&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;
from os import curdir&lt;br /&gt;
from os.path import join, abspath, dirname, split&lt;br /&gt;
import os.path&lt;br /&gt;
import string&lt;br /&gt;
import ldap&lt;br /&gt;
import ldap.modlist&lt;br /&gt;
from Products.CMFCore.utils import getToolByName&lt;br /&gt;
from random import Random&lt;br /&gt;
&lt;br /&gt;
global username&lt;br /&gt;
global password&lt;br /&gt;
global baseDN&lt;br /&gt;
username = &amp;quot;cn=admin,dc=exemple,dc=fr&amp;quot;&lt;br /&gt;
password = 'admin'&lt;br /&gt;
baseDN = &amp;quot;ou=personnes, dc=exemple, dc=fr&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def connexionLdap(self):&lt;br /&gt;
    try:&lt;br /&gt;
        l = ldap.open(&amp;quot;127.0.0.1&amp;quot;)&lt;br /&gt;
        l.protocol_version = ldap.VERSION3&lt;br /&gt;
        return l&lt;br /&gt;
    except ldap.LDAPError, e:&lt;br /&gt;
        print e&lt;br /&gt;
&lt;br /&gt;
def setMonInfo(self, uid, value):&lt;br /&gt;
    l = self.connexionLdap()&lt;br /&gt;
    modlist = [(2, 'monChamp', str(value))]&lt;br /&gt;
&lt;br /&gt;
    searchScope = ldap.SCOPE_SUBTREE&lt;br /&gt;
    retrieveAttributes = None&lt;br /&gt;
    searchFilter = &amp;quot;uid=&amp;quot;+uid&lt;br /&gt;
    ldap_result_id = l.search(baseDN, searchScope, searchFilter, retrieveAttributes)&lt;br /&gt;
    result_type, result_data = l.result(ldap_result_id, 0)&lt;br /&gt;
    dn = result_data[0][0]&lt;br /&gt;
    try:&lt;br /&gt;
        l.simple_bind(username, password)&lt;br /&gt;
        l.modify_s(dn, modlist)&lt;br /&gt;
    except ldap.LDAPError, e:&lt;br /&gt;
        print e&lt;br /&gt;
&lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;Dans le fichier personalize.cpy on rajoute la ligne suivante en dessous de la déclaration de la variable member :&lt;/p&gt;
&lt;p&gt;&lt;code&gt;uid = member.getProperty('email', None)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Et on ajoute le code suivant :&lt;/p&gt;
&lt;p&gt;&lt;code&gt;context.setMonInfo(uid, 'monChamp', monChamp)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Et voilà, avec ça, quand on modifie sa fiche, le LDAP est mis à jour aussi.&lt;/p&gt;
&lt;p&gt;Avec un peu de patience, on peu faire beaucoup d'autres choses, je n'ai abordé que quelques exemples de base, mais on a pu voir que lorsque l'on veut aller plus loin qu'une utilisation basique du serveur LDAP avec Plone, il faut mettre les mains dans le code, et c'est pas toujours joli joli...&lt;/p&gt;
&lt;p&gt;Le MonkeyPatch pour faire fonctionner la mise à jour du mot de passe est assez crade, je n'ai pas vraiment eu le temps de trouver une meilleur solution, ni pourquoi le code d'origine ne marche pas dans ce cas.&lt;/p&gt;
&lt;p&gt;Le fait que l'on doive patcher pour avoir de nouvelles fonctionnalités n'est pas un bon point non plus. Certes, normalement, Plone ne devrait pas être utilisé pour modifier les données du LDAP ni créer de nouveaux utilisateurs. Pourtant dans certains cas, c'est très pratique, et si en plus c'est le client qui le demande...&lt;/p&gt;
&lt;p&gt;J'ai l'impression que le LDAPMultiPlugin n'est pas assez mature, qu'il demande encore à être amélioré. Le plus dur au final est de trouver la documentation nécessaire, surtout lorsqu'on ne sait pas qu'il existe un patch.&lt;/p&gt;    &lt;hr /&gt;&lt;p&gt;&lt;small&gt;Article original &#233;crit par Jean-S&#233;bastien Mansart et publi&#233; sur &lt;a href='http://www.jsmansart.com'&gt;Jean-S&#233;bastien
 Mansart .com&lt;/a&gt; | &lt;a href='http://www.jsmansart.com/post/Plone-et-LDAP-mode-demploi'&gt;Lien direct vers l'article&lt;/a&gt; | Si vous lisez cet article dans son int&#233;gralit&#233; sur un autre site que
&lt;a href='http://www.jsmansart.com'&gt;Jean-S&#233;bastien Mansart .com&lt;/a&gt; c'est qu'il a &#233;t&#233; reproduit ill&#233;galement et sans autorisation. Merci de le sig
naler &#224; son auteur original &lt;a href='mailto:jean-sebastien.mansart@laposte.net'&gt;en cliquant ici&lt;/a&gt; | &amp;copy; jsmansart.com.&lt;/small&gt;
    </description>
    
    
    
      </item>
    
</channel>
</rss>
