Précisions sur CAS pour comptes API

This commit is contained in:
Emmanuel Viennet 2024-11-12 20:10:53 +01:00
parent 508e1b1f7e
commit 0720b783fe
2 changed files with 37 additions and 7 deletions

View File

@ -77,12 +77,13 @@ 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
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:
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:
```text
https://votre.serveur.scodoc.fr/auth/login_scodoc
@ -95,6 +96,34 @@ forçage est activé, il leur faut passer par une adresse spéciale:
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`)
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é et `cas_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
@ -151,9 +180,10 @@ INFO: CAS login denied for cas_id=prenom.nom (unknown or inactive)
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](#configuration-des-utilisateurs)).
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](#configuration-des-utilisateurs))
!!! note "Voir aussi"

View File

@ -87,7 +87,7 @@ Si vous êtes intéressé par le développement, voir
* Si vous utilisez le CAS, pensez à laisser les comptes utilisateurs API se
connecter via ScoDoc sans CAS. Pour cela, cocher l'option
*Autorise connexion via CAS si CAS est activé*
*Autorise connexion via CAS si CAS est activé* et décocher `Autorise connexion via CAS`
dans leur formulaire de configuration.
* Si l'utilisateur est associé à un département (cas des comptes créés via l'interface Web),