Projet

Général

Profil

Bug #84017

Une configuration OIDC avec des redirect_uris ne passe plus, même sans sector_identifier

Ajouté par Frédéric Péters il y a 5 mois. Mis à jour il y a 3 mois.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
28 novembre 2023
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

La validation "all redirect_uri do not have the same hostname" s'applique désormais (depuis #83365) à un moment où ça n'était pas le cas avant, parce que le get_session_id() est appelé depuis un nouvel endroit :

ValueError: all redirect_uri do not have the same hostname
  File "django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "authentic2/decorators.py", line 40, in f
    return func(request, *args, **kwargs)
  File "django/views/decorators/csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "authentic2_idp_oidc/views.py", line 842, in token
    response = tokens_from_authz_code(request)
  File "authentic2_idp_oidc/views.py", line 815, in tokens_from_authz_code
    'sid': utils.get_session_id(request.session, client),
  File "authentic2_idp_oidc/utils.py", line 284, in get_session_id
    sector_identifier = force_bytes(client.get_sector_identifier())
  File "authentic2_idp_oidc/models.py", line 233, in get_sector_identifier
    raise ValueError('all redirect_uri do not have the same hostname')

https://sentry.entrouvert.org/entrouvert/publik/issues/117075/


Demandes liées

Lié à Authentic 2 - Bug #84092: idp_oidc : l’édition BO d’un client OIDC devrait échouer sur des URIs de redirection portant des noms de domaine différents tandis qu’aucune URI d’identifiant de secteur n’est définieFermé30 novembre 2023

Actions

Révisions associées

Révision 1d92a060 (diff)
Ajouté par Benjamin Dauvergne il y a 3 mois

idp_oidc: build the sid using the client_id instead of the sector identifier (#84017)

Révision 28afd8c4 (diff)
Ajouté par Benjamin Dauvergne il y a 3 mois

tox.ini: use pytest-cov test context (#84017)

Historique

#2

Mis à jour par Benjamin Dauvergne il y a 5 mois

Je peux changer la façon de calculer le sid pour pallier à cette régression, dans l'attente il faut soit supprimer les URLs avec domaine différent (ce qui a été fait sur clermont, bien) soit choisir une URL tronquée à la racine au hasard (la première) et la définir comme sector_identifier.

#3

Mis à jour par Benjamin Dauvergne il y a 5 mois

  • Assigné à mis à Benjamin Dauvergne
#4

Mis à jour par Robot Gitea il y a 5 mois

  • Statut changé de Nouveau à Solution proposée

Benjamin Dauvergne (bdauvergne) a ouvert une pull request sur Gitea concernant cette demande :

#5

Mis à jour par Benjamin Dauvergne il y a 5 mois

J'ai choisi d'utiliser le client_id plutôt que le sector_identifier comme élément différenciant les sid entre RP OIDC, sachant qu'à ma connaissance personne n'utilise le sid à part une demande recette pas encore en prod, ça ne devrait pas provoquer trop de souci au niveau des déconnexions, en tout cas rien qui persiste.

PS: pour préciser on envoie le sid dans les requêtes frontchannel de déconnexion vers les RPs si le RP valide le sid par rapport à ce qu'il a reçu ça pourrait bloquer une requête de déconnexion.

PS2: ça n'aura pas d'effet sur les sessions en cours, l'URL de déconnexion étant prégénérée au moment du SSO et stockée en session.

#7

Mis à jour par Abdessamad Assila il y a 5 mois

Merci Fréd. Est-ce que c'est possible de le déployer encore ce matin? merci

#8

Mis à jour par Paul Marillonnet il y a 5 mois

  • Lié à Bug #84092: idp_oidc : l’édition BO d’un client OIDC devrait échouer sur des URIs de redirection portant des noms de domaine différents tandis qu’aucune URI d’identifiant de secteur n’est définie ajouté
#9

Mis à jour par Robot Gitea il y a 4 mois

  • Statut changé de Solution proposée à En cours

Thomas NOËL (tnoel) a relu et demandé des modifications sur une pull request sur Gitea concernant cette demande :

#10

Mis à jour par Benjamin Dauvergne il y a 4 mois

  • Statut changé de En cours à Solution proposée
#11

Mis à jour par Robot Gitea il y a 4 mois

  • Statut changé de Solution proposée à Solution validée

Thomas NOËL (tnoel) a approuvé une pull request sur Gitea concernant cette demande :

#12

Mis à jour par Robot Gitea il y a 3 mois

  • Statut changé de Solution validée à Résolu (à déployer)

Benjamin Dauvergne (bdauvergne) a mergé une pull request sur Gitea concernant cette demande :

#15

Mis à jour par Transition automatique il y a 3 mois

  • Statut changé de Résolu (à déployer) à Solution déployée
#16

Mis à jour par Transition automatique il y a environ un mois

Automatic expiration

Formats disponibles : Atom PDF