Pré-requis :


Les paquets suivant sont nécessaires :
  •     Apache2-prefork-dev - minimum 2.2.3
  •     OpenSSL - minimum 0.9.8c

Installation du module :


Récupérer les sources :
wget https://www.ja-sig.org/svn/cas-clients/mod_auth_cas/trunk/src/mod_auth_cas.c
wget https://www.ja-sig.org/svn/cas-clients/mod_auth_cas/trunk/src/mod_auth_cas.h


Compiler le module :
apxs2 -i -c mod_auth_cas.c

La commande apxs2 est disponible en installant le package apache-dev “apache2-prefork-dev”.

Configuration d'Apache à la sauce Debian :S


Créez le fichier /etc/apache2/mods-available/auth_cas.load ayant pour contenu :
LoadModule auth_cas_module /usr/lib/apache2/modules/mod_auth_cas.so

Créez le fichier /etc/apache2/mods-available/auth_cas.conf ayant pour contenu :
<IfModule mod_auth_cas.c>
      CASValidateServer On
      CASCertificatePath /etc/apache2/ssl/cas.pem
      CASCookiePath /var/cache/apache2/auth_cas/
      CASLoginURL https://idp.inra.fr/cas/login
      CASValidateURL https://idp.inra.fr/cas/serviceValidate
      CASProxyValidateURL https://idp.inra.fr/cas/proxyValidate
</IfModule>

Créez le fichier CASCertificatePath contenant la chaine de certificat du serveur CAS.

Créer le répertoire CASCookiePath et a modifier le propriétaire :
mkdir /var/cache/apache2/auth_cas/
chown www-data:www-data /var/cache/apache2/auth_cas/


Options supplémentaires qui peuvent être intéressantes :
  •     CASTimeout 7200 (Durée d'une session, par défaut 2h)
  •     CASIdleTimeout 3600 (Durée d'inactivité avant logout, par défaut 1h)

Activez le module :
a2enmod auth_cas

Testez la configuration apache :
apache2 -t

Relancez apache :
apache2 -k restart

Configuration du VirtualHost :


Autoriser tous les utilisateurs authentifiés :
<VirtualHost *:443>
    ...
   <Directory />
       ...
       AuthType Cas
       Require valid-user
   </Directory>
</VirtualHost>


Autoriser une liste d'utilisateurs authentifiés :
AuthType Cas
Require user toto titi tata


Utiliser un fichier de groupe :
AuthType Cas
AuthGroupFile /etc/apache2/groups.conf
Require group toto


Pour info, le fichier de groupe a la syntaxe suivante :
<nom_groupe>: <uid1> <uid2> ...

Références :


http://www.ja-sig.org/wiki/display/CASC/mod_auth_cas
https://www.ja-sig.org/svn/cas-clients/mod_auth_cas/trunk/README