Projet esup-ecm

Recherche

Sommaire

Pages enfant
  • Configuration de CAS LDAP

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Bloc de code
<?xml version="1.0"?>
<component name="org.esup.ecm.directory.ldap.storage.users">

  <require>org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory</require>
  <require>org.nuxeo.ecm.directory.sql.storage</require>

   <!-- configuration de la connexion : definition du serveur -->
  <extension target="org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory" point="servers">
    <server name="default">

      <!-- url du serveur -->
      <ldapUrl>ldap://ldap.my-univ.fr:389</ldapUrl>

      <!-- replicas eventuel pour tolerance de panne -->
      <!-- <ldapUrl>ldap://ldap2?my-univ.fr:389</ldapUrl> -->

      <!--utilisateur et mot de passe en cas de bind non anonyme -->
      <bindDn>cn=binduser,ou=admin,dc=my-univ,dc=fr</bindDn>
      <bindPassword>verySecret</bindPassword>

    </server>

 </extension>

 <extension target="org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory" point="directories">

    <!-- configuration du repertoire utilisateur, modifications par rapport aux versions 5.4.1 et anterieures de nuxeo -->
    <directory name="userLdapDirectory">

     <!-- on s'appuie sur la connexion qu'on vient de définir -->
     <server>default</server>

     <!-- schema nuxeo utilisé : par defaut user -->
     <schema>user</schema>

      <!-- identifiant/mdp des personnes (dans nuxeo) -->
      <idField>username</idField>
      <passwordField>password</passwordField>

      <!-- branche ldap dans laquelle sont situes les utilisateurs -->
      <searchBaseDn>ou=people,dc=my-univ,dc=fr</searchBaseDn>

      <!-- ObjectClass a rechercher => ajouté au filtre de recherche -->
      <searchClass>person</searchClass>

      <!-- filtre de recherche personnalisé (ajouté au filtre par défaut) -->
      <searchFilter>(&amp;(!(eduPersonAffiliation=affiliate))(status=valide))</searchFilter>

      <!-- Portee de la recherche -->
      <searchScope>onelevel</searchScope>

      <!-- Type de recherches possibles :
               subinitial : toto => recherche sur toto*
               subfinal : toto => recherche sur *toto
               subany : toto => recherche sur *toto*
           Par defaut la recherche est en subinitial -->
      <substringMatchType>subinitial</substringMatchType>

     <!-- Si False avec un binddn ayant des acces en ecriture sur l'annuaire, proposera
      d'ajouter des utilisateurs dans l'annuaire -->
      <readOnly>true</readOnly>

     <!-- cache timeout en secondes -->
     <cacheTimeout>3600</cacheTimeout>

     <!-- nombre maximal d'entrees en cache -->
      <cacheMaxSize>1000</cacheMaxSize>

    <!-- utilisé pour éventuellement creer des utilisateurs depuis nuxeo ... -->
      <creationBaseDn>ou=people,dc=my-univ,dc=fr</creationBaseDn>
      <creationClass>top</creationClass>
      <creationClass>person</creationClass>
      <creationClass>organizationalPerson</creationClass>
      <creationClass>inetOrgPerson</creationClass>
      <rdnAttribute>uid</rdnAttribute>

    <!--Mapping entre le nom des champs dans le schema user de nuxeo et les attributs de l'annuaire -->
      <fieldMapping name="username">uid</fieldMapping>
      <fieldMapping name="firstName">givenName</fieldMapping>
      <fieldMapping name="lastName">sn</fieldMapping>
      <fieldMapping name="company">supannetablissement</fieldMapping>
      <fieldMapping name="email">mail</fieldMapping>

   <!-- reference aux groupes, cf. default-ldap-groups-directory-bundle.xml -->
      <references>
       <inverseReference field="groups" directory="groupLdapDirectory"  dualReferenceField="members" />
      </references>
    </directory>
  </extension>
</component>
Remarque

Afin d'accélérer les requêtes LDAP ( et donc la première connexion à Nuxeo ), il est conseillé d'utiliser directement l'administrateur pour se connecter à l'annuaire ( <bindDn> ) et non un utilisateur avec droits restreints : ceci évite d'avoir à évaluer les ACLs lors des requêtes.

Paramétrage de l'annuaire pour les groupes

...