7.5 KiB
Configuration de l'authentification CAS
Cette page s'adresse aux administrateurs système en charge de ScoDoc.
Le CAS, Central Authentication Service CAS est un système d'authentification unique (SSO) très utilisé dans les universités. Il permet à l'utilisateur de s'identifier sur un site unique (souvent appelé "ENT" en raccourci), pour ensuite accéder aux différents services. Il évite de s'authentifier à chaque fois qu'on accède à une application en mettant en place un système de ticket.
Notons que le CAS peut introduire des faiblesses dans l'application:
- indisponibilité ou lenteur du service;
- vulnérabilité si le serveur CAS (ou l'annuaire sur lequel il s'appuie) venait à être piraté.
Il est donc conseillé de s'assurer du bon fonctionnement et de la sécurisation de son service CAS avant d'aller plus loin.
Comptes utilisateurs ScoDoc et CAS
Rappel: voir Gestion des utilisateurs
Pour simplifier, l'utilisateur va partir de ScoDoc, passer par le site CAS (redirection), puis
revenir si l'authentification réussi, avec un jeton et un identifiant CAS. À ce moment, ScoDoc cherche s'il a un
utilisateur ayant l'identifiant donné, dans le champ cas_id
de sa base
utilisateur. Si oui, il ouvre une session pour cet utilisateur, avec ses rôles
et permissions.
Paramètres spécifiques pour le CAS
Configuration générale
Les pages de configuration générale de ScoDoc sont accessibles via la page d'accueil, uniquement lorsqu'on est connecté comme super-admin.
De cette page, on accède à la page consacrée au CAS:
Page sur laquelle on va pouvoir spécifier:
- si on active le CAS (ce qui permet aussi de le désactiver globalement);
- si on force son utilisation;
- l'URL complète du serveur CAS (exemple:
https://mon.serveur.cas.fr:1234/cas/
); - un attribut pour l'identification (laisser vide normalement);
- si on veut vérifier le certificat SSL (normalement oui, par sécurité, et fournir le fichier certificat PEM dans le champ suivant).
Si l'option Forcer l'utilisation du CAS est activée, l'utilisateur qui tente de se connecter sera immédiatement redirigé vers la page du CAS. Sinon, il aura le choix via le formulaire classique, avec un lien en plus:
🚸 Attention, le lien de réinitialisation du mot de passe ne concerne évidemment pas le mot de passe du CAS, mais celui de ScoDoc. C'est ennuyeux.
À ce stade, CAS est utilisable, mais on n'a aucun utilisateur reconnu !
Configuration des utilisateurs
ScoDoc doit connaitre l'identifiant CAS de ses utilisateurs. A défaut d'un annuaire, il va falloir saisir ces identifiants pour chaque compte. On peut le faire via le formulaire habituel de paramétrage du compte utilisateur, ou bien par import Excel.
Cette configuration n'est accessible qu'au super-admin.
Ici trois champs nous intéressent:
- Identifiant CAS: nécessaire
- Autorise connexion via CAS: spécifie si ce compte peut ou non se connecter via CAS.
- Autorise connexion via ScoDoc: spécifie si cet utilisateur peut se connecter via ScoDoc, sans CAS, lorsque le CAS est activé. Ceci est nécessaire par exemple pour des comptes utilisés pour l'API, ou bien pour des personnes extérieures à l'établissement et qui ne seraient pas (encore) dans le CAS.
En cas de besoin, les comptes "super-admin" peuvent toujours se connecter à ScoDoc sans CAS: si le forçage est activé, il leur faut passer par une adresse spéciale:
https://votre.serveur.scodoc.fr/auth/login_scodoc
(remplacer https://votre.serveur.scodoc.fr
par le début de l'adresse de votre serveur).
🚸 Attention: en général, les clients d'API (et notamment la "passerelle") n'utilisent pas le CAS: si vous forcez les utilisateurs à utiliser le CAS, pensez à autoriser les comptes de l'API à se connecter sur ScoDoc sans CAS.
Règles de connexion
Résumé pour s'y retrouver dans les paramètres:
- Au niveau de la config globale de ScoDoc:
- CAS peut être activé ou non.
- S'il est activé, il peut être forcé ou non.
- Au niveau de chaque compte utilisateur:
- on a (ou non) un "Identifiant CAS" (
cas_id
); - on autorise ou non la connexion via CAS (
cas_allow_login
) - on autorise ou non la connexion via l'identifiant ScoDoc quand CAS est activé (
cas_allow_scodoc_login
)
- on a (ou non) un "Identifiant CAS" (
L'utilisateur pourra se connecter via un identifiant ScoDoc (rappel: c'est nécessaire pour les comptes API), si et seulement si:
- CAS non activé
- ou compte super-admin
- ou
cas_allow_scodoc_login
et pas (cas_id
renseigné etcas_allow_login
et CAS forcé)
(donc si il a cas_allow_scodoc_login
mais pas de cas_id
, il pourra se
connecter via ScoDoc même si on a forcé le CAS).
L'utilisateur pourra se connecter en CAS si et seulement si:
- CAS activé et
cas_id
renseigné (ou règle de config. automatique)
Sécurité: permissions et informations
L'utilisateur connecté via CAS a exactement les mêmes permissions que s'il s'était connecté via ScoDoc.
Permission
Le paramétrage CAS au niveau général nécessite la permission Super Administrateur
.
Il est naturel de déléguer la création des comptes utilisateurs ScoDoc aux responsables de département ou à leur représentant. Toutefois, le réglage CAS pourrait créer des problèmes de sécurité (par exemple affecter à un département un utilisateur CAS qui n'en fait pas réellement partie).
Le CAS ajoute une permission ScoDoc ScoUsersChangeCASId
qui contrôle la
possibilité de changer l'identifiant CAS d'un compte. Cette permission peut ou
non être associée au rôle Admin
d'un département, selon la politique de
l'établissement.
Les réglages par compte Autorise connexion via CAS
et Autorise connexion via ScoDoc sont réservés au Super Administrateur
.
Informations sur un utilisateur
Le super-administrateur (et elle seule) peut visualiser les dates de:
- dernière utilisation (date du dernier chargement de page);
- dernière connexion (login) via CAS.
dans les tables d'utilisateurs et sur la page de chaque compte:
Logs
Les connexions et tentatives de connexions via CAS sont logguées au niveau
INFO
, qui arrive par défaut dans /opt/scodoc-data/scodoc.log
.
Exemples:
- Connexion réussie:
INFO: CAS: login user_name
- Tentative de connexion CAS réussie mais utilisateur non reconnu par ScoDoc:
INFO: CAS login denied for cas_id=prenom.nom (unknown or inactive)
Accès via l'API
L'authentification des clients de l'API utilise un jeton (token), qui est
demandé par l'appel /ScoDoc/api/tokens
(qui lui même appelle
User.get_token()
). Ce mécanisme ne passe jamais par le CAS, à condition que le
compte utilisateur utilisé par l'API soit "Autorisé à se connecter via
ScoDoc", et pas autorisé à utiliser le CAS (cas_allow_login
faux). (voir le
formulaire plus haut, configuration des
utilisateurs)
!!! note "Voir aussi"
- [Gestion des utilisateurs](AdminUsers.md)
- [Rôles et permissions](ConfigPermissionsDept.md)
- [Config. des rôles et permissions en ligne de commande](GuideConfig.md#creation-dun-nouveau-role)
- [Guide administrateur ScoDoc](GuideAdminSys.md)
- [API pour ScoDoc 9](ScoDoc9API.md)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)