Projet esup-ecm

Recherche

Sommaire

Pages enfant
  • Configuration de CAS LDAP dans Nuxeo 5.4.2

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
langxml
<?xml version="1.0"?>
<component name="org.nuxeo.ecm.directory.ldap.storage.users">
  <implementation />
  <implementation />
  <require>org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory</require>
  <require>org.nuxeo.ecm.directory.sql.storage</require>
   <!-- configuration de la connexion -->
  <extension target="org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory" point="servers">
    <server name="default">
      <ldapUrl>ldap://ldap.my-univ.fr:389</ldapUrl>
      <!-- Optional servers from the same cluster for failover and load balancing -->
      <!-- <ldapUrl>ldap://server2:389</ldapUrl> -->
      <!--User to bind with-->
      <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, modification par rapport aux versions precedente de nuxeo -->
    <directory name="userDirectoryuserLdapDirectory">
     <!-- on s'appuie sur la connexion qu'on vient de définir -->
     <server>default</server>
     <!-- schema nuxeo utilisé : user -->
     <schema>user</schema>
      <!-- identifiant/mdp des personnes (dans nuxeo) -->
      <idField>username</idField>
      <passwordField>password</passwordField>
      <!-- branche dans laquelle sont situés les utilisateurs -->
      <searchBaseDn>ou=people,dc=my-univ,dc=fr</searchBaseDn>
      <!-- ObjectClass à rechercher => ajouté au filtre de recherche -->
      <searchClass>person</searchClass>
      <!-- filtre de recherche personnalisé (ajouté au filter par défaut) -->
      <searchFilter>(&amp;(!(eduPersonAffiliation=affiliate))(status=valide))</searchFilter>
      <!-- POrtéePortee de la recherche -->
      <searchScope>onelevel</searchScope>
     <!-- Si False avec un binddn ayant des accèsacces 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'entréeentrees en cache -->
      <cacheMaxSize>1000</cacheMaxSize>
    <!-- utilisé pour éventuellement créercreer 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="groupDirectorygroupLdapDirectory"  dualReferenceField="members" />
      </references>
    </directory>
  </extension>
</component>

...

Bloc de code
langxml
<?xml version="1.0"?>
<component name="org.nuxeo.ecm.directory.ldap.storage.groups">
  <implementation />
  <implementation />
  <require>org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory</require>
  <require>org.nuxeo.ecm.directory.ldap.storage.users</require>
  <extension target="org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory" point="directories">
    <directory name="groupDirectorygroupLdapDirectory">

      <!-- On utilise la connexion que l'on a définie dans default-ldap-users-bundle.xml -->
      <server>default</server>

       <!-- schema correspondant dans nuxeo, et identifiant des groupes (dans nuxeo pas dans l'annuaire !) -->
      <schema>group</schema>
      <idField>groupname</idField>

       <!-- branche dans laquelle sont les groupes -->
      <searchBaseDn>ou=groups,dc=my-univ,dc=fr</searchBaseDn>
       <!-- filtre de recherche -->
      <searchFilter>(objectClass=groupOfNames)</searchFilter>
      <!-- portee de la recherche -->
      <searchScope>subtree</searchScope>

      <!--
       Trois types de recherches possibles :
       subinitial: suffixe votre recherche par * ex : test donnera test*
       subfinal  : prefixe votre recherche par * ex : test donnera *test
       subany    : prefixe et suffixe automatiquement votre recherche par * ex: test donnera *test*
      --> 
      <substringMatchType>subany</substringMatchType>

      <!-- si readOnly a false et connexion a l'annuaire avec des droits d'écriture, possibilité de
       création de groupes dans l'annuaire depuis nuxeo -->
      <readOnly>true</readOnly>

      <!-- cache en seconde -->
      <cacheTimeout>3600</cacheTimeout>

      <!-- nombre maximal d'entréesentrees à mettre  en cache -->
      <cacheMaxSize>1000</cacheMaxSize>

      <!-- utilisé si création de groupes dans l'annuaire depuis nuxeo -->
      <creationBaseDn>ou=grouper,dc=u-bordeaux1,dc=fr</creationBaseDn>
      <creationClass>top</creationClass>
      <creationClass>groupOfUniqueNames</creationClass>
      <rdnAttribute>cn</rdnAttribute>

      <!-- mapping entre les attributs du schema groupe dans nuxeo et les attributs ldap -->
      <fieldMapping name="groupname">cn</fieldMapping>
       <!-- <fieldMapping name="description">description</fieldMapping>-->
      <references>
        <!-- LDAP reference resolve DNs embedded in uniqueMember attributes
          If the target directory has no specific filtering policy, it is most
          of the time not necessary to enable the 'forceDnConsistencyCheck' policy.
          Enabling this option will fetch each reference entry to ensure its
          existence in the target directory.
        -->
        <ldapReference field="members" directory="userDirectoryuserLdapDirectory"
          forceDnConsistencyCheck="false"
          staticAttributeId="member"
          dynamicAttributeId="memberURL" />
        <ldapReference field="subGroups" directory="groupDirectorygroupLdapDirectory"
          forceDnConsistencyCheck="false"
          staticAttributeId="member"
          dynamicAttributeId="memberURL" />
        <inverseReference field="parentGroups"
          directory="groupDirectorygroupLdapDirectory" dualReferenceField="subGroups" />
      </references>
    </directory>
  </extension>
</component>

...

Bloc de code
langxml
<?xml version="1.0"?>
<component name="org.nuxeo.ecm.platform.usermanager.VirtualGroups">
  <require>org.nuxeo.ecm.platform.usermanager.UserManagerImpl</require>
  <extension target="org.nuxeo.ecm.platform.usermanager.UserService" point="userManager">
    <userManager>
       <users>
     <!-- Changement par rapport aux versions precedentes de nuxeo -->
      <directory>userLdapDirectory</directory>
      <!-- configure l'utilisateur anonyme -->
            <anonymousUser id="invite">
                <property name="firstName">Invite</property>
                <property name="lastName">Anonyme</property>
            </anonymousUser>
        </users>
     <!-- a ajouter depuis 5.4.2 -->
      <groups>
        <directory>groupLdapDirectory</directory>
      </groups>
      <!-- uid ldap de l'administrateur -->
      <defaultAdministratorId>jeo</defaultAdministratorId>
      <!-- cn du groupe d'administrateurs -->
      <administratorsGroup>adminGroups</administratorsGroup>
      <defaultGroup>members</defaultGroup>
    </userManager>
  </extension>
</component>

...