Project

General

Profile

Development #61592

Ajout de logs en cas de refus de requête de déconnexion CAS

Added by Benjamin Renard 12 months ago. Updated 12 months ago.

Status:
En cours
Priority:
Normal
Category:
authentic2-idp-cas
Target version:
-
Start date:
09 February 2022
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

Description

Lors d'une déconnexion CAS, pour que celle-ci soit traitée, il faut :
  • que l'entête HTTP_REFERER soit présente dans la requête
  • qu'un service CAS soit trouvé en correspondance avec le referer de la requête

Si l'une ou l'autre de ces conditions n'est pas respectée, la requête est ignorée.

Ce patch ajoute un message WARNING logué pour chacun de ces deux cas de refus, facilitant grandement la résolution de problème à ce niveau.


Files

History

#2

Updated by Thomas Noël 12 months ago

  • Status changed from Nouveau to En cours
  • Assignee set to Benjamin Renard

La seule question que je me pose c'est le niveau "warning" au lieu d'un simple "info". J'imagine que "warning" exprime un besoin de remonter ça en alerte à un moment (et pas juste une trace dans les logs), donc ok pour ça.

Ensuite, peux-tu modifier ainsi le message de commit :

idp cas: log why CAS logout request was rejected (#61592)

License: MIT

#3

Updated by Benjamin Renard 12 months ago

Thomas Noël a écrit :

La seule question que je me pose c'est le niveau "warning" au lieu d'un simple "info". J'imagine que "warning" exprime un besoin de remonter ça en alerte à un moment (et pas juste une trace dans les logs), donc ok pour ça.

Tout à fait, c'est l'idée.

Ensuite, peux-tu modifier ainsi le message de commit :
[...]

Voilà.

#4

Updated by Benjamin Dauvergne 12 months ago

Ici le code devrait surtout être corrigé, le logout CAS n'est pas sûr, n'importe qui peut faire un SLO, le check du Referer est une validation un peu has-been.

Plutôt que de refuser tacitement on devrait systématiquement présenter un écran de confirmation, c'est beaucoup plus user friendly (il faudrait faire pareil coté OIDC, dans le cas un peu équivalent de authentic2_idp_oidc.views.logout ou l'URL de retour est inconnue), il suffit de faire un redirect vers /logout/?next=<next_url> pour cela.

Also available in: Atom PDF