Ceci est une ancienne révision du document !
SSO CAS
Installation
L'installation est facilement réalisable à l'aide du packet cas-toolbox téléchargeable ici et documenté ici. L'installation sera réalisé dans entièrement à l'aide d'un utilisateur POSIX cas dédié.
La configuration de cas-toolbox sera conservée dans un repos git (local) situé dans le dossier /home/cas/local.
Arborescence du home de l'utilisateur cas
/home/cas |- upstream : les sources logicielles téléchargées |- cas-toolbox-XXXXXX : les différentes versions de cas-toolbox présentes sur le serveur |- current : lien symbolique vers les sources de la version courante de cas-toolbox |- build.properties : fichier de configuration de la compilation |- config.properties : fichier de configuration de CAS |- custom : dossier de personnalisation de l'installation du CAS |- build : dossier de compilation du CAS |- local : repos GIT de personnalisation de l'application CAS |- static : données web statiques |- webapps : lien symbolique pointant sur le répertoire des webapps de Tomcat |- cas : Répertoire de déploiement de CAS
Dépendances
Cette application a pour dépendance les paquets Debian suivants :
- tomcat7
- ant
- maven
- openjdk-6-jre
- openjdk-6-jdk
- memcached
Configuration de Tomcat
- Il est nécessaire de créer le lien symbolique suivant :
ln -s /var/log/tomcat7/ /usr/share/tomcat7/logs
- Dans le fichier /etc/tomcat7/server.xml :
- Commenter le <Connector port=“8080” …/>
- Dé-commenter le <Connector port=“8009” …/>
- Redémarrer Tomcat :
service tomcat7 restart
Configuration d'Apache
- Les modules Apache suivants doivent être activés :
a2enmod proxy proxy_ajp proxy_http
Exemple de VirtualHost Apache
<VirtualHost *:80> ServerAdmin webmaster@exemple.fr ServerName connexion.exemple.fr RedirectMatch / https://connexion.exemple.fr ErrorLog /var/log/apache2/connexion.exemple.fr.error.log CustomLog /var/log/apache2/connexion.exemple.fr.access.log combined </VirtualHost> <VirtualHost *:443> ServerAdmin webmaster@exemple.fr ServerName connexion.exemple.fr DocumentRoot /var/www/empty Alias /static /home/cas/local/static <Directory /home/cas/local/static> Options -Indexes </Directory> RedirectMatch ^/$ /cas/ SSLEngine On ProxyRequests Off <Proxy *> Order Deny,Allow Allow From All </Proxy> ProxyPass /cas ajp://127.0.0.1:8009/cas retry=2 ErrorLog /var/log/apache2/connexion.exemple.fr.error.log CustomLog /var/log/apache2/connexion.exemple.fr.access.log combined </VirtualHost>
Configuration de sudo
- Créer le fichier /etc/sudoers.d/cas :
cas ALL=NOPASSWD:/usr/bin/ant cas ALL=NOPASSWD:/etc/init.d/tomcat7
- Corriger les droits du fichier :
chmod 440 /etc/sudoers.d/cas
Configuration de memcached
Il n'y a pas de modification à apporter à la configuration standard du service.
Configuration
Vous pouvez utiliser comme base la configuration présente dans le repos cas-common-config. Votre configuration devra se trouver dans le dossier /home/cas/local.
Adapter le contenu du fichier config.properties et notamment les variables suivantes :
- log.dir : Le chemin du répertoire de log. Dans notre cas, mettre /var/log/tomcat7.
- cas.host : Le FQDN d'accès au serveur CAS
- cas.uri : Le contexte Web de déploiement du serveur CAS. Dans notre cas, mettre /cas.
- security.useradmin : Le login de l'utilisateur qui aura le droit de se connecte à l'interface de gestion des services utilisant l'annuaire LDAP
- Configuration LDAP :
- ldap.host.1 et ldap.host.2 : les URI de vos serveurs LDAP. Si vous en avez qu'un seul, mettez simplement la même valeur dans les deux variables.
- ldap.basedn : la base de recherche dans utilisateur dans l'annuaire LDAP
- ldap.manager.dn : Le DN utilisateur par le serveur CAS pour se connecter à vos annuaires LDAP
- ldap.manager.password : Le mot de passe associé
[...] <bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator" p:cookieSecure="false" p:cookieMaxAge="-1" p:cookieName="CASTGC" [...]
Déploiement
- Créer le dossier /home/cas/upstream et y télécharger le package de cas-toolbox
- Décompresser le package dans le répertoire /home/cas/
- Créer le lien symbolique /home/cas/current pointant vers le répertoire de cas-toolbox
- Dans le répertoire /home/cas/current/, créer les liens symboliques suivant :
cd /home/cas/current ln -s ../local/build.properties ln -s ../local/config.properties rmdir custom && ln -s ln -s ../local/custom
- Exécuter la tâche ant init :
ant init
- Déployer l'installation du CAS :
sudo ant deploy
- Redémarrer Tomcat7 :
sudo /etc/init.d/tomcat7 restart
Re-déploiement
Un re-déploiment permet de prendre en compte les modifications faites sur la configuration du serveur Git.
Pour cela, il faut :
- Re-compiler CAS et le re-déployer :
cd /home/cas/current ant sudo ant deploy
- Redémarrer Tomcat :
sudo /etc/init.d/tomcat7 restart
Services autorisés à utilisé l'authentification CAS
CAS contrôles les services qui sont autorisés à utiliser son service de SSO. La liste des services autorisés au configurés dans le fichier custom/webpages/WEB-INF/deployerConfigContext.xml. Par défaut, le service autorise les services suivants :
http://** https://** imap://** imaps://**
Il est possible d'ajouter des nouveaux services autorisés lorsque le service est démarré en utilisant l'interface https://login.example.fr/cas/services/manage.html. Il faudra pour cela se connecté avec un utilisateur reconnu comme ADMIN du service (cf. paramètre security.useradmin).