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.

...

Avoir un serveur CAS et un annuaire fonctionnels ...

Paramétrage de CAS :

Récupération du plugin CAS d'esup (il s'agit de la dernière version du plugin de Nuxeo corrigé pour pouvoir utiliser CAS en mode proxy) :

...

Bloc de code
<?xml version="1.0"?>
<component name="org.esup.ecm.login">

<!-- certains composants doivent être chargés avant que ce fichier soit lu car ils contiennent des points d'extension sur l'authentification -->
<require>org.nuxeo.ecm.platform.ui.web.auth.defaultConfig</require>
<require>org.nuxeo.ecm.platform.ui.web.auth.WebEngineConfig</require>
<require>org.nuxeo.ecm.platform.login.Cas2SSO</require>
<require>org.nuxeo.opensocial.OAuthFilter</require>

<extension target="org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService" point="authenticators">
 <authenticationPlugin name="CAS2_AUTH">
    <loginModulePlugin>Trusting_LM</loginModulePlugin>
    <needStartingURLSaving>true</needStartingURLSaving>
    <parameters>
         <!-- variable contenant le ticket dans l'url -->
        <parameter name="ticketKey">ticket</parameter>
         <!-- si utilisation du mode proxy -->
        <parameter name="proxyKey">ticket</parameter>

         <parameter name="appURL">https://nuxeo.my-univ.fr/nuxeo/nxstartup.faces</parameter>
          <!-- URL de login du serveur CAS -->
         <parameter name="serviceLoginURL">https://sso.my-univ.fr/login</parameter>
          <!-- URL de validation du ticket du serveur CAS -->          <parameter name="serviceValidateURL">https://sso.my-univ.fr/serviceValidate</parameter>
          <!-- Si utilisation de CAS en mode proxy -->
          <parameter name="proxyValidateURL">https://sso.my-univ.fr/proxyValidate</parameter>
          <!-- variable contenant le nom du service dans l'URL -->
          <parameter name="serviceKey">service</parameter>
           <!-- URL de logout de CAS -->
          <parameter name="logoutURL">https://sso.my-univ.fr/logout?service=http://nuxeo.my-univ.fr/nuxeo/</parameter>
     </parameters>
   </authenticationPlugin>

   <authenticationPlugin name="ANONYMOUS_AUTH_FOR_CAS2" enabled="true" class="org.nuxeo.ecm.platform.ui.web.auth.cas2.AnonymousAuthenticatorForCAS2" >
        <loginModulePlugin>Trusting_LM</loginModulePlugin>
   </authenticationPlugin>
</extension>

<!-- chainage de l'authentification : on garde une authentification de type BASIC pour les accès particuliers (RSS/cmis/contentAutomation)-->
<extension target="org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService"
        point="chain">
        <authenticationChain>
            <plugins>
                <plugin>BASIC_AUTH</plugin>
                <plugin>CAS2_AUTH</plugin>
                <plugin>ANONYMOUS_AUTH_FOR_CAS2</plugin>
            </plugins>
        </authenticationChain>
</extension>
</component>

Configuration d'un annuaire LDAP

...

1. Définition de l'annuaire et paramétrage des recherche pour les utilisateurs

...

Editer le fichier custom/config/default-ldap-users-directory-bundle.xml comme suit avec vos propres paramètres :

Bloc de code
<?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 -->
    <directory name="userDirectory">
     <!-- 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ée de la recherche -->
      <searchScope>onelevel</searchScope>
     <!-- Si False avec un binddn ayant des accès 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ée en cache -->
      <cacheMaxSize>1000</cacheMaxSize>
    <!-- utilisé pour éventuellement créer 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="groupDirectory"  dualReferenceField="members" />
      </references>
    </directory>
  </extension>
</component>

...

2. Paramétrage de l'annuaire pour les groupes

...

Editer le fichier custom/config/default-ldap-groups-directory-bundle.xml comme suit avec vos propres paramètres :

...