Intégration de GRR dans CAS SSO
L’université de Yale aux Etats-Unis (http://www.ja-sig.org/products/cas/index.html) a développé le logiciel open source CAS (Central Authentification Service) pour centraliser toutes les identifications à différentes applications afin d'éviter les identifications multiples (SSO).
Depuis la version 1.7, GRR est prévu pour fonctionner dans un environnement CAS SSO.
Les Pré-requis :
Version PHP supérieure ou égale à 4.2.2, compilée avec les options suivantes :
--with-curl, --with-openssl, --with-dom, --with-zlib
Installation de la librairie phpCAS (http://esup-phpcas.sourceforge.net/) :
1. téléchargement du package phpCAS
2. Extraction du package dans un sous-répertoire « CAS » dans le répertoire correspondant à l'include_path du php.ini (exemple : /var/lib/php)
3. Création du fichier cas.sso contenant les informations de connexions au serveur CAS, à mettre dans la même répertoire /var/lib/php
Exemple de fichier cas.sso :
<?php
$serveurSSO="nom.du.serveur.fr";
$serveurSSOPort=8443;
$serveurSSORacine=CAS;
?>
Il est possible de modifier les chemins d'accès au fichier « cas.sso » et à la librairie phpCAS dans le fichier « cas.inc.php ».
Fonctionnement
Dans le panneau d'administration de GRR, une page « configuration SSO » permet d'activer la prise en charge de l'environnement CAS. L'activation consiste à choisir le statut par défaut des utilisateurs authentifié CAS (« usager » ou « visiteur »).
Remarque :
Depuis la version GRR197, il est possible de configurer le serveur CAS et GRR de façon à pouvoir récupérer dans GRR des attributs LDAP envoyés par le serveur CAS. Il est alors possible d'associer à un attribut LDAP le statut de l'utilisateur dans GRR. Dans ce cas, le statut par défaut précédent n'est utilisé que lorsque la procédure d'association échoue. Reportez-vous à l'annexe 1 de cette documentation pour plus de détails.
Tout comme pour LDAP, deux types d'utilisateurs peuvent cohabiter :
- les utilisateurs authentifiés et gérés directement par GRR dans la base locale de GRR et
- les utilisateurs authentifiés par CAS.
Dans le tableau de gestion des utilisateurs un champ indique le type d'authentification (« local » ou « ext ») de l'utilisateur.
Remarques :
- Pour se connecter, les utilisateurs locaux, gérés directement par GRR doivent se rendre à l'adresse du type http://monserveur.fr/Grr/login.php (ne pas oublier login.php à la fin). La possibilité de créer des utilisateurs locaux est intéressante pour permettre l'accès à GRR à des personnes ne disposant pas de compte CAS. Il est fortement recommandé de créer un administrateur local de GRR. En effet, certaines mises à jour de GRR nécessite un accès particulier pour effectuer la mise à jour.
- Un utilisateur qui désire accéder à GRR en s'authentifiant par CAS doit se rendre à l'adresse du type http://monserveur.fr/Grr/. S'il n'est pas déjà authentifié, une page lui propose de rentrer son identifiant et son mot de passe. Tout ce qui concerne les utilisateurs authentifiés par CAS est traité de la même façon que les utilisateurs LDAP .
Que se passe-t-il une fois que l'utilisateur a été authentifié par CAS ?
Lorsque GRR est paramétré pour s'intégrer dans un environnement CAS, le processus suivant s'applique :
- Pour se connecter l'utilisateur utilise l'url du type http://mon.site.fr/grr/. Le navigateur est alors automatiquement dérouté vers la page d'authentification CAS. Les utilisateurs « locaux » (entièrement gérés par GRR), doivent utiliser l'url du type http://mon.site.fr/grr/login.php pour se connecter directement à la base de GRR sans passer par l'authentification CAS. C'est notamment le cas de l'administrateur.
- Une fois authentifié, GRR regarde si un utilisateur dont le type d'authentification est « ext » ayant cet identifiant est présent dans la base des utilisateurs de GRR.
- Si oui : GRR récupère dans sa base les informations concernant l'utilisateur (paramètres par défaut, langue, ...). L'utilisateur peut se connecter à GRR.
- Dans le cas contraire, c'est la première connexion à GRR : GRR crée l'utilisateur dans la table « utilisateurs ». Le champ « mot de passe » est laissé vide.
Dans le cas où un annuaire LDAP est configuré, GRR tente de récupérer dans l'annuaire les valeurs des « nom », « prénom » et « email » (fonctionnalité présente à partir de la version GRR 1.9.6 uniquement).
Le champ « type d'authentification » prend la valeur « ext ». Le champ « statut » prend la valeur « usager » ou « visiteur » selon la valeur définie par défaut dans la configuration CAS. L'administrateur pourra par la suite modifier ce paramètre au cas par cas. l'utilisateur est alors connecté à GRR. (remarque : si un utilisateur « local » existant porte déjà le même identifiant, l'importation ne pourra avoir lieu : il y a échec de la connexion).
Une fois l'utilisateur connecté, rien ne diffère pour celui-ci par rapport à un environnement non CAS à la différence près qu'il ne peut pas modifier son mot de passe (celui-ci étant géré par le serveur CAS).
Lorsqu'un utilisateur se déconnecte, la session GRR est détruite et le navigateur est redirigé vers une page dont l'URL est spécifié dans la page de configuration générale.