Projet

Général

Profil

Support #32564

élaboration du menu portail agent et gestion des "cookies tiers"

Ajouté par Thomas Noël il y a presque 5 ans. Mis à jour il y a presque 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
24 avril 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non
Club:
Non

Description

Le menu "portail agent" charge des éléments menu.json depuis les différentes briques de Publik. Cela est fait via ajax, en "tâche de fond".

Au premier accès, après un login réussi sur Authentic, ces menu.json passent par le SSO. Comme la session est bonne sur Authentic, ça marche...

Mais si Authentic n'est pas sur le même domaine que les briques, alors il ne reçoit pas son cookie de session (interdiction des cookies tiers) et pense donc que l'utilisateur n'est pas loggué.

La construction du menu échoue alors...

L'accès aux briques reste bon, parce que ce problème de cookie ne se pose que pour les requêtes ajax.

C'est constaté sur Firefox et Chromium avec le mode de protection contre les "cookies tiers" (activé par défaut sur les toutes dernières versions).

Historique

#2

Mis à jour par Pierre Cros il y a presque 5 ans

Et on doit mettre en prod dans 6 jours à Lille.

#3

Mis à jour par Thomas Noël il y a presque 5 ans

Comme le soucis est juste sur le portail agent, il est possible de configurer les navigateurs pour ne pas bloquer les cookies tiers (éventuellement dans une whiteliste), et tout fonctionne alors sans soucis.

#5

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Thomas Noël a écrit :

Mais si Authentic n'est pas sur le même domaine que les briques, alors il ne reçoit pas son cookie de session (interdiction des cookies tiers) et pense donc que l'utilisateur n'est pas loggué.

Je ne suis pas certain de cette analyse, on pourrait voir un dump des requêtes notamment le contenu de Origin et Access-Control-Allow-Origin dans les différentes requêtes ?
Requête Origin Réponse: Access-Control-Allow-Origin Réponse: Access-Control-Allow-Credentials Statut
GET /menu.json ? ? ? 302
GET /idp/saml/sso ? ? ? 302
GET /login/ ? ? ? ?

À noter que sur une utilisation de withCredentials Allow-Origin:* est interdit (vur sur https://stackoverflow.com/questions/31465774/chrome-cors-with-302-redirects-and-withcredentials-true).

#6

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Aussi les gens qui constatent ce problème pourriez-vous vérifier la valeur de votre politique de sécurité dans (https://support.mozilla.org/en-US/kb/disable-third-party-cookies) FX, si vous avez "All third party cookies" ou autre chose.

#7

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Il est clair qu'avec All third party cookies on ne peut à peu près plus rien faire en JSON (ni AJAX ni JSONP) mais ce n'est pas la configuration standard "normalement".

#8

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Mais aussi (de https://blog.zok.pw/web/2015/10/21/3rd-party-cookies-in-practice/):

First of all, when 3rd-party cookies are disabled, browsers do not save, nor send cookies for domains other than the top-level window (current page). This affects all cross-domain requests including resources (e.g. <img> tags), iframes, and XMLHttpRequests (including CORS). This is something that you would expect, actually.
If there is a cookie that was set previously as a 1st-party, it won’t be used.
Javascript in cross-origin iframe cannot set cookies as well. No exceptions will be thrown, but document.cookie will always return an empty string, even if you set it to something.
No cookies in CORS requests too, even if you use .withCredentials parameter. Cookie header from server is just ignored.

Le plus important :

3rd-level subdomains and sibling 3rd-level subdomains are not considered 3rd-party: foo.example.com can load an iframe pointing to bar.example.com and it will be allowed to set cookies.

#9

Mis à jour par Pierre Cros il y a presque 5 ans

J'ai "traqueurs tiers" et pas "tous les traqueurs tiers"

#10

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Je suis en roue libre c'est du JSONP. J'ai installé FX 66 de unstable mais je n'arrive pas à reproduire, vous auriez des plugins particuliers l'un et l'autre ?

firefox:
  Installé : 66.0.1-1
  Candidat : 66.0.1-1
 Table de version :
 *** 66.0.1-1 500
        500 http://ftp.fr.debian.org/debian unstable/main amd64 Packages
        100 /var/lib/dpkg/status
#11

Mis à jour par Pierre Cros il y a presque 5 ans

Oui, je peux pas tester sans eux parce que le truc est down à lille mais j'ai Ublock Origin et Privacy badger qui sont susceptibles de bloquer des choses

#12

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Thomas a filé un lien vers Tours (plus haut) où il reproduit le problème sur son FX.

#13

Mis à jour par Pierre Cros il y a presque 5 ans

sur https://agents.services.tours.fr/ je ne constate aucun problème (mais je n'avais pas testé avant)

#14

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

J'ai installe uBlock Origin et Privacy Badger (je n'ai pas touché à leurs settings) et ça ne fait rien sur le site de Tours, j'attends le retour de Lille pour tester là aussi.

#15

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Pierre Cros a écrit :

sur https://agents.services.tours.fr/ je ne constate aucun problème (mais je n'avais pas testé avant)

C'est important ça permet déjà d'écarter le FX de Thomas comme "extrêmement casse couille" et mettre le tien dans une catégorie plus normale :)

#16

Mis à jour par Pierre Cros il y a presque 5 ans

J'ai modifié mon /etc/hosts pour contourner le pb DNS de Lille et ça semble marcher à Lille aussi (sans désactiver mes plugins). Je sais pas ce que tu as fait mais ça me donne de l'espoir, merci !

#17

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Pierre Cros a écrit :

J'ai modifié mon /etc/hosts pour contourner le pb DNS de Lille et ça semble marcher à Lille aussi (sans désactiver mes plugins). Je sais pas ce que tu as fait mais ça me donne de l'espoir, merci !

Je n'ai rien fait, ce n'est pas bon signe :)

#18

Mis à jour par Pierre Cros il y a presque 5 ans

Je me suis planté désolé, il fallait tester Hellemmes et pas Lille our constater les problèmes, ce que j'ai fait maintenant sur :
https://agents.mesdemarches.hellemmes.fr/

Je pense que le coupable est Privacy Badger, ça marche quand je le désactive.

#19

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

  • Statut changé de Nouveau à Information nécessaire
  • Assigné à mis à Pierre Cros

On peut fermer ?

#20

Mis à jour par Pierre Cros il y a presque 5 ans

  • Statut changé de Information nécessaire à Fermé

Formats disponibles : Atom PDF