Skip to content

Draft: CAS integration

Maxence requested to merge maxeuh/FlOpEDT:vue-vite into vue-vite

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 des console.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 un id_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é.
Edited by Maxence

Merge request reports