Configuration du serveur CAS pour la diffusion des attributs LDAP

Rappel

GRR supporte l’authentification SSO avec CAS mais celui-ci est livré de base sans la librairie phpCAS qui permet de mettre en place ce mécanisme.

La première étape consiste donc à télécharger la librairie phpCAS à l'adresse suivante :

http://www.ja-sig.org/wiki/display/CASC/phpCAS

Il faut ensuite décompresser le contenu de l’archive dans un répertoire nommé « CAS » à l’intérieur du répertoire de l’application web GRR.

Par défaut, CAS n'envoie à GRR que le nom de l'utilisateur lors de la validation du ticket.

Afin de mettre en place la récupération dans GRR d'attributs des utilisateurs depuis l’annuaire LDAP, il est nécessaire de modifier le fichier \WEB-INF\deployerConfigContext.xml du serveur CAS.

Modification du bean attributeRepository

Dans le fichier deployerConfigContext.xml, repérer le bean « attributeRepository ». Ce bean indique à CAS tous les attributs qui devront être envoyés à GRR.

La modification consiste à ajouter les attributs que l’on souhaite récupérer.

Ci-dessous, par exemple on configure une récupération dans LDAP des attributs : sn, givenName, ENTPersonFonction, preferredLanguage et mail :

<bean id="attributeRepository" class="org.jasig.services.persondir.support.ldap.LdapPersonAttributeDao">
 ...
 <property name="ldapAttributesToPortalAttributes">
 <map>
 <entry key="sn" value="user_nom_ldap"/>
 <entry key="givenName" value="user_prenom_ldap" />
 <entry key="ENTPersonFonction" value="user_code_fonction_ldap" />
 <entry key="ENTPersonFonction" value="user_libelle_fonction_ldap" />
 <entry key="preferredLanguage" value="user_language_ldap" />
 <entry key="mail" value="user_mail_ldap" />
 ...
 </map>
 </property>
</bean>

Modification du bean serviceRegistryDao

Dans le fichier deployerConfigContext.xml, repérer le bean «serviceRegistryDao» et modifiez le pour qu'il ressemble à l'exemple ci-dessous (en l'adaptant à votre situation).

<bean id="serviceRegistryDao" class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl">
 <property name="registeredServices">
  <list>
  <bean class="org.jasig.cas.services.RegisteredServiceImpl"
 p:id="1"
 p:description="Acces GRR"
 p:serviceId="*://*.nom_du_site.fr/GRR/**"
 p:name="GRR"
 p:theme="default"
 p:allowedToProxy="true"
 p:enabled="true"
 p:ssoEnabled="true"
 p:anonymousAccess="false">
  <property name="allowedAttributes" value="uid,sn,givenName,mail,ENTPersonFonctions,prefererredLanguage" />
  </bean>
</list>
</property>
</bean>


Remarques : l’élément qui permet à CAS de faire la différence entre GRR et les autres applications est le serviceId, qui est un champ permettant d’expliquer à CAS quelle est la forme de l’url d’accès à l’application GRR ;

L’élément allowedAttribute permet d’énumérer tous les attributs qui devront être renvoyés par CAS pour cette application.