-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enregistrement et connexion #124
Comments
Proposition et idées, à discuter/découper/prioriser cc @johanricher @DaFrenchFrog @Volubyl TL;PLTrop long; pas lu Je pense qu'un plan d'attaque pourrait être celui-ci, découpé en deux phases (A et B), séparées par le fait qu'on se dote à un moment d'un système d'emailing : Phase A :
Phase B : une fois muni d'un système d'emailing... (ex : MailJet)
Analyse détaillée - Etat visé lointain - ExplorationPrésupposés :
1/ ETQ nouvel utilisateur, je peux créer un compte sur l'outil en toute autonomieScénario
APIExistant :
Modifications :
Ajouts :
UI
2/ ETQ utilisateur connecté, je peux modifier mon compte en toute autonomieScénarios
API
UI
3/ ETQ utilisateur, je peux réinitialiser mon mot de passe en cas d'oubliScénario
APIAjouts :
UI
ImplémentationL'implémentation pourra être accélérée (en fait, ça m'a permis de faciliter cette analyse) en s'inspirant d'implémentations existantes, par exemple django-allauth ou django-registration. |
Super boulot @florimondmanca ! Nous n'avons à priori pas d'impératif de temps puisque tant que le schéma organisation ne sera pas implémenté il n'y aura pas d'utilisation en production. |
@DaFrenchFrog En fait je vois plus les phases A et B comme une progression logique, par étapes, ce qui peut nous aider à planifier le travail. Par contre j'ai fait une erreur dans le A/1/ : la création de compte "par invitation" nécessiterait aussi un envoi d'email, pour prévenir la personne qu'elle a été invitée. Ou alors on génère un mot de passe aléatoire, pour envoyer email/tmp_password à la personne et on l'invite à le modifier grâce au A/2/. Dans tous les cas, 2/ (changement de mdp) peut être fait dès aujourd'hui, c'est en fait orthogonal à la question de la création de compte. Et pour le reste, il semble qu'on doive se munir d'un distributeur de mails, même si on peut commencer à développer sans (la conception est plug'n'play - on développera sur un backend de mails "factice" qui log dans la console). Et donc ce système de mails pourrait constituer une étape technique préalable... |
Est-ce que justement ce ne serait pas une façon itérative et minimaliste de traiter ce besoin dans un premier temps ? Une feature d'invitation par email qui est dans un "back office" accessible aux seuls admins du catalogue. Cela nous ferait avancer sur l'implé de l'envoi des emails et un panneau admin dont on va avoir besoin de toute façon. |
Dans le cadre de la création / gestion de compte j'en profite aussi pour remettre sur la table les solutions existantes et qu'on va peut-être être amenés à implémenter dans le futur, en particulier le login avec un compte data.gouv.fr (voir publier.etalab.studio pour un exemple de parcours utilisateur) et Datapass. Autant commencer à y penser dès maintenant. @DaFrenchFrog Est-ce que tu as des insights sur les solutions d'authentification déjà utilisées par les agents au MC ? Est-ce qu'ils utilisent leur adresse email pro pour se connecter à des services ? est-ce qu'ils se connectent une seule fois à l'intranet ou doivent-ils se connecter à chaque outil ? est-ce qu'il y a un SSO... ? |
Lors de l'atelier du 10/06 on n'a pas évoqué le sujet de la méthode de création de compte, cf message de Johan ci-dessus : qu'utilise le MC à ce jour ? Adresse mail pro ? SSO ? J'ai reporté ce qu'on a dit dans la description de ce ticket, mais ça reste encore flou sur la façon de procéder. Je pense qu'on a besoin de design cc @DaFrenchFrog |
@Volubyl @florimondmanca @johanricher Avant de faire le design je préfèrerais qu'on sache précisément quel moyen on utilise pour vérifier l'identité pour avoir le bon discours. Il se trouve qu'aujourd'hui j'ai pour voisin de bureau l'équipe datapass et ils me confirment que l'on peut utiliser datapass comme passerelle d'inscription. L'utilisateur devra se créer un compte datapass (si ce n'est pas déjà le cas) et nous recevrons en retour ses informations et le SIRET de son organisation (qui nous permettra de vérifier le bon ministère) correspondance pour automatiquement valider l'inscription. Ce process implique du coup de lister dès la page de connexion les ministères autorisés afin que l'utilisateur ne s'inscrive pas pour rien. Doc pour l'implémentation : https://github.com/betagouv/api-auth#readme Je pense que cela vaut le coup de se pencher un peu sur le sujet avant de partir de rien. |
J'ai exploré un peu l'option DataPass. J'ai mis qq notes techniques dans #294 mais pour ce qui est du fonctionnel voici ce que j'ai trouvé. Au global, ça semble assez prometteur, avec quelques questions en suspens. Je me suis créé un compte sur auth.api.gouv.fr, en cliquant sur "Créer un compte" sur l'accueil DataPass : https://datapass.api.gouv.fr/ Voici la procédure :
Il semble donc qu'un agent puisse effectivement en toute autonomie créer son compte api.gouv puis s'y rattacher à une organisation quelconque via son SIRET. À noter :
Une fois le compte DataPass de l'agent créé, on peut ensuite ensuite techniquement récupérer les SIRETs des organisations dont fait partie l'utilisateur lors de l'authentification. Si jamais on passe sur un système "Authentification uniquement par DataPass", l'avantage est que ça nous soulage de la gestion des organisations et des comptes utilisateurs (du moins pour les données qui ne sont pas propres à l'outil : il y aura tjr une notion "d'utilisateur Catalogage"). Ça pose cela dit un certain nb de questions sur l'évolution technique et design. Le sujet principal est que le compte utilisateur est alors géré par ce tiers (DataPass). Dès lors :
|
Merci Florimond pour cette exploration. Mes premières réflexions et questions :
Elements de réponses à tes questions :
Si mon interprétation est correcte cela revient à poser la question suivante :
Dans une première version de l'implé : on reste sur 1 personne -> 1 organisation. Dans ce cas laquelle ? les organisations sont-elles classées ou y a-t-il une notion d'organisation principale dans l'API de Datapass ?)
Je ne comprends pas cette question puisque si je comprends bien c'est justement le rôle de Datapass (je me fie à ce que tu dis toi-même : "DataPass permet de gérer les habilitations juridiques pour accéder aux données de l'Etat.") Datapass doit nous certifier qu'un compte utilisateur sur Datapass appartient (par exemple) à un agent d'un ministère. Si Datapass ne répond pas à ce besoin, c'est un deal breaker pour nous.
Pas un problème : une personne avec un compte Datapass ne pourra créer un compte sur catalogue.data.gouv.fr que s'il peut être lié à une organisation sur catalogue.data.gouv.fr. Si Datapass nous certifie l'organisation (SIRET) à laquelle appartient la personne, on n'aura plus qu'à faire un match avec l'organisation sur catalogue.data.gouv.fr. |
Peut-être une version plus simple : Problème : il peut y avoir à terme des conflits si un admin accepte un membre qui est en réalité dans une autre organisation, et que cette organisation est créée par la suite... L'utilisateur ne sera plus dans la bonne organisation. J'ai donc rien dit ! |
Le process de vérification que j'ai indiqué (seulement dans le cas où on rejoint une orga existante sur DataPass) se fait comme @DaFrenchFrog le suggère... Une demande est envoyée côté admins de api.gouv, qui doit alors valider manuellement la création du compte DataPass et son rattachement à l'organisation sous 5 jours ouvrés. Dans le cas de mon "compte doublon" avec l'email Fairness, j'ai envoyé un email dans la foulée à l'adresse de contact pour m'expliquer, et une personne responsable m'a répondu en validant ce nouveau compte. On aurait donc pas besoin de faire cette vérification de notre côté : une fois arrivé dans la partie "inscription" de l'outil, on sait que l'utilisateur fait bel et bien partie des organisations que DataPass nous renvoie. Donc a priori de contribuer à leur catalogue dans le cas où l'organisation en a un. N'est-ce pas ?
Non, l'API DataPass nous renvoie une liste d'organisations indifférenciée, et dans l'UI DataPass il n'y a pas de mécanisme "d'organisation préférée". De mon point de vue, s'il y en a plusieurs, il faut que notre UI demande à l'utilisateur de choisir à quel catalogue contribuer La question subsidiaire, c'est : que se passe-t-il si l'utilisateur souhaite contribuer à plusieurs catalogues ? Auparavant on disait "il faudra se créer un nouveau compte", désormais ce serait impossible, car il y a un compte unique (DataPass) qui a ce lien vers toutes les organisations de l'utilisateur.
Il y a peut-être une incompréhension ici, car je suis d'accord avec le dernier paragraphe de ton msg. Je parlais de restreindre aux agents publics qui peuvent avoir un catalogue (membre d'un "ministère" pour simplifier), en excluant toute personne qui ne serait pas membre d'un ministère. DataPass a un modèle qui ne fait pas cette distinction. En tant que membre de Fairness je peux donc en théorie me connecter à l'outil Catalogue avec mon compte DataPass, mais je ne suis pas censé pouvoir créer de catalogue, car Fairness n'est pas un ministère. Cela veut dire que nous devons avoir de notre côté une liste d'organisations "connues" : si on n'en fait pas partie, on dit par ex "Vous n'avez pas de catalogue, veuillez contacter un admin". Et à ce moment il y a l'étape de validation pour savoir si l'organisation X est autorisée à avoir son catalogue. |
Tu suggères une vérification à la main de chaque inscription, qu'une personne appartient bien à un ministère et ce pour tous les utilisateurs (donc des centaines) ? Qu'est-ce qui permet à un humain de vérifier qu'une personne appartient bien à l'organisation à laquelle il dit appartenir ? C'est justement le rôle de Datapass donc si Datapass le fait on n'aura pas besoin de "valider" une inscription et le parcours d'inscription d'un utilisateur sera automatisé (à condition que son organisation existe déjà sur catalogue.data.gouv.fr et que Datapass fonctionne bien comme je l'ai compris). Comme le dit Florimond :
C'est en effet ce que je comprends. |
Utilisateur qui fait partie de plusieurs organisationsSi le modèle de données de Datapass est : 1 user -> n organisations et qu'on adopte Datapass il me semble qu'il faut qu'on adopte le même modèle de données...
Il faudra alors demander à l'inscription sur catalogue.data.gouv.fr (via Datapass) de choisir parmi ses organisations de rattachements sur Datapass, 1 organisation sur catalogue.data.gouv.fr qui sera la seule dont il fera partie (avec ce que ça a comme conséquences en terme de permission de lecture et d'écriture), et potentiellement sans possibilité de la changer par la suite. C'est une solution mais je suis pas sûr qu'elle soit acceptable. |
Restriction de l'accès à des personnes qui ne sont pas membres d'un ministèreUne personne qui a un compte Datapass ne pourra créer un compte sur catalogue.data.gouv.fr que s'il peut être lié à une organisation sur catalogue.data.gouv.fr (match SIRET dans Datapass -> SIRET dans catalogue.data.gouv.fr). Puisque les organisations et catalogues ne pourront être créés qu'après validation d'un administrateur de catalogue.data.gouv.fr il n'y aucun risque qu'une organisation "Fairness" soit créée et qu'une personne faisant partie de Fairness puisse s'inscrire (puisque l'organisation n'existera pas). Pour les exceptions, nous concernant par exemple puisque nous ne sommes pas des agents de la DINUM, il faudra peut-être conserver le système actuel de connexion par identifiant (adresse email) et mot de passe. En base nos users appartiendraient à l'organisation DINUM. |
Avec @Volubyl on a traduit le processus d'inscription / création orga en termes techniques. Le résultat est dans le Mural. Je rajoute le lien à ce ticket. J'ai aussi mis à jour la description du ticket vu les dernières discussions, sur la base de l'idée : on va passer par DataPass. |
@florimondmanca @Volubyl
Dans le 2ème choix, que se passe-t-il
|
Lors de l'atelier flowchart on avait envisagé l'approche 1 user - 1 orga, sur un mode "limitation pour l'instant". On s'est basé là-dessus pour le diagramme de séquence à droite du flowchart. On le voit dans l'hypothèse "
(Je rajouterais une autre situation : suppression du lien entre l'utilisateur et l'orga dans DataPass -> Pas sûr de ce qu'on devrait faire, qq soit le modèle adopté. Mais est-ce possible par DataPass ? Aucune indication en ce sens dans leur FAQ à ce jour.) Si l'objectif est une sorte d'autonomie d'ici octobre, ça peut être sacrément limitant, car sauf à avoir plusieurs emails pro, un utilisateur ne peut avoir qu'1 seul compte DataPass, pas moyen de contourner. Si ? Dans un modèle 1 user - n orgas, il faudrait décider :
|
1 user - 1 orga. 👍 Je vais compléter les critères d'acceptation en conséquence. |
@johanricher @Volubyl @florimondmanca J'ai mis à jour les maquettes pour coller au workflow du compte datapass. J'ai mis les lien dans le descriptif du ticket. |
Pour les workflows "aucune organisation enregistrée" / "plusieurs organisations enregistrées", j'ai ajouté des commentaires sur Figma. Hormis ces points de détails pour moi c'est ok. 👍 |
La vérification des critères d'acceptation se fera avec une personne du MC, en conditions réelles, donc après la cloture de : |
C'est validé bravo à tous ! |
User stories
catalogue.data.gouv.fr
afin de faire des recherches dans les catalogues des différents ministères.catalogue.data.gouv.fr
afin de savoir si je peux m'enregistrer et me connecter (sinon je dois en faire la demande cf. Création d'une organisation #334)Critères d'acceptation
Pour la prod
Parcours et design
Implémentation
Voir aussi #288
Alternatives envisagées
Idées pour plus tard
The text was updated successfully, but these errors were encountered: