{"id":302,"date":"2019-10-22T07:09:42","date_gmt":"2019-10-22T05:09:42","guid":{"rendered":"https:\/\/homepages.lcc-toulouse.fr\/colombet\/?p=302"},"modified":"2025-11-24T20:47:23","modified_gmt":"2025-11-24T19:47:23","slug":"samba-synchroniser-un-annuaire-openldap-depuis-ad","status":"publish","type":"post","link":"https:\/\/homepages.lcc-toulouse.fr\/colombet\/samba-synchroniser-un-annuaire-openldap-depuis-ad\/","title":{"rendered":"samba &#8211; synchroniser OpenLDAP depuis AD avec LSC"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/homepages.lcc-toulouse.fr\/colombet\/wp-content\/uploads\/sites\/2\/2019\/10\/lsc_logo.png\" alt=\"lsc_logo\" \/><\/p>\n<p><strong>LDAP Synchronization Connector<\/strong> (LSC) est un connecteur libre permettant de synchroniser les identit\u00e9s entre un annuaire LDAP et n&rsquo;importe quelle source de donn\u00e9es, y compris toute base de donn\u00e9es avec un connecteur JDBC, un autre serveur LDAP, des fichiers plats &#8230;  Depuis debian 9, lsc est disponible en 2.1.4 via apt-get install lsc. La documentation est disponible : <a href=\"https:\/\/lsc-project.org\/\">https:\/\/lsc-project.org\/<\/a><br \/>\n<!--more--><\/p>\n<pre><code class=\"language-plain_text\"># more \/etc\/apt\/sources.list.d\/lsc-project.list\ndeb     http:\/\/lsc-project.org\/debian lsc main\ndeb-src http:\/\/lsc-project.org\/debian lsc main\n\n# wget -O - http:\/\/ltb-project.org\/wiki\/lib\/RPM-GPG-KEY-LTB-project | sudo apt-key add -\n\n# apt-get update\n\n# apt-get install lsc\n\n# lsc\n2019\/10\/22 18:35:56 [lsc] No java executable found on PATH or in JAVA_HOME! Aborting.\n2019\/10\/22 18:35:56 [lsc] Define JAVA_HOME or adjust your PATH variable to include java.\n\n# apt-get install openjdk-8-jre\n<\/code><\/pre>\n<p>Comment utiliser la commande<\/p>\n<pre><code class=\"language-plain_text\"># lsc\nusage: lsc\n -a,--asynchronous-synchronize &lt;arg&gt;   Asynchronous synchronization task\n                                       (one of the available tasks or\n                                       'all')\n -c,--clean &lt;arg&gt;                      Cleaning type (one of the available\n                                       tasks or 'all')\n -f,--config &lt;arg&gt;                     Specify configuration directory\n -h,--help                             Get this text\n -i,--time-limit &lt;arg&gt;                 Time limit in parallel server mode\n                                       in seconds (default: 3600)\n -n,--dryrun                           Don't update the directory at all\n -nc,--nocreate                        Don't create any entry\n -nd,--nodelete                        Don't delete\n -nr,--nomodrdn                        Don't rename (MODRDN)\n -nu,--noupdate                        Don't update\n -s,--synchronize &lt;arg&gt;                Synchronization task (one of the\n                                       available tasks or 'all')\n -t,--threads &lt;arg&gt;                    Number of parallel threads to\n                                       synchronize a task (default: 5)\n -v,--validate                         Validate configuration (check\n                                       connections ...)\n -x,--convert                          Convert lsc.properties to lsc.xml\n                                       (-f is mandatory while converting)\n<\/code><\/pre>\n<p>Exemple de fichier lsc.xml<\/p>\n<pre><code class=\"language-plain_text\"># more \/etc\/lsc\/lsc.xml\n\n&lt;?xml version=&quot;1.0&quot; ?&gt;\n    &lt;lsc xmlns=&quot;http:\/\/lsc-project.org\/XSD\/lsc-core-2.1.xsd&quot; revision=&quot;0&quot;&gt;\n\n    &lt;!-- connections --&gt;\n      &lt;connections&gt;\n        &lt;ldapConnection&gt;\n          &lt;name&gt;ad-src-conn&lt;\/name&gt;\n          &lt;url&gt;ldap:\/\/xxx.xxx.xxx.xxx:389\/DC=formation,DC=fr&lt;\/url&gt;\n          &lt;username&gt;CN=Administrator,CN=Users,DC=formation,DC=fr&lt;\/username&gt;\n          &lt;password&gt;Pa$$w0rd&lt;\/password&gt;\n          &lt;authentication&gt;SIMPLE&lt;\/authentication&gt;\n          &lt;referral&gt;IGNORE&lt;\/referral&gt;\n          &lt;derefAliases&gt;NEVER&lt;\/derefAliases&gt;\n          &lt;version&gt;VERSION_3&lt;\/version&gt;\n          &lt;pageSize&gt;1000&lt;\/pageSize&gt;\n          &lt;factory&gt;com.sun.jndi.ldap.LdapCtxFactory&lt;\/factory&gt;\n          &lt;tlsActivated&gt;false&lt;\/tlsActivated&gt;\n        &lt;\/ldapConnection&gt;\n\n        &lt;ldapConnection&gt;\n          &lt;name&gt;ldap-dst-conn&lt;\/name&gt;\n          &lt;url&gt;ldap:\/\/localhost:389\/dc=formation,dc=fr&lt;\/url&gt;\n          &lt;username&gt;cn=admin,dc=formation,dc=fr&lt;\/username&gt;\n          &lt;password&gt;Pa$$w0rd&lt;\/password&gt;\n          &lt;authentication&gt;SIMPLE&lt;\/authentication&gt;\n          &lt;referral&gt;IGNORE&lt;\/referral&gt;\n          &lt;derefAliases&gt;NEVER&lt;\/derefAliases&gt;\n          &lt;version&gt;VERSION_3&lt;\/version&gt;\n          &lt;pageSize&gt;-1&lt;\/pageSize&gt;\n          &lt;factory&gt;com.sun.jndi.ldap.LdapCtxFactory&lt;\/factory&gt;\n          &lt;tlsActivated&gt;false&lt;\/tlsActivated&gt;\n        &lt;\/ldapConnection&gt;\n      &lt;\/connections&gt;\n\n    &lt;!-- tasks --&gt;\n      &lt;tasks&gt;\n        &lt;task&gt;\n          &lt;name&gt;ADSyncTask&lt;\/name&gt;\n          &lt;bean&gt;org.lsc.beans.SimpleBean&lt;\/bean&gt;\n\n          &lt;ldapSourceService&gt;\n            &lt;name&gt;ad-src-service&lt;\/name&gt;\n            &lt;connection reference=&quot;ad-src-conn&quot; \/&gt;\n            &lt;baseDn&gt;CN=Users,DC=formation,DC=fr&lt;\/baseDn&gt;\n            &lt;pivotAttributes&gt;\n              &lt;string&gt;sAMAccountName&lt;\/string&gt;\n            &lt;\/pivotAttributes&gt;\n            &lt;fetchedAttributes&gt;\n              &lt;string&gt;cn&lt;\/string&gt;\n              &lt;string&gt;sn&lt;\/string&gt;\n              &lt;string&gt;sAMAccountName&lt;\/string&gt;\n            &lt;\/fetchedAttributes&gt;\n            &lt;getAllFilter&gt;(&amp;amp;(objectClass=user)(!(sAMAccountName=Administrator))(!(sAMAccountName=Guest))(!(sAMAccountName=dns-dc1ad))(!(sAMAccountName=krbtgt)))&lt;\/getAllFilter&gt;\n            &lt;getOneFilter&gt;(&amp;amp;(objectClass=user)(sAMAccountName={sAMAccountName}))&lt;\/getOneFilter&gt;\n            &lt;cleanFilter&gt;(&amp;amp;(objectClass=user)(sAMAccountName={uid}))&lt;\/cleanFilter&gt;\n          &lt;\/ldapSourceService&gt;\n\n          &lt;ldapDestinationService&gt;\n            &lt;name&gt;ldap-dst-service&lt;\/name&gt;\n            &lt;connection reference=&quot;ldap-dst-conn&quot; \/&gt;\n            &lt;baseDn&gt;ou=users,dc=formation,dc=fr&lt;\/baseDn&gt;\n            &lt;pivotAttributes&gt;\n              &lt;string&gt;uid&lt;\/string&gt;\n            &lt;\/pivotAttributes&gt;\n            &lt;fetchedAttributes&gt;\n              &lt;string&gt;objectClass&lt;\/string&gt;\n              &lt;string&gt;cn&lt;\/string&gt;\n              &lt;string&gt;sn&lt;\/string&gt;\n              &lt;string&gt;uid&lt;\/string&gt;\n            &lt;\/fetchedAttributes&gt;\n            &lt;getAllFilter&gt;(objectClass=inetOrgPerson)&lt;\/getAllFilter&gt;\n        &lt;getOneFilter&gt;(&amp;amp;(objectClass=inetOrgPerson)(uid={sAMAccountName}))&lt;\/getOneFilter&gt;\n\n          &lt;\/ldapDestinationService&gt;\n\n          &lt;propertiesBasedSyncOptions&gt;\n            &lt;mainIdentifier&gt;&quot;uid=&quot; + srcBean.getDatasetFirstValueById(&quot;sAMAccountName&quot;) + &quot;,ou=users,dc=formation,dc=fr&quot;&lt;\/mainIdentifier&gt;\n            &lt;defaultDelimiter&gt;;&lt;\/defaultDelimiter&gt;\n            &lt;defaultPolicy&gt;FORCE&lt;\/defaultPolicy&gt;\n            &lt;conditions&gt;\n              &lt;create&gt;true&lt;\/create&gt;\n              &lt;update&gt;true&lt;\/update&gt;\n              &lt;delete&gt;true&lt;\/delete&gt;\n              &lt;changeId&gt;false&lt;\/changeId&gt;\n            &lt;\/conditions&gt;\n            &lt;dataset&gt;\n              &lt;name&gt;objectClass&lt;\/name&gt;\n              &lt;policy&gt;KEEP&lt;\/policy&gt;\n              &lt;defaultValues&gt;&lt;\/defaultValues&gt;\n              &lt;forceValues&gt;\n                &lt;string&gt;&quot;top&quot;&lt;\/string&gt;\n                &lt;string&gt;&quot;person&quot;&lt;\/string&gt;\n                &lt;string&gt;&quot;organizationalPerson&quot;&lt;\/string&gt;\n                &lt;string&gt;&quot;inetOrgPerson&quot;&lt;\/string&gt;\n                &lt;string&gt;&quot;extensibleObject&quot;&lt;\/string&gt;\n              &lt;\/forceValues&gt;\n            &lt;\/dataset&gt;\n            &lt;dataset&gt;\n              &lt;name&gt;uid&lt;\/name&gt;\n              &lt;policy&gt;KEEP&lt;\/policy&gt;\n              &lt;createValues&gt;\n                &lt;string&gt;srcBean.getDatasetFirstValueById(&quot;sAMAccountName&quot;)&lt;\/string&gt;\n             &lt;\/createValues&gt;\n            &lt;\/dataset&gt;\n\n          &lt;\/propertiesBasedSyncOptions&gt;\n        &lt;\/task&gt;\n      &lt;\/tasks&gt;\n    &lt;\/lsc&gt;\n<\/code><\/pre>\n<p>Lancer une synchronisation manuelle<\/p>\n<pre><code class=\"language-plain_text\"># \/usr\/bin\/lsc -c all -s all\n<\/code><\/pre>\n<h2><a id=\"r%C3%A9f%C3%A9rences\" class=\"anchor\" aria-hidden=\"true\"><span class=\"octicon octicon-link\"><\/span><\/a>R\u00e9f\u00e9rences<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.lsc-project.org\/documentation\/latest\/\">https:\/\/www.lsc-project.org\/documentation\/latest\/<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>LDAP Synchronization Connector (LSC) est un connecteur libre permettant de synchroniser les identit\u00e9s entre un annuaire LDAP et n&rsquo;importe quelle source de donn\u00e9es, y compris toute base de donn\u00e9es avec un connecteur JDBC, un autre serveur LDAP, des fichiers plats &#8230; Depuis debian 9, lsc est disponible en 2.1.4 via apt-get install lsc. La documentation [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[11,12],"tags":[9,20,27,29,30,28,4,8],"class_list":["post-302","post","type-post","status-publish","format-standard","hentry","category-linux","category-samba","tag-active-directory","tag-debian","tag-ldap","tag-lsc","tag-lsc-project","tag-openldap","tag-samba","tag-samba4"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/paBEVZ-4S","jetpack_likes_enabled":false,"_links":{"self":[{"href":"https:\/\/homepages.lcc-toulouse.fr\/colombet\/wp-json\/wp\/v2\/posts\/302","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/homepages.lcc-toulouse.fr\/colombet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/homepages.lcc-toulouse.fr\/colombet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/homepages.lcc-toulouse.fr\/colombet\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/homepages.lcc-toulouse.fr\/colombet\/wp-json\/wp\/v2\/comments?post=302"}],"version-history":[{"count":19,"href":"https:\/\/homepages.lcc-toulouse.fr\/colombet\/wp-json\/wp\/v2\/posts\/302\/revisions"}],"predecessor-version":[{"id":979,"href":"https:\/\/homepages.lcc-toulouse.fr\/colombet\/wp-json\/wp\/v2\/posts\/302\/revisions\/979"}],"wp:attachment":[{"href":"https:\/\/homepages.lcc-toulouse.fr\/colombet\/wp-json\/wp\/v2\/media?parent=302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/homepages.lcc-toulouse.fr\/colombet\/wp-json\/wp\/v2\/categories?post=302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/homepages.lcc-toulouse.fr\/colombet\/wp-json\/wp\/v2\/tags?post=302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}