DocScoDoc/docs/ConfigCAS.md

6.4 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_idde 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.

accès au panneau de config

De cette page, on accède à la page consacrée au CAS:

config du 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:

login scodoc avec CAS

🚸 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.

form. config. utilisateur

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é et forcé. 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.

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:

Informations sur un utilisateur

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" (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)