Groupes Active Directory

Bonjour,

Je ne dois pas être très doué (et mon niveau en anglais ne m'aide pas bcp) mais je n'arrive pas à récupérer les groupes de mon Active Directory dans Nuxeo. L'importation des utilisateurs fonctionne correctement. J'ai créé un fichier default-ldap-groups-directory-bundle.xml à l'aide de https://github.com/nuxeo/nuxeo-services/blob/master/nuxeo-platform-directory/nuxeo-platform-directory-ldap/examples/default-ldap-groups-directory-bundle.xml que j'ai placé à coté de celui des utilisateurs.

J'ai rajouté les paramètres de connexion au ldap, l'ou contenant les groupes a récupérer… Et je ne vois pas du tout

<server name="default">
<ldapUrl>ldap://xx.xx.xx.xx:389</ldapUrl>
<bindDn>cn=xxx,cn=Users,dc=xx,dc=xx</bindDn>
<bindPassword>xxx</bindPassword>
</server>

<searchBaseDn>ou=Groupes,ou=xx,dc=xx,dc=xx</searchBaseDn>

<creationBaseDn>ou=Groupes,ou=xx,dc=xx,dc=xx</creationBaseDn>

Le reste est resté par défaut.

0 votes

1 answers

1654 views

ANSWER

Rien dans les logs? (soit au déploiement, soit à la recherche de groupes)
05/02/2013

Sur la page http://doc.nuxeo.com/display/ADMINDOC/Using+a+LDAP+directory#UsingaLDAPdirectory-Debuginformation, nous indiquons comment obtenir plus d'informations.
Avez-vous réussi à obtenir la liste des groupes via une requête LDAP indépendamment de Nuxeo (avec Apache Directory Studio par exemple).
05/02/2013

Bonjour, A l'aide d'Apache Directory Studio, quand je mets en filtre "(|(objectClass=groupOfUniqueNames)(objectClass=groupOfURLs))" il ne me sort pas de résultat. Mais quand je mets "objectClass= * * ", il me sort mes groupes, mais si je mets "objectClass=" dans mon fichier .xml, Nuxeo ne me ressort rien…

Je ne trouve rien non plus dans les logs… Malgré avoir rajouté plus d'information….

Faut faire deux fichiers xml (un pour les utilisateurs et un pour les groupes) ou il faut n'en faire qu'un seul ?

05/02/2013

Bonjour,

J'ai toujours le même problème, personne n'a de piste ?

05/06/2013

Le nombre de fichiers pour contribuer n'a pas d'importance mais c'est probablement plus facile à maintenir avec deux fichiers.

Pour vous aider, il faut absolument que vous arriviez à obtenir des logs en mode DEBUG, voire TRACE, depuis org.nuxeo.ecm.directory.ldap:

  • votre contribution est-elle lue et valide?
  • quelle est la requête lancée par Nuxeo?

Voici des exemples de logs que vous devez obtenir :

directory registered
server registered
initialized LDAP directory ... with fields ... and references ...
component activated
LDAPReference.addLinks ...
LDAPReference.getSourceIdsForTarget(...): LDAP search search base=... filter=... args=... scope=...
LDAPReference.getIdForDn(session, ...): LDAP get dn=... attribute ids to collect=...
LDAPReference.getLdapTargetIds(...): LDAP search dn=... filter=... scope=...
LDAPReference.removeLinksForSource(...): LDAP modifyAttributes key=... mod_op=&apos;REPLACE_ATTRIBUTE&apos; attrs=...
LDAPSession.createEntry(...): LDAP bind dn=... attrs=...
etc.
05/06/2013

Bonjour,

J'ai bien rajouter ce qui suit dans le fichier Log4J.

&lt;category name=&quot;org.nuxeo.ecm.directory&quot;&gt;
 &lt;priority value=&quot;DEBUG&quot; /&gt;
&lt;/category&gt;
&lt;category name=&quot;org.nuxeo.runtime.model.impl&quot;&gt;
  &lt;priority value=&quot;INFO&quot; /&gt;
&lt;/category&gt;

Et dans les logs j'ai ceci :

2013-05-02 16:35:54,202 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPDirectory] initialized LDAP directory groupLdapDirectory with fields [parentGroups, grouplabel, description, groupname, subGroups, members] and references [parentGroups, children, subGroups, directChildren, members]

Et juste après, j'ai des tas de lignes qui se ressemble :

2013-05-02 16:35:54,214 DEBUG [org.nuxeo.ecm.directory.sql.SQLHelper] setting up table &apos;subject&apos;, policy=&apos;on_missing_columns&apos;
2013-05-02 16:35:54,215 DEBUG [org.nuxeo.ecm.directory.sql.SQLHelper] checking if table subject exists: true
2013-05-02 16:35:54,218 DEBUG [org.nuxeo.ecm.directory.sql.SQLHelper] all fields matched for table &apos;subject&apos;
2013-05-02 16:35:54,218 DEBUG [org.nuxeo.ecm.directory.sql.SQLHelper] policy=&apos;on_missing_columns&apos; and all column matched, skipping sql setup script

Avec subject qui est remplacé par users, locale, etc … Puis :

2013-05-02 16:35:57,931 INFO  [org.nuxeo.runtime.osgi.OSGiRuntimeService] Nuxeo EP Started
05/06/2013

Et lors de la recherche d'un groupe depuis l'admin center ? Cette action devrait générer une requête LDAP.
05/06/2013

Alors, j'ai ceci dans les logs :

2013-05-06 14:15:03,031 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPSession] LDAPSession.getLdapEntry(slecom, false): LDAP search base=&apos;ou=Utilisateurs,ou=xxx,dc=xxx,dc=local&apos; filter=&apos;(&amp;(sAMAccountName={0})(&amp;(objectClass=user)(sAMAccountName=*)))&apos;  args=&apos;slecom&apos; scope=&apos;2&apos; [LDAPSession &apos;8774201157288460306&apos; for directory userDirectory]
2013-05-06 14:15:03,038 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPSession] LDAPSession.getLdapEntry(slecom, false): LDAP search base=&apos;ou=Utilisateurs,ou=xxx,dc=xxx,dc=local&apos; filter=&apos;(&amp;(sAMAccountName={0})(&amp;(objectClass=user)(sAMAccountName=*)))&apos;  args=&apos;slecom&apos; scope=&apos;2&apos; =&gt; found: CN=xx,OU=xx,OU=Utilisateurs,OU=xxx,DC=xxx,DC=local [LDAPSession &apos;8774201157288460306&apos; for directory userDirectory]
2013-05-06 14:15:03,038 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPSession] LDAP bind dn=&apos;CN=xxx,OU=xxx,OU=Utilisateurs,OU=xxx,DC=xxx,DC=local&apos;
2013-05-06 14:15:03,053 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPSession] Bind succeeded, authentication ok
2013-05-06 14:15:03,114 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPSession] LDAPSession.getLdapEntry(slecom, false): LDAP search base=&apos;ou=Utilisateurs,ou=xxx,dc=xxx,dc=local&apos; filter=&apos;(&amp;(sAMAccountName={0})(&amp;(objectClass=user)(sAMAccountName=*)))&apos;  args=&apos;slecom&apos; scope=&apos;2&apos; [LDAPSession &apos;8774201513770745876&apos; for directory userDirectory]
2013-05-06 14:15:03,119 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPSession] LDAPSession.getLdapEntry(slecom, false): LDAP search base=&apos;ou=Utilisateurs,ou=xxx,dc=xxx,dc=local&apos; filter=&apos;(&amp;(sAMAccountName={0})(&amp;(objectClass=user)(sAMAccountName=*)))&apos;  args=&apos;slecom&apos; scope=&apos;2&apos; =&gt; found: CN=xxx,OU=xxx,OU=Utilisateurs,OU=xxx,DC=xxx,DC=local [LDAPSession &apos;8774201513770745876&apos; for directory userDirectory]
2013-05-06 14:15:03,119 DEBUG [org.nuxeo.ecm.directory.sql.SQLHelper] setting up table &apos;user2group&apos;, policy=&apos;on_missing_columns&apos;
2013-05-06 14:15:03,121 DEBUG [org.nuxeo.ecm.directory.sql.SQLHelper] checking if table user2group exists: true
2013-05-06 14:15:03,128 DEBUG [org.nuxeo.ecm.directory.sql.SQLHelper] all fields matched for table &apos;user2group&apos;
2013-05-06 14:15:03,128 DEBUG [org.nuxeo.ecm.directory.sql.SQLHelper] policy=&apos;on_missing_columns&apos; and all column matched, skipping sql setup script
2013-05-06 14:15:03,156 DEBUG [org.nuxeo.ecm.directory.sql.SQLHelper] setting up table &apos;group2group&apos;, policy=&apos;on_missing_columns&apos;
2013-05-06 14:15:03,159 DEBUG [org.nuxeo.ecm.directory.sql.SQLHelper] checking if table group2group exists: true
2013-05-06 14:15:03,164 DEBUG [org.nuxeo.ecm.directory.sql.SQLHelper] all fields matched for table &apos;group2group&apos;
2013-05-06 14:15:03,164 DEBUG [org.nuxeo.ecm.directory.sql.SQLHelper] policy=&apos;on_missing_columns&apos; and all column matched, skipping sql setup script
2013-05-06 14:15:04,987 INFO  [org.apache.commons.httpclient.HttpMethodBase] Response content length is not known
2013-05-06 14:15:06,833 INFO  [org.apache.commons.httpclient.HttpMethodBase] Response content length is not known
2013-05-06 14:15:08,999 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPSession] LDAPSession.getLdapEntry(Administrator, false): LDAP search base=&apos;ou=Utilisateurs,ou=xxx,dc=xxx,dc=local&apos; filter=&apos;(&amp;(sAMAccountName={0})(&amp;(objectClass=user)(sAMAccountName=*)))&apos;  args=&apos;Administrator&apos; scope=&apos;2&apos; [LDAPSession &apos;8774226789653282850&apos; for directory userDirectory]
2013-05-06 14:15:09,023 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPSession] Entry not found: Administrator

Mais rien de plus n'apparait quand je fais une recherche sur les groupes (recherche avec * ou avec le nom d'un groupe normalement existant dans l'AD)

05/06/2013

Quand je recherche un utilisateur, j'ai bien le log qui s'affiche, mais ce n'est pas le cas dans la recherche d'un groupe.
05/06/2013

Je viens de voir que dans le fichier présent ici : https://github.com/nuxeo/nuxeo-services/blob/master/nuxeo-platform-directory/nuxeo-platform-directory-ldap/examples/default-ldap-users-directory-bundle.xml il y a cette configuration là :

&lt;references&gt;

        &lt;inverseReference field=&quot;groups&quot; directory=&quot;groupLdapDirectory&quot;
          dualReferenceField=&quot;members&quot; /&gt;

&lt;/references&gt;

Et dans celui là : http://doc.nuxeo.com/display/ADMINDOC/Using+a+LDAP+directory#UsingaLDAPdirectory-Debuginformation, il y a ceci :

&lt;references&gt;
        &lt;inverseReference field=&quot;groups&quot; directory=&quot;groupDirectory&quot;
          dualReferenceField=&quot;members&quot; /&gt;
&lt;/references&gt;

Lorsque je mets <i>directory="groupLdapDirectory"</i> je ne me pas me connecter à Nuxeo <i>Connexion impossible à la base d'authentification </i>. Et quand je mets <i>directory="groupDirectory"</i> , je me connecte, mais je n'ai pas mes groupes dans Nuxeo… Je ne sais pas si c'est une bonne piste, je cherche…

05/06/2013



La référence doit être cohérente avec la déclaration du directory référencé.

Si vous avez déclaré <directory name="groupDirectory">, alors il faut référencer groupDirectory. Et réciproquement.

0 votes



Effectivement, après avoir fait du ménage dans mes fichiers .xml, j'arrive bien à obtenir les groupes de mon AD ! Merci beaucoup ! Par contre, deux petites questions :

  1. J'ai bien les groupes, mais je ne récupères pas les membres des groupes, est ce normal ?

  2. Dans les groupes locaux, il y a un groupe "powerusers" et "administrators" que j'aurais aimé récupérer pour attribuer des droits à certaines personnes, mais je ne les vois pas, est normal ?

05/07/2013

Bonjour,

Pas idée pour mes deux questions ?

05/14/2013

De plus, je viens de m'apercevoir que je ne peux rien modifier dans mes groupes, lors que j'essaie, j'ai un message d'erreur ds le fichier log :

2013-05-14 11:38:32,518 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPSession] LDAPSession.updateEntry(DocumentModelImpl(Nom du Groupe, path=null, title=Nom du Groupe)): LDAP modifyAttributes dn=&apos;CN=Nom du Groupe,OU=Groupes,OU=XXX,DC=XXX,DC=local&apos; mod_op=&apos;REPLACE_ATTRIBUTE&apos; attr=&apos;{grouplabel=grouplabel: Test}&apos; [LDAPSession &apos;-6744193536373030782&apos; for directory groupLdapDirectory]
2013-05-14 11:38:32,533 ERROR [javax.enterprise.resource.webcontainer.jsf.application] org.nuxeo.ecm.directory.DirectoryException: updateEntry failed: [LDAP: error code 16 - 00000057: LdapErr: DSID-0C090B8A, comment: Error in attribute conversion operation, data 0, v1db1
05/14/2013

On s'éloigne du sujet initial, il vaudrait mieux poster des questions distinctes (de préférence en anglais) :)

  1. Pour les membres des groupes, c'est probablement encore de la configuration à affiner mais il y a aussi des contraintes sur la manière dont est gérée l'appartenance d'un membre à un groupe dans le LDAP.

  2. Je ne pense pas mais je laisserai d'autres personnes répondre à ma place. On est à cheval entre des problèmes techniques et des questions fonctionnelles.

Pour la dernière erreur, il faut faire un peu de recherche sur le net mais le message d'erreur (spécifique à votre LDAP) est plutôt explicite.

05/14/2013

Oui, c'est vrai qu'on s'éloigne de la question de base. Mais l'outil est vraiment bien, mais c'est vraiment un casse tête de le configurer, c'est dommage. Et de privilégié l'anglais peut freiner aussi bcp de gens, c'est dommage… Je vais me servir de google translate pour une autre question alors…
05/14/2013

Merci. Plus c'est souple et adaptable, plus la configuration devient complexe. C'est le cas du LDAP qui est peut-être le fichier de configuration le plus compliqué de Nuxeo, ou presque :)

L'anglais, c'est pour mieux capitaliser les réponses et faciliter la recherche de réponses.

05/14/2013

Merci aussi ! C'est rassurant, mais j'aurais peut être pas du m'attaquer au fichier de config le plus dure dès le début :/ Mais bon, j'en ai besoin de cette config LDAP
05/14/2013