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.
Commentaire: Migrated to Confluence 5.3
Sommaire

Pré-requis

Avoir procédé à l'installation minimale de Nuxeo.

Avoir un serveur CAS et un annuaire fonctionnels.

Paramétrage de CAS

...

Récupération du plugin

Nuxeo fournit un plugin d'atuhentification CAS que vous pouvez récupérer ici : https://maven.nuxeo.org/nexus/index.html#nexus-search;quick~nuxeo-platform-login-cas2

Remarque

Si vous souhaitez utiliser les fonctionnalités du mode Proxy de CAS, le plugin original vous retournera probablement une erreur. Nous proposons une version patchée de ce plugin que vous pourrez trouver ici.

Copiez le ensuite dans votre dossier templates/custom/bundles (se  référer à la documentation sur l'utilisation des templates au besoin). Vous pouvez également choisir de créer un template spécifique "cas" pour y stocker le jar et le point d'extension associé.

...

Bloc de code
<?xml version="1.0"?><component>
<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

...