Je remet une couche sur la CASsification d’application web mais cette fois sur la distribution Debian. L’installation sur Debian diffère légèrement par rapport à mon article où je l’installe sur une RedHat. La configuration est, quand a elle, exactement la même.
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.exemple.fr/cas/login
CASValidateURL https://idp.exemple.fr/cas/serviceValidate
CASProxyValidateURL https://idp.exemple.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> ...