Bug #84017
Une configuration OIDC avec des redirect_uris ne passe plus, même sans sector_identifier
0%
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
Révisions associées
tox.ini: use pytest-cov test context (#84017)
Historique
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.
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 :
- URL : https://git.entrouvert.org/entrouvert/authentic/pulls/190
- Titre : idp_oidc: build the sid using the client_id instead of the sector identifier (#84017)
- Modifications : https://git.entrouvert.org/entrouvert/authentic/pulls/190/files
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.
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
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é
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 :
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 :
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 :
- URL : https://git.entrouvert.org/entrouvert/authentic/pulls/190
- Titre : idp_oidc: build the sid using the client_id instead of the sector identifier (#84017)
- Modifications : https://git.entrouvert.org/entrouvert/authentic/pulls/190/files
Mis à jour par Transition automatique il y a 3 mois
- Statut changé de Résolu (à déployer) à Solution déployée
idp_oidc: build the sid using the client_id instead of the sector identifier (#84017)