SSO : CAS & LDAP pour Liferay + Alfresco

Un article de Bluexml.com.

Sommaire

Choix

Afin de pouvoir se connecter à la fois sur Alfresco & Liferay (ou d'autres applications) un système de SSO doit être mis en place. Pour cela l'adoption de CAS couplé avec LDAP semble approprier, LDAP est utilisable sur Alfresco & Liferay et les deux plateformes cibles ont également une implémentation de CAS.

D'autres système de SSO existe comme OpenId mais ne sont pas forcément aussi répondu que CAS.

Configuration de Liferay

LDAP

Avec les version 4.4 il est possible de configurer cela directement en ligne : exemple. Autrement un tutoriel est présent sur le wiki de Liferay : LDAP

CAS

  • Configurer Tomcat pour supporter le SSL. Aide

Décommenter (ou ajouter) ce connecteur dans le fichier server.xml :

   <Connector port="8443" maxHttpHeaderSize="8192"
   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
   enableLookups="false" disableUploadTimeout="true"
   acceptCount="100" scheme="https" secure="true"
   clientAuth="false" sslProtocol="TLS" />
  • Chercher le fichier "portal-ext.properties" et modifier la valeur de cette ligne :

auto.login.hooks=com.liferay.portal.auth.BasicAutoLogin,com.liferay.portal.auth.CASAutoLogin

  • Placer le CAS.war dans le répertoire de déploiement de liferay
  • Placer le fichier casclient.jar dans le dossier lib de liferay (ROOT/web-inf/lib). A télécharger ici.
  • Pour Liferay 4.2, modifier le fichier system-ext.properties pour y mettre :
   com.liferay.filters.sso.cas.CASFilter=true
  • Editer le fichier web.xml pour y ajouter un filtre (à modifier avec les bonnes adresses) :
   <filter>
       <filter-name>CAS Filter</filter-name>
       <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
       <init-param>
           <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
           <param-value>https://192.168.24.101:8443/cas/login</param-value>
       </init-param>
       <init-param>
           <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
           <param-value>https://192.168.24.101:8443/cas/proxyValidate</param-value>
       </init-param>
       <init-param>
           <param-name>edu.yale.its.tp.cas.client.filter.logout</param-name>
           <param-value>https://192.168.24.101:8443/cas/logout</param-value>
       </init-param>
       <init-param>
           <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
           <param-value>192.168.24.101</param-value>
       </init-param>
   </filter>
   <filter-mapping>
       <filter-name>CAS Filter</filter-name>
       <url-pattern>/c/portal/protected/*</url-pattern>
   </filter-mapping>

Une aide sur le wiki de liferay est disponible (et est détaillé) : Single SignOn - Integrating Liferay With CAS Server ou ici (4.3+)

Installation d'Alfresco dans Liferay

Attention aux versions utilisées. Un tutoriel compley existe sur le wiki d'Alfresco pour la version 2.1 d'Alfresco et la 4.3 de Liferay. Ces deux versions fonctionnent. En 2.9b impossible à installer mais sur le forum d'Alfresco certains indiquent qu'ils y sont arrivé.

Cependant il existe un bug Alfresco empêchant la connexion de Liferay dans Alfresco (en attente d'un patch).

Erreur

Image:ErrorAlfrescoLifray.JPG

Pour résoudre cette erreur il faut aller dans le répertoire C:\Documents and Settings\GMA\liferay\lucene\0 ou GMA est le compte utilisateur. Il faut supprimer le fichier write.lock


Image:ErrorAlfrescoLifray2.JPG

Il faut utiliser la commande jar cvf fichier.war *.* pour créer le fichier war

Configuration d'Alfresco

LDAP

TODO

CAS

TODO