Mise en place du SSO CAS
Ce document a pour but de décrire la mise en place de la reconnaissance par BlueMind de l'authentification CAS (Central Authentication Service).
Fonctionnement de l'authentification CAS
Pour une authentification initiale :
- L'utilisateur cherche à se connecter à BlueMind, qu'il ouvre dans son navigateur.
- Comme il n'a pas encore été authentifié, le serveur BlueMind le redirige vers le serveur CAS pour qu'il s'authentifie.
- Une fois authentifié, un cookie CAS est posé dans le navigateur de l'utilisateur, qui est redirigé vers BlueMind avec un ticket à valider.
- Le serveur BlueMind :
- voit ce ticket,
- demande au serveur CAS s'il est valide,
- si c'est bien le cas, autorise la connection et pose un cookie BlueMind dans le navigateur.
Lors d'une prochaine authentification :
- Le client demande à nouveau l'accès au serveur BlueMind
- Comme il possède le cookie BlueMind, il est automatiquement authentifié tant que ce cookie est valide.
Pour plus d'informations:
- http://aldian.developpez.com/tutoriels/javaee/authentification-centralisee-sso-cas/images/09_diagramme_full.png
- http://www.jasig.org/cas/protocol
Installation
Pour mettre en œuvre l'authentification CAS, installer le paquet nécessaire :
- Debian/Ubuntu
- Redhat/CentOS
aptitude install bm-plugin-hps-cas
yum install bm-plugin-hps-cas
Puis redémarrer BlueMind :
bmctl restart
Configuration
- Connecté en tant qu'admin0, se rendre dans Gestion du système > Configuration système > onglet Authentification.
- Sélectionner le mode d'authentification CAS dans le menu déroulant et renseigner les champs associés :
- URL du serveur CAS
- Domaine BlueMind par défaut
- Cliquer sur "Enregistrer" pour sauvegarder les modifications.
- Redémarrer le service bm-hps.
Dès lors, les utilisateurs seront automatiquement redirigés vers le serveur CAS lors de l'accès à la page d'authentification.
Erreurs connues
Erreur 403 : Your user account does not exist in this BlueMind.
Cause : Ce message d'erreur signifie que le login avec lequel l'utilisateur s'est authentifié sur le CAS n'existe pas pour ce domaine. Cela peut arriver lorsque l'utilisateur n'a pas encore été créé dans BlueMind ou de façon volontaire car on ne souhaite pas que cet utilisateur y ait accès.
Solutions : Deux solutions permettent sont possibles :
- Créer dans BlueMind, dans le bon domaine, l'utilisateur associé au login CAS.
- Ignorer l'erreur si le refus d'accès est volontaire.
Erreur 500 : Internal Server Error
Ce message d'erreur peut avoir plusieurs raisons. Pour investiguer sur la cause et savoir la résoudre, consulter les logs de HPS en utilisant par exemple la commande suivante :
cat /var/log/bm-hps/hps.log | grep CAS
Utilisation d'un certificat autosigné ou d'une autorité de certification inconnue
Symptômes : Si un certificat autosigné est utilisé pour le serveur CAS, ou que l'autorité de certification du serveur CAS n'est pas répertoriée, une erreur de sécurité lors de l'établissement de la connexion https vers le serveur CAS survient.
Solution : Pour résoudre cette erreur, importer le certificat autosigné ou l'autorité de certification racine dans le keystore de la jvm qu'utilise BlueMind.
keytool -import -trustcacerts -alias cas -file cert_racine.crt -keystore /usr/lib/jvm/bm-jdk/lib/security/cacerts
Enter keystore password: changeit
Pour plus d'informations, voir http://www.sslshopper.com/article-most-common-java-keytool-keystore-commands.html