Recherche
Ajout dans nxserver/config de ce ldap-config.xml (le suffixe -config.xml est important pour que le fichier soit pris en compte) :
<component name="sample.ldap.config"> <require>org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory</require> <require>org.nuxeo.ecm.directory.sql.storage</require> <extension target="org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory" point="servers"> <server name="default"> <ldapUrl>ldap://srv.univ.fr:389</ldapUrl> </server> </extension> <extension target="org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory" point="directories"> <directory name="userDirectory"> <server>default</server> <schema>user</schema> <idField>username</idField> <passwordField>password</passwordField> <searchBaseDn>ou=people,dc=univ,dc=fr</searchBaseDn> <searchClass>person</searchClass> <searchScope>onelevel</searchScope> <readOnly>true</readOnly> <cacheTimeout>3600</cacheTimeout> <cacheMaxSize>100000</cacheMaxSize> <creationBaseDn>ou=people,dc=univ,dc=fr</creationBaseDn> <creationClass>top</creationClass> <creationClass>person</creationClass> <creationClass>organizationalPerson</creationClass> <creationClass>inetOrgPerson</creationClass> <rdnAttribute>uid</rdnAttribute> <fieldMapping name="username">eduPersonPrincipalName</fieldMapping> <fieldMapping name="firstName">givenName</fieldMapping> <fieldMapping name="lastName">sn</fieldMapping> <fieldMapping name="company">supannetablissement</fieldMapping> <fieldMapping name="email">mail</fieldMapping> <references> <inverseReference field="groups" directory="groupDirectory" dualReferenceField="members" /> </references> </directory> </extension> <extension target="org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory" point="directories"> <directory name="groupDirectory"> <server>default</server> <schema>group</schema> <idField>groupname</idField> <searchBaseDn>ou=groups,dc=univ,dc=fr</searchBaseDn> <searchFilter>(|(objectClass=groupOfNames)(objectClass=groupOfURLs))</searchFilter> <searchScope>subtree</searchScope> <readOnly>true</readOnly> <cacheTimeout>3600</cacheTimeout> <cacheMaxSize>10000</cacheMaxSize> <querySizeLimit>10000</querySizeLimit> <creationBaseDn>ou=groups,dc=univ,dc=fr</creationBaseDn> <creationClass>top</creationClass> <creationClass>groupOfUniqueNames</creationClass> <rdnAttribute>cn</rdnAttribute> <fieldMapping name="groupname">cn</fieldMapping> <references> <ldapReference field="members" directory="userDirectory" forceDnConsistencyCheck="false" staticAttributeId="member" dynamicAttributeId="memberURL" /> <ldapReference field="subGroups" directory="groupDirectory" forceDnConsistencyCheck="false" staticAttributeId="uniqueMember" dynamicAttributeId="memberURL" /> <inverseReference field="parentGroups" directory="groupDirectory" dualReferenceField="subGroups" /> </references> </directory> </extension> </component>
<fieldMapping name="username">eduPersonPrincipalName</fieldMapping> doit être en phase avec la configuration de l'authentification Shibla balise querySizeLimit doit avoir une valeur suffisamment (200 étant la valeur par défaut) grande pour contenir tous les groupes LDAP. Si la valeur est trop faible les groupes LDAP ne seront jamais vus dans l'IHM Nuxeo de positionnement des droits.
Dans l'IHM de gestion des utilisateurs et des groupes je vois maintenant les groupes LDAP rattachés à un utilisateur mais j'ai aussi un groupe shib avec "currentUser.user.username == 'bourges@univ-rennes1.fr'" et je ne le vois pas dans les groupes du user 'bourges@univ-rennes1.fr'
Au moment de positionner une ACL sur une ressource on voit l'arbo des groupes shib. Le CdC précise que l'on doit trouver une branche permettant de sélectionner les groupes LDAP en plus de la branche Shib qui est, elle, bien affichée.
Une fois que LDAP est branché on ne peut plus modifier et/ou ajouter des groupes Shib dans l'IHM de gestion des utilisateurs et des groupes.
Visiblement vient du fait que l'on a <readOnly>true</readOnly> dans la conf LDAP et que ça a une répercussion sur la gestion de groupes Shib ce qui est anormal