Serveur de SSO CAS sous Debian – Épisode 1

cas

Central Authentication System de Apereo (anciennement Jasig) est un service Web permettant de fournir un serveur d’authentification unique (SSO).

Le but du jeu est de ne pas redemander l’authentification des utilisateurs pour les différents services Web internes de l’entreprise.

Par exemple, un utilisateur qui s’authentifie au portail Intranet n’aura pas à s’authentifier aux autres applications.

Pour cela, CAS utilise un système de tickets valables pour un certain temps un peu sur le même principe que Kerberos.

Les clients CAS sont nombreux, que ce soit pour les principaux langages (toujours sur le site de Jasig) ou pour certains logiciels Web par des plugins déjà existants (pour WordPress, pour Drupal, …).

 

Épisode 1 : Préparation de Debian et Tomcat

 

J’installe CAS sous Debian Stretch qui est encore testing au moment ou j’écris ces lignes mais ça ne devrait plus être très long.

A défaut, vous pouvez le faire sous Ubuntu 16.04 LTS ou en Docker.

Le serveur CAS vous demandera en pré-requis d’avoir Java 8 (JRE et JDK) et éventuellement un serveur d’application Java comme Tomcat ou JBoss.

 

Installation des dépendances :

 

apt update; apt install openjdk-8-jre openjdk-8-jdk git tomcat8 libservlet3.1-java

 

Tomcat en HTTPS et avec plus de mémoire :

 

Pour configurer Tomcat en HTTPS, il faut générer un magasin de clés :

keytool -genkey -keyalg RSA -alias tomcat -keystore /etc/ssl/SELF-SIGNED/keystore.jks -storepass XXXXXXX -validity 360 -keysize 2048

 

Puis ajouter ceci au fichier /etc/tomcat8/server.xml :

<Connector 
         port="8443" URIEncoding="UTF-8"
         minSpareThreads="5" maxSpareThreads="75" enableLookups="true" 
         disableUploadTimeout="true" acceptCount="100"  maxThreads="200"
         scheme="https" secure="true" SSLEnabled="true"
         keystoreFile="/etc/ssl/SELF-SIGNED/keystore.jks"
         keystorePass="XXXXXXX"
         SSLHonorCipherOrder="true" SSLCipherSuite="HIGH:!RC4"
         clientAuth="false" sslProtocol="TLS" protocols="TLSv1.2"/>

 

C’est une application Java, ça demande donc beaucoup de mémoire ! Il faut augmenter le maximum de mémoire alloué à Tomcat en allant dans /etc/default/tomcat8 et en modifiant la valeur de l’option -Xmx128m par -Xmx1g, par exemple pour 1Go de RAM alloué :

JAVA_OPTS="-Djava.awt.headless=true -Xmx1g -XX:+UseConcMarkSweepGC"

 

Reste à redémarrer Tomcat :

service tomcat8 restart

 

 

A suivre :

 

Sur le même sujet :