Development #8123
avoir un middleware qui detecterait si l'utilisateur est loggué
100%
Description
A discuter:
L'idée est que les sp (combo, wcs, fargo,...) puissent detecter si l'utilisateur est loggué dans authentic(via un cookie posé à la racine du domaine, par exemple) et, si pas loggué sur le SP, lancer le sso.
Fichiers
Demandes liées
Révisions associées
middleware: disallow passive authentication when no IdP is found (fixes #8123)
Historique
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
- Fichier 0001-views-add-an-iframe-mode-to-the-login-view.patch 0001-views-add-an-iframe-mode-to-the-login-view.patch ajouté
Suggestion en utilisant une iframe et un SSO passif, à tester.
commit 0e57f9931243565d4bd15333e9f8d340698fc629 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Thu Aug 27 14:37:44 2015 +0200 views: add an iframe mode to the login view Use it by putting a tag: <iframe height="0" width="0" src="{% url "mellon_login" %}?{{ request.GET.urlencode }}&passive&iframe"></iframe> in your page. It will do a passive authentication inside the iframe and will use JS to reload the top frame if authentication is successfull.
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
- Statut changé de Nouveau à En cours
- Assigné à mis à Benjamin Dauvergne
Mis à jour par Frédéric Péters il y a plus de 8 ans
J'imaginais un truc plus linéaire et indépendant de javascript (sans risque d'avoir la page disparaitre sous l'œil de l'usager); si un cookie de session de domaine principal existe (et qu'on n'a pas déjà essayé le SSO), lancement du SSO passif, point.
Mis à jour par Victor Claudet il y a plus de 8 ans
Concretement actuellement on a des comportement impossible a comprendre de la part des utilisateurs qui se loggent puis sont parfois loggés, parfois pas loggés... Meaux est en prod, Fontenay, très bientôt et c'est pas une situation qui peut rester en l'état. Donc haut parce que urgent.
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
- Fichier 0001-add-PassiveAuthenticationMiddleware-to-provoke-passi.patch 0001-add-PassiveAuthenticationMiddleware-to-provoke-passi.patch ajouté
Ça ne gêne personne à mon avis... mais enfin...
Mis à jour par Thomas Noël il y a plus de 8 ans
OPENED_SESSION_COOKIE → OPENED_SESSION_COOKIE_NAME dans le app_settings.py
Mais plutôt que virer le cookie général (qui pourrait être utile à d'autres SP), pourquoi ne pas ajouter un cookie lié au SP, qui dirait "login automatique déjà testé" (sous entendu "ça a foiré, on retente pas") ?
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
- Fichier 0001-add-PassiveAuthenticationMiddleware-to-provoke-passi.patch 0001-add-PassiveAuthenticationMiddleware-to-provoke-passi.patch ajouté
Quelle durée pour ce énième cookie ? Parce qu'il faut bien retenter un jour... Le plus simple c'est d'effacer le cookie, il sera remis par l'IdP, l'IdP le pose sur chaque requête. Mais faisons, et disons cookie à durée d'une session navigo, si on se déconnecte et qu'on revient, ça marche plus. Bon faut virer le cookie quand on se déconnecte aussi... C'est sans fin ces trucs...
Mis à jour par Thomas Noël il y a plus de 8 ans
Benjamin Dauvergne a écrit :
Quelle durée pour ce énième cookie ? Parce qu'il faut bien retenter un jour...
Une minute ?
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
On va déjà voir ce que ça fait avec la durée session.
Mis à jour par Thomas Noël il y a plus de 8 ans
Pour moi c'est un "ack" mais je veux bien une relecture par Fred, qu'il dise si c'est bien l'idée qu'il avait en tête de son côté.
Mis à jour par Frédéric Péters il y a plus de 8 ans
ok; je préfère ne pas avoir des intitulés trop long ("add middleware to do passive sso if a common domain cookie exists (#8123)" tient).
Il faudrait aussi ajouter le middleware dans la config debian commune, non ?
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
- Lié à Development #8377: ajouter PassiveAuthenticationMiddleware à debian_config_common.py ajouté
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
- Statut changé de En cours à Résolu (à déployer)
- % réalisé changé de 0 à 100
Appliqué par commit django-mellon|9667aa5f1877fa88530194e6da611a4834fa03dc.
Mis à jour par Frédéric Péters il y a plus de 8 ans
J'y pense un peu tard, l'envoi vers mellon_login, il devrait être fait uniquement si "not any(get_idps())", non ?
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
Appliqué par commit django-mellon|ad2a575a351be72f4839a71e165fb4a4e1ab9f36.
Mis à jour par Benjamin Dauvergne il y a plus de 8 ans
- Statut changé de Résolu (à déployer) à Fermé
add PassiveAuthenticationMiddleware using a common domain cookie (fixes #8123)
Name of the cookie must be put in MELLON_OPENED_SESSION_COOKIE_NAME and
common domain can be defined in MELLON_OPENED_SESSION_COOKIE_DOMAIN, if
unset the common domain is guessed by removing the first part of the
domain name (www.xxx.com -> xxx.com).