Projet

Général

Profil

Development #60837

gérer la liaison eid csam vers un compte local pré-existant

Ajouté par Paul Marillonnet il y a plus de 2 ans. Mis à jour il y a environ 2 ans.

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

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Cas d’usage où l’usager a déjà un compte existant et veut le lier à son compte CSAM.
C’est l’eid renvoyé par l’IDP dans le NameID qui servira d’info de liaison.


Fichiers

Révisions associées

Révision 1114ee4c (diff)
Ajouté par Paul Marillonnet il y a environ 2 ans

templates: i18n on login block instructions (#60837)

Révision f8566f46 (diff)
Ajouté par Paul Marillonnet il y a environ 2 ans

profile: add csam account-(un)linking capabilities (#60837)

Historique

#1

Mis à jour par Paul Marillonnet il y a plus de 2 ans

  • Statut changé de Nouveau à En cours
  • Assigné à mis à Olivier Renard
#2

Mis à jour par Paul Marillonnet il y a plus de 2 ans

  • Assigné à changé de Olivier Renard à Paul Marillonnet
#3

Mis à jour par Paul Marillonnet il y a plus de 2 ans

  • Sujet changé de gérer lla liaison eid csam vers un compte local pré-existant à gérer la liaison eid csam vers un compte local pré-existant
#4

Mis à jour par Paul Marillonnet il y a plus de 2 ans

Le code qui gère la liaison/déliaison.

Je vais voir si j’ai le temps d’ajouter un tox.ini, un /tests/ avec des tests au moins pour cette fonctionnalité, le Jenkinsfile et le job Jenkins, mais ce sera dans un ticket à part.

#5

Mis à jour par Frédéric Péters il y a plus de 2 ans

Du cosmétique,

                    messages.warning(request, 'Le compte existe déjà, retour sur le compte actuel.')

Plutôt messages.success(requet, "Votre compte est désormais relié à votre carte eID."), on est sur une belle réussite.

 <a href="{% url "fedict-unlink" %}">Vous pouvez dé-lier votre compte de votre espace usager CSAM.</a>

Je serais pour

 <p>Vous pouvez défaire ce lien, il ne vous sera alors plus possible de se connecter à votre compte en utilisant votre carte d’identité.</p>
 <p><a class="button" href="...">Défaire le lien</a></p>
 <a href="{% url "fedict-login" %}?next=/accounts/">Initier la liaison</a>

class="button" et peut-être un libellé qui reprend un terme passé, genre "Lier mon compte avec ma carte".

~~

(formellement aussi il y aurait à compléter/rendre dynamique la liste "(...) lecteur de carte, ou de votre liste de codes personnels (...)" mais ça concernerait également la page de connexion, ne touchons pas à ça).

#6

Mis à jour par Frédéric Péters il y a plus de 2 ans

(et je pensais qu'on n'avait pas de locale/ mais si, donc on peut y aller sur gettext et je traduirai).

#7

Mis à jour par Paul Marillonnet il y a plus de 2 ans

Frédéric Péters a écrit :

Du cosmétique,
[…]

Merci, tout inclus dans 0002.

(formellement aussi il y aurait à compléter/rendre dynamique la liste "(...) lecteur de carte, ou de votre liste de codes personnels (...)" mais ça concernerait également la page de connexion, ne touchons pas à ça).

J’avoue que je n’ai pas assez de connaissance du truc pour voir comment/quel intérêt on à, rendre ça dynamique. Peut-être un ticket à part pour qu’on en discute ?

Frédéric Péters a écrit :

(et je pensais qu'on n'avait pas de locale/ mais si, donc on peut y aller sur gettext et je traduirai).

En fait dans login.html j’ai vu un bout de chaîne tapée en français directement dans le gabarit (en plus de la chaîne dans le profile.html, maintenant retirée), ça m’a dissuadé d’internationaliser quoi ce que ce soit ici. Je le fais finalement partout, dans 0002, après avoir dans 0001 corrigé ladite chaîne.

Une dernière chose que je mets ici pour mémoire : je m’étais imaginé que la première connexion à CSAM créait un compte Publik local de simple façade, où il n’était pas possible de définir un mot de passe local. Mais mes tests des différents parcours avec la configuration discutée dans #32480 me font réaliser que si, au contraire, une fois la connexion à CSAM effectuée, on demande à l’usager de définir son mot de passe local. À partir de cette hypothèse fausse, j’avais réfléchi à ne faire apparaître le fonction de dé-liaison seulement pour les comptes pré-existant à la connexion CSAM (par exemple en testant que le compte Publik est au moins 10 secondes plus vieux que l’identifiant SAML créé à la connexion CSAM). Si jamais la piste de désactivation du login/mdp local pour les comptes créés au retour de connexion CSAM est discutée, il faudra se rappeler de sans doute implémenter cette restriction des options de dé-liaison.

#8

Mis à jour par Frédéric Péters il y a plus de 2 ans

Je le fais finalement partout, dans 0002, après avoir dans 0001 corrigé ladite chaîne.

Nickel.

Mais mes tests des différents parcours avec la configuration discutée dans #32480 me font réaliser que si, au contraire, une fois la connexion à CSAM effectuée, on demande à l’usager de définir son mot de passe local.

Yes.

Si jamais la piste de désactivation du login/mdp local pour les comptes créés au retour de connexion CSAM est discutée, il faudra se rappeler de sans doute implémenter cette restriction des options de dé-liaison.

Je ne pense pas que ça sera souhaité.

Mais ça me fait penser à autre chose, après liaison eid il faudrait mettre à jour + verrouiller les attributs.

Je n'ai pas encore testé mais comme on retourne l'ancien utilisateur je pense que ce n'est pas le cas.

Basiquement il s'agirait de copier les valeurs + flag vérifié de tous les attributs "vérifié" de l'user qu'on mark_as_inactive. (d'ailleurs il y aurait il me semble à plutôt le supprimer, pour ne pas avoir les utilisateurs "en double" dans les tableaux).

#9

Mis à jour par Paul Marillonnet il y a environ 2 ans

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

Frédéric Péters a écrit :

Je ne pense pas que ça sera souhaité.

D’ac.

Mais ça me fait penser à autre chose, après liaison eid il faudrait mettre à jour + verrouiller les attributs.

Je n'ai pas encore testé mais comme on retourne l'ancien utilisateur je pense que ce n'est pas le cas.

Basiquement il s'agirait de copier les valeurs + flag vérifié de tous les attributs "vérifié" de l'user qu'on mark_as_inactive. (d'ailleurs il y aurait il me semble à plutôt le supprimer, pour ne pas avoir les utilisateurs "en double" dans les tableaux).

D’ac, je vais ajouter cela et des tests par la même occasion (en me rebasant sur #61045, et avec l’appui de #61046).

#10

Mis à jour par Paul Marillonnet il y a environ 2 ans

Paul Marillonnet a écrit :

D’ac, je vais ajouter cela et des tests par la même occasion (en me rebasant sur #61045, et avec l’appui de #61046).

Voilà, 0002 modifié dans lequel je propose une version où on met à jour les attributs et leur état de vérification (pas seulement les attributs vérifiés donc).
Et les tests qui vont avec.

#11

Mis à jour par Frédéric Péters il y a environ 2 ans

            for key in app_settings.PROVISION_VERIFIED_ATTRIBUTES:

Pourquoi pas juste old_user.tous_les_attributs_vérifiés ?

(je ne vois pas la raison alors que je vois ici qu'il va falloir fourni cette liste d'attributs).

~~

Et trivial, tu fais des commentaires # le commentaire (deux espaces derrière l'#) et pylint pose dessus "E262 inline comment should start with '# '", ça s'élimine facilement.

#12

Mis à jour par Paul Marillonnet il y a environ 2 ans

Frédéric Péters a écrit :

[...]

Pourquoi pas juste old_user.tous_les_attributs_vérifiés ?

(je ne vois pas la raison alors que je vois ici qu'il va falloir fourni cette liste d'attributs).

Oui ok, je pensais intéressant le fait de pouvoir paramétrer le sous-ensemble d’attributs qui serait copié, indépendamment de leur état de vérification.
Nouveau patch qui laisse tomber cette approche à base d’app_settings et se contente de copier tous les attributs vérifiés.

Et trivial, tu fais des commentaires # le commentaire (deux espaces derrière l'#) et pylint pose dessus "E262 inline comment should start with '# '", ça s'élimine facilement.

Ok, erreur de ma part sur la façon dont pylint souhaite voir apparaître les commentaires inline. Corrigé.

#13

Mis à jour par Frédéric Péters il y a environ 2 ans

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

Go envoie ainsi.

#14

Mis à jour par Paul Marillonnet il y a environ 2 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit f8566f461999ac0a418674b7023c3ba68f96d3af
Author: Paul Marillonnet <pmarillonnet@entrouvert.com>
Date:   Fri Jan 21 11:46:46 2022 +0100

    profile: add csam account-(un)linking capabilities (#60837)

commit 1114ee4c1234bac5ba7e0c2035ff063b6a884e56
Author: Paul Marillonnet <pmarillonnet@entrouvert.com>
Date:   Mon Jan 24 17:46:04 2022 +0100

    templates: i18n on login block instructions (#60837)
#20

Mis à jour par Frédéric Péters il y a environ 2 ans

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

Mis à jour par Transition automatique il y a presque 2 ans

Automatic expiration

Formats disponibles : Atom PDF