Draft: CAS integration
Liste des choses à vérifier
Merci de vérifier is votre Merge Request (MR) satisfait bien aux conditions suivantes (mettre un 'x' pour cocher la case) :
-
Le code et les commentaires sont en anglais -
Nous avons ajouté nos noms dans le fichier AUTHORS.md
-
Nous avons ajouté quelques mots d'anglais dans le CHANGELOG.md
pour résumer notre travail -
Si nous avons utilisé de nouveaux modules python, nous les avons ajoutés dans le fichier requirements.txt
-
Nous avons effectué quelques tests -
et les avons ajoutés au dépôt -
rapidement, en local
-
-
L'intégration continue reste satisfaite -
Nous avons ajouté, modifié et revu la documentation, si nécessaire. On peut effectuer une MR sur la page wiki de FlOpEDT, comme expliqué ici : https://stackoverflow.com/a/38537453 -
Nous n'avons pas ajouté d'affichage dans les consoles (ni dans celle de django (avec print
), ni dans celle du navigateur (avec desconsole.log
))
Nouvelles dépendances
Des dépendances nouvelles ont-elles été ajoutées ?
- Côté back
-
Oui -
Non
-
- Côté front
-
Oui -
Non
-
Si oui, lesquelles ? django-cas-ng
Licences
Si de nouvelles dépendances ont été ajoutées, leurs licences sont compatibles avec une inclusion dans un logiciel sous AGPL version 3.0 ou ultérieure.
-
Tout à fait -
J'ai regardé, mais j'ai un doute. Franchement, les licences, c'est compliqué. -
Non, mais il existe une alternative.
Si non, quelle(s) alternative(s) ?
Type de Merge Request
Merci d'indiquer le type de votre MR (mettre un 'x' pour cocher la case) :
-
Réparation de bug -
Fonctionnalité -
Passage de la v0 à la v1 -
Mise à jour de style sur le code (formatage, renommage) -
Refactoring (pas de changement fonctionnel, ni de changement d'API) -
Autre (à décrire) :
Quel est le comportement actuel ?
Système de connexion alternatif via un serveur CAS.
Quel est le nouveau comportement ?
- Système de connexion alternatif via le CAS grâce à la librairie
django-cas-ng
(https://djangocas.dev). - Connexion à l'URL
/fr/accounts/cas/login
- Déconnexion à l'URL
/fr/accounts/cas/logout
Est-ce que cette MR casse une autre fonctionnalité ?
-
Oui -
Non
Est-ce que cette MR contient de nouvelles migrations de base ?
-
Oui -
Non
Migration automatique de
django-cas-ng
(table afin de gérer les "tickets", faisant lien entre le CAS et Flop!EDT) Migration des utilisateurs afin de rajouter unid_cas
Informations supplémentaires ?
ATTENTION : Etant donné l'absence d'un environnement de test / de serveur de CAS, ce travail a été peu testé. Il n'est donc pas fonctionnel.
Il faudrait rajouter ce paragraphe dans la documentation / Wiki :
**Section CAS**
> **AVERTISSEMENT :** L'intégration du CAS n'est pas encore disponible. Par conséquent, cette section n'est pas encore fonctionnelle.
*Section de configuration de l'authentification CAS.*
> Pour consulter la documentation complète de la librairie `django-cas-ng`, utilisée pour l'authentification CAS, cliquez [ici](https://djangocas.dev/docs/latest/configuration.html).
`enable_auth`: Activation de l'authentification CAS. *True* si l'authentification CAS est activée - *False* si l'authentification CAS est désactivée.
`force_auth`: Activation de l'authentification CAS forcée, désactive l'authentification Flop!EDT. *True* si l'authentification CAS est forcée - *False* si l'authentification locale est activée.
`server_url`: URL du serveur CAS.
`version`: Version du protocole CAS utilisée. (*1*, *2* ou *3*)
`username_attribute`: Attribut de l'utilisateur utilisé par le CAS.
`renew`: Force l'utilisateur à saisir ses identifiants CAS à chaque connexion, même s'il est déjà connecté au CAS. *True* si l'authentification doit être renouvelée - *False* si l'authentification n'est pas renouvelée.
`retry_login`: Redirige l'utilisateur vers la page de connexion CAS si l'authentification échoue. *True* si la connexion doit être réessayée - *False* si la connexion n'est pas réessayée.
`logout_completely`: Déconnecte l'utilisateur du serveur CAS lorsqu'il se déconnecte de l'application. *True* si la déconnexion doit être complète - *False* si la déconnexion n'est pas complète.
`verify_ssl_certificate`: Vérifie le certificat SSL du serveur CAS. *True* si le certificat SSL doit être vérifié - *False* si le certificat SSL n'est pas vérifié.
> **AVERTISSEMENT :** Il est recommandé de laisser l'option `verify_ssl_certificate` à *True* pour des raisons de sécurité. Ne la désactivez que pour des raisons de développement.
`force_ssl_service_url`: Force l'utilisation du protocole HTTPS pour les redirections CAS. *True* si le protocole HTTPS doit être forcé - *False* si le protocole HTTPS n'est pas forcé.