Projet

Général

Profil

Development #71868

disparition des portées de téléphone et d’adresse postale

Ajouté par Paul Marillonnet il y a plus d'un an. Mis à jour il y a plus d'un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
30 novembre 2022
Echéance:
% réalisé:

0%

Temps estimé:
Hors marché:
Non
Patch proposed:
Oui
Planning:
Non

Description

Au détour d’une tentative de débogage d’un FS en production avec le support technique FranceConnect, on apprend que les scopes phone et address n’existent plus.
Ils n’apparaissent plus dans la documentation technique : https://partenaires.franceconnect.gouv.fr/fcp/fournisseur-service


Fichiers

Révisions associées

Révision d62d2320 (diff)
Ajouté par Paul Marillonnet il y a plus d'un an

auth_fc: discard deprecated scopes (#71868)

Historique

#1

Mis à jour par Paul Marillonnet il y a plus d'un an

  • Statut changé de Nouveau à En cours
  • Assigné à mis à Paul Marillonnet

Juste les virer de notre côté, il n’y a pas de support legacy de ces scopes par FC, juste si on les demandait dans certains raccordements alors ça a du casser silencieusement de notre côté.

#3

Mis à jour par Paul Marillonnet il y a plus d'un an

Pas besoin d’écrire une migration, ces scopes obsolètes sont juste ignorées par FC (l’équipe support nous apprend cette obsolescence en regardant les logs au détour d’une demande qui n’a rien à voir), juste elles seront virées au fur et à mesure qu’on édite les authentificateurs dans le backoffice.

Peut-être qu’en parallèle de ça on peut faire un tour des prods voir où ces scopes existent encore, pour signaler aux CPFs que depuis quelques semaines/mois elles ne correspondent plus à rien côté FC ?

#4

Mis à jour par Benjamin Dauvergne il y a plus d'un an

Paul Marillonnet a écrit :

Peut-être qu’en parallèle de ça on peut faire un tour des prods voir où ces scopes existent encore, pour signaler aux CPFs que depuis quelques semaines/mois elles ne correspondent plus à rien côté FC ?

Ils n'étaient de toute façon pas fournis ou pas fournis par un idp sur deux (Ameli/Impots) donc je ne pense pas qu'ils aient été utilisé quelque part, on a une gestion particulière dans authentic2-cut qu'on pourra virer.

#5

Mis à jour par Paul Marillonnet il y a plus d'un an

Benjamin Dauvergne a écrit :

Ils n'étaient de toute façon pas fournis ou pas fournis par un idp sur deux (Ameli/Impots) donc je ne pense pas qu'ils aient été utilisé quelque part, on a une gestion particulière dans authentic2-cut qu'on pourra virer.

Ok, comme tu le sens, je me disais qu’on peut tourner quelque chose du genre :

import logging

from authentic2_auth_fc.models import FcAuthenticator

logger = logging.getLogger(__name__)

try:
    fc_authn = FcAuthenticator.objects.get()
except FcAuthenticator.DoesNotExist:
    pass
else:
    for deprecated_scope in ('phone', 'address'):
        if deprecated_scope in fc_authn.scopes:
            logger.warning(f'FcAuthenticator declares deprecated scope {deprecated_scope}.\n')

et informer les éventuel·les CPFs concerné·es de vérifier que rien n’a cassé silencieusement sur les instances en question.
Mais si c’est utilisé nulle part, passons.

#6

Mis à jour par Benjamin Dauvergne il y a plus d'un an

J'ajouterai ça au cas où ça devienne un bug d'envoyer un scope inconnu (comme ça où en faisant une intersection explicite avec la liste des scopes acceptés):

diff --git a/src/authentic2_auth_fc/views.py b/src/authentic2_auth_fc/views.py
index e9755a08..b2bd09a1 100644
--- a/src/authentic2_auth_fc/views.py
+++ b/src/authentic2_auth_fc/views.py
@@ -259,7 +259,9 @@ class LoginOrLinkView(View):
         return state, next_url

     def make_authorization_request(self, request):
-        scope = ' '.join(set(['openid'] + self.authenticator.scopes))
+        scopes = set(['openid'] + self.authenticator.scopes)
+        scopes -= {'phone', 'address'}
+        scope = ' '.join(scopes)

         nonce_seed, nonce, state = hash_chain(3)
#7

Mis à jour par Benjamin Dauvergne il y a plus d'un an

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

Mis à jour par Paul Marillonnet il y a plus d'un an

Benjamin Dauvergne a écrit :

J'ajouterai ça au cas où ça devienne un bug d'envoyer un scope inconnu (comme ça où en faisant une intersection explicite avec la liste des scopes acceptés):

Ok, j’ose espérer qu’on serait prévenu en amont d’un tel changement de comportement de FC :)
J’ai mis à jour la branche l’option B à savoir l’intersection avec les scopes acceptés :

diff --git a/src/authentic2_auth_fc/views.py b/src/authentic2_auth_fc/views.py
index e9755a086..daca3b822 100644
--- a/src/authentic2_auth_fc/views.py
+++ b/src/authentic2_auth_fc/views.py
@@ -259,7 +259,10 @@ class LoginOrLinkView(View):
         return state, next_url

     def make_authorization_request(self, request):
-        scope = ' '.join(set(['openid'] + self.authenticator.scopes))
+        supported_scopes = {key for key, _ in models.SCOPE_CHOICES}
+        scopes = set(self.authenticator.scopes).intersection(supported_scopes)
+        scopes.add('openid')  # mandatory hence not appearing in FC authenticator list
+        scope = ' '.join(scopes)

         nonce_seed, nonce, state = hash_chain(3)

Si c’est bon pour toi je pousse.

#9

Mis à jour par Benjamin Dauvergne il y a plus d'un an

Ok.

#10

Mis à jour par Paul Marillonnet il y a plus d'un an

  • Statut changé de Solution validée à Résolu (à déployer)
commit d62d23203fff4ee441665ab3eb869040143c449b
Author: Paul Marillonnet <pmarillonnet@entrouvert.com>
Date:   Wed Nov 30 11:15:12 2022 +0100

    auth_fc: discard deprecated scopes (#71868)
#12

Mis à jour par Paul Marillonnet il y a plus d'un an

Benjamin Dauvergne a écrit :

[…] on a une gestion particulière dans authentic2-cut qu'on pourra virer.

C’est #71900, patch proposé, si tu veux jeter un œil, qu’on passe tout dans ce cycle.

#14

Mis à jour par Transition automatique il y a plus d'un an

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

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

Automatic expiration

Formats disponibles : Atom PDF