Projet

Général

Profil

Development #39406

Fournir dans le backoffice (/manage/) des écrans de configuration de la gestion et de la fourniture des identités

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
30 janvier 2020
Echéance:
05 octobre 2020
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

En l'état actuel il faut passer par le /admin/ django, dont l'interface utilisateur actuelle ne correspond pas aux choix de simplification et de masquage de la complexité des écrans de configuration dans Publik.

De là à, comme discuté par courriel, voir disparaître le /admin/, je ne sais pas.
Mais, encore pour rebondir sur ces discussions, ça pourrait notamment réduire la charge de travail nécessaire de consolidation de la documentation d'Authentic.


Fichiers

login-settings.png (162 ko) login-settings.png Frédéric Péters, 18 avril 2020 13:49
a2-reorder.png (106 ko) a2-reorder.png Frédéric Péters, 20 avril 2020 12:05
a2-add-provider.png (105 ko) a2-add-provider.png Frédéric Péters, 20 avril 2020 12:05
authentic-sp-saml.png (175 ko) authentic-sp-saml.png Serghei Mihai, 30 octobre 2020 10:28
Authenticators-FC.png (152 ko) Authenticators-FC.png Serghei Mihai, 30 octobre 2020 10:35
Authenticators - SAML.png (242 ko) Authenticators - SAML.png Serghei Mihai, 03 novembre 2020 12:24
Authenticators - OIDC.png (271 ko) Authenticators - OIDC.png Serghei Mihai, 03 novembre 2020 12:24
Authenticators-Home.png (8,67 ko) Authenticators-Home.png Serghei Mihai, 04 novembre 2020 14:20

Demandes liées

Lié à Authentic 2 - Development #5541: Add a page to manage providersFermé19 septembre 2014

Actions
Lié à Authentic 2 - Development #6648: Allow managing LDAP servers from the managerNouveau09 mars 2015

Actions
Lié à Plugin FS FranceConnect - Development #29246: Interface de configurationFermé20 décembre 2018

Actions
Lié à Authentic 2 - Development #41671: écran de configuration de la connexion par mot de passeFermé14 avril 2020

Actions
Lié à Authentic 2 - Development #41876: pouvoir agir sur l'ordre d'affichage des blocs d'authentification sur la page de connexionFermé20 avril 2020

Actions
Lié à Gadjo - Development #47132: avoir une icône pour la gestion de l'authentificationRejeté29 septembre 2020

Actions
Lié à Gadjo - Development #47902: style pour les titre des sections désactivéesFermé20 octobre 2020

Actions
Lié à Gadjo - Development #47901: style pour lien-bouton en titre de sectionFermé20 octobre 2020

Actions
Lié à Gadjo - Development #48140: ne pas afficher (optionnel) sur les cases à cocherFermé30 octobre 2020

Actions
Lié à Publik - Development #49198: Paramétrage poussé d'Authentic via l’interface graphiqueFermé08 décembre 2020

Actions
Lié à Authentic 2 - Development #53902: avoir une classe de base pour les modèles de gestion des moyens d'authentificationFermé10 mai 2021

Actions
Lié à Authentic 2 - Development #20697: Avoir une interface de configuration en backoffice permettant de poser des configurations aujourd'hui en settingsFermé14 décembre 2017

Actions
Lié à Authentic 2 - Development #20696: Porter la gestion des clients OIDC dans le /manageFermé14 décembre 2017

Actions

Historique

#1

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

Ça fait un gros ticket quand même.

#2

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

Je voyais vraiment ça comme un « ticket-chapeau ».

#3

Mis à jour par Mikaël Ates (de retour le 29 avril) il y a environ 4 ans

Qui chapeauterait des tickets comme #5541 et #6648 ?

#4

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

#5

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

#6

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

Mikaël Ates a écrit :

Qui chapeauterait des tickets comme #5541 et #6648 ?

Merci (je n'avais pas pensé à chercher en anglais des sous-tickets candidats préexistants).

#7

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

#8

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

  • Lié à Development #41671: écran de configuration de la connexion par mot de passe ajouté
#9

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

À titre d'illustration/maquette possible, sur la forme que ça pourrait prendre, pour qui voudrait avancer là-dessus, image attachée.

#10

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

C'est de la balle, merci pour la maquette. Dès que j'ai bouclé la migration à django 2.2 je m'y colle.

#11

Mis à jour par Serghei Mihai il y a environ 4 ans

  • Lié à Development #41876: pouvoir agir sur l'ordre d'affichage des blocs d'authentification sur la page de connexion ajouté
#12

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

Maquette avec la fenêtre d'ajout d'un fournisseur (exemple, on peut aussi imaginer quelques champs supplémentaires/communs, genre un libellé); et maquette avec l'ordre d'affichage.

#13

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

Il faut prendre en compte les OUs, en fait ces écrans devraient venir en dessous de chaque OU, ça ne peut pas être global.

#14

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

Les méthodes d'authentification viennent avant l'authentification de l'utilisateur, ces paramètres ne sont aujourd'hui pas liés à une OU, comment cela se lierait-il à une OU ?

#15

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

À part login/mdp sur modèles toutes les autres sont liées à une OU (ldap, oidc) sauf SALM où je pense que ça fait juste n'importe quoi actuellement (des utilisateurs sans OU).

#16

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

Ok, mais ça indique pour moi plutôt alors qu'il faut inclure un sélecteur d'OU dans le paramétrage, parce qu'on reste sur une seule page de connexion.

Pour la partie LDAP, je ne l'imaginais pas sur cet écran. (un écran similaire, avec sans doute là aussi un a priori pour une sélection de l'OU dans le paramétrage, plutôt qu'un écran par OU).

#17

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

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

Ok, mais ça indique pour moi plutôt alors qu'il faut inclure un sélecteur d'OU dans le paramétrage, parce qu'on reste sur une seule page de connexion.

Pour la partie LDAP, je ne l'imaginais pas sur cet écran. (un écran similaire, avec sans doute là aussi un a priori pour une sélection de l'OU dans le paramétrage, plutôt qu'un écran par OU).

Ça veut dire que plusieurs collectivités ne pourront jamais gérer leur raccordement LDAP/SAML elle même sans un cas multico, sauf à toucher à tout; j'ai toujours envisagé les OU comme le moyen de cloisonner le BO d'a2 en mode multitenant dans une même instance (et ça marche déjà pour rôles et les utilisateurs). Je trouverai dommage d'abandonner cette objectif pour les services.

Ça n'empêche pas que certains trucs resteront globaux comme :
  • la protection contre les attaque force brut login/mdp (parce qu'on a qu'un formulaire pour tout le monde)
  • les certificats RSA/DSA pour SAML ou OIDC (parce qu'on qu'un idp pour tout le monde)

La gestion des mots de passe, de la validation des mails, de l'unicité du mail ou du username, et la politique de nettoyage des comptes sont déjà par OU.

#18

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

veut dire que plusieurs collectivités ne pourront jamais gérer leur raccordement LDAP/SAML elle même dans un cas multico

Le même écran peut être utilisé, en affichant uniquement les raccordements liés à l'OU en question.

Je trouve utile pour l'administrateur d'avoir cette vue d'ensemble, plutôt qu'avoir à visiter n OU en se disant que peut-être la commune unetelle est reliée à un LDAP. (et je pense aussi ce cas de l'administrateur technique "global" plus commun que la délégation du paramétrage des annuaires à chacune des communes d'une interco).

#19

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

Là ok.

#20

Mis à jour par Paul Marillonnet il y a presque 4 ans

  • Assigné à mis à Paul Marillonnet
#21

Mis à jour par Serghei Mihai il y a presque 4 ans

  • Assigné à Paul Marillonnet supprimé

Je vais prendre à mon retour de congés (le 10 août).

#22

Mis à jour par Serghei Mihai il y a plus de 3 ans

  • Echéance mis à 14 septembre 2020
  • Assigné à mis à Serghei Mihai
#23

Mis à jour par Serghei Mihai il y a plus de 3 ans

  • Echéance changé de 14 septembre 2020 à 28 septembre 2020
#24

Mis à jour par Serghei Mihai il y a plus de 3 ans

  • Echéance changé de 28 septembre 2020 à 05 octobre 2020

Ça sera pour la prochaine itération.

#27

Mis à jour par Serghei Mihai il y a plus de 3 ans

  • Lié à Development #47132: avoir une icône pour la gestion de l'authentification ajouté
#28

Mis à jour par Serghei Mihai il y a plus de 3 ans

#29

Mis à jour par Serghei Mihai il y a plus de 3 ans

#30

Mis à jour par Serghei Mihai il y a plus de 3 ans

  • Statut changé de Nouveau à En cours

Branche à jour avec des tests.
Il manque la possibilité d'ordonner les blocs d'authentification.

J'ai perdu pas mal de temps à essayer de faire un widget permettant de définir le mapping entre les attributs SAML/OIDC et ceux du profil usager, sans arriver à un résultat qui me plaise. Je me laisse ça comme amélioration pour plus tard et me contente d'un champ JSON.

Une petite vidéo de l'usage (les traductions ne sont pas faites): https://perso.entrouvert.org/~smihai/authenticators.mp4

#31

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

J'ai juste regardé la vidéo.

Je trouve que le feedback du titre grisé est suffisant, plutôt qu'aller décaler en hauteur les blocs via un (django.contrib.)message.

Utile aussi de travailler les styles pour réduire la hauteur, cf par exemple hobo qui range les scopes oidc en colonnes.

Communément il me semble qu'on ajoute plutôt du SAML en 1/ pointant une URL 2/ uploadant un fichier; je trouve curieuse l'utilisation d'un textarea. Pour l'oidc je me demande à quel point le .well-known/... est courant dans les implémentations, s'il est courant il pourrait y avoir un seul champ URL, plutôt qu'un champ par endpoint.

De manière plus générale, si une popup est plus haute que l'écran autant en faire une vraie page; mais plutôt je serais pour que l'ajout se fasse en réduisant le nombre de champs, libre ensuite d'ajuster le paramétrage. (par exemple pas besoin de lister les scopes si la valeur par défaut est ok).

~~

Je pensais aussi que côté gadjo on n'affichait plus "(optionnel)" pour les cases à cocher; et les formulaires d'ajout et de modification devraient être cohérents, là on a des astérisques à l'ajout et des (optionnel) à la modification.

#32

Mis à jour par Serghei Mihai il y a plus de 3 ans

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

Je trouve que le feedback du titre grisé est suffisant, plutôt qu'aller décaler en hauteur les blocs via un (django.contrib.)message.

Je trouvais utile d'afficher le message notamment quand on désactive un bloc qui n'est visible qu'en scrollant la page, mais le grisé devrait suffire.

Utile aussi de travailler les styles pour réduire la hauteur, cf par exemple hobo qui range les scopes oidc en colonnes.

En effet, zappé les styles, rajouté.

Communément il me semble qu'on ajoute plutôt du SAML en 1/ pointant une URL 2/ uploadant un fichier; je trouve curieuse l'utilisation d'un textarea.

J'ai fait un peu par analogie avec la gestion des SP dans l'admin, ou on pointe une URL ou un fichier mais c'est le contenu qui est important pour prendre en compte le SP.
Cela permet aussi un peu de "voir" les métadonnées. Parmi tes suggestions je préfère l'upload d'un fichier au lieu de pointer une URL car dans pas mal de cas quand nous demandons les métadonnées on nous file un fichier et non une URL.

Pour l'oidc je me demande à quel point le .well-known/... est courant dans les implémentations, s'il est courant il pourrait y avoir un seul champ URL, plutôt qu'un champ par endpoint.

J'en ai aucune idée. Peut-être les GI men en savent plus. Ici je suis parti sur un ModelForm.

De manière plus générale, si une popup est plus haute que l'écran autant en faire une vraie page; mais plutôt je serais pour que l'ajout se fasse en réduisant le nombre de champs, libre ensuite d'ajuster le paramétrage. (par exemple pas besoin de lister les scopes si la valeur par défaut est ok).

Sur un écran dont la hauteur fait 800px la popup FC s'affiche entièrement.
Idée à côté: il y aurait peut-être ici un peu de travail sur l'amélioration des libellés des scopes, reprendre ceux qui sont définis dans le backoffice client dans FC.

~~

Je pensais aussi que côté gadjo on n'affichait plus "(optionnel)" pour les cases à cocher;

Cela a été fait uniquement dans publik-base-theme: #46436, je fais un ticket pour gadjo.

et les formulaires d'ajout et de modification devraient être cohérents, là on a des astérisques à l'ajout et des (optionnel) à la modification.

en effet, zappé l'attribut css_class des formulaires.

#33

Mis à jour par Serghei Mihai il y a plus de 3 ans

#34

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

De manière plus générale, si une popup est plus haute que l'écran autant en faire une vraie page (...)

Sur un écran dont la hauteur fait 800px la popup FC s'affiche entièrement.

Je parlais de manière générale (en voyant dans ta vidéo que l'ajout SAML dépasse), surtout pour noter que réduire le nombre de champs initialement dans la popup serait je trouve une bonne idée.

#35

Mis à jour par Serghei Mihai il y a plus de 3 ans

Ok, je fais 2 formulaires séparés pour l'ajout et l'édition d'un authenticator.
Rajouté également la possibilité de changer l'ordre d'affichage.

#36

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

Il est parti beaucoup trop gros ce ticket, j'aurai préféré avoir une vision de ce qui allait être fait techniquement en dehors des mockups.

Le fait de vouloir mettre plusieurs formulaires sur une seule page rend les choses très complexes (typiquement pour les mappings ça va être galère, autant gérer ça sur plusieurs pages), je préférerai une page de visualisation, avec des informations minimales (le nom, le type, si c'est conditionné ou pas) et qui permet de gérer l'ordre et changer des petits choses via des popups comme le nom d'un bouton, un message d'intro, la condition, etc... Après pour chaque type de système d'authentification une page formulaire de création et édition, ou alors une page de visualisation plus complète avec pour chaque élément un mini-formulaire en popup (pour la condition d'affichage, à la façon des formulaires/workflow w.c.s.).

Chaque système d'authentification devrait tenir sur 2/3 lignes pas plus sur cette page d'accueil.

Aussi un stockage des settings je ne pense pas que ça faisait parti des choses dont on avait parlé les dernières fois; ça va marcher pour FranceConnect parce qu'on a jamais qu'une seule instance et puis devenir compliqué pour le reste. Je pense plutôt à quelque chose de plus simple comme un modèle de ce genre :

Ça me dérange pas qu'on introduise un stockage de settings, mais j'ai peu que si on commence à s'en servir pour un truc un peu structuré on ne s'en passe jamais et on se sente permis d'y mettre n'importe quoi.

Authenticator :
 - id
 - uuid
 - name
 - order
 - slug : slugfield
 - type : charfield = (login/password, fc)
 - data : jsonfield = (ex. pour FC) {'platform'': 'integration', 'client_id': 'xxx', 'mappings': [...]}
                      (ex. pour login/password) {'use_ou_field': False, 'accept_email_authentication': .., 'retry_timeout_factor': .. ,'retry_timeout_duration':...} (<- on est pas obligé de tout transférer des settings et exposer d'un coup c'est pour donner une idée)

Ça n'est pas plus compliqué qu'un stockage de setting mais c'est plus propre et ça permet de se débarrasser des settings.

J'ai commencé ça mettre les choses dans authentic2/apps, continuons.

Après pour la définition des pages/formulaires on repart de classes AuthenticatorType qui fournissent des URLs et des formulaires pour éditer data (à la manière des modèles passerelle).

Coté OIDC et SAML on pourra définir un modèle hérité et ne pas tout mettre dans data si ça un sens (et pour OIDC faire hériter OIDCProvider de Authenticator) pour essayer de faire converger les choses.

#38

Mis à jour par Serghei Mihai il y a plus de 3 ans

Benjamin Dauvergne a écrit :

Il est parti beaucoup trop gros ce ticket, j'aurai préféré avoir une vision de ce qui allait être fait techniquement en dehors des mockups.

Le fait de vouloir mettre plusieurs formulaires sur une seule page rend les choses très complexes (typiquement pour les mappings ça va être galère, autant gérer ça sur plusieurs pages), je préférerai une page de visualisation, avec des informations minimales (le nom, le type, si c'est conditionné ou pas) et qui permet de gérer l'ordre et changer des petits choses via des popups comme le nom d'un bouton, un message d'intro, la condition, etc... Après pour chaque type de système d'authentification une page formulaire de création et édition, ou alors une page de visualisation plus complète avec pour chaque élément un mini-formulaire en popup (pour la condition d'affichage, à la façon des formulaires/workflow w.c.s.).

Chaque système d'authentification devrait tenir sur 2/3 lignes pas plus sur cette page d'accueil.

Ok, ça serait quelque chose comme dans la capture jointe.

Ça me dérange pas qu'on introduise un stockage de settings, mais j'ai peu que si on commence à s'en servir pour un truc un peu structuré on ne s'en passe jamais et on se sente permis d'y mettre n'importe quoi.

Le but de ce stockage est de ne pas chambouler tout le fonctionnement existant qui se base sur des settings.json tapés dans les répértoires des tenants ou des variables transmises par Hobo.
Certains settings (surtout pour LoginPassword) avec des valeurs par défaut ne sont pas exposés dans le manager mais ont un impact.

J'ai commencé ça mettre les choses dans authentic2/apps, continuons.

Après pour la définition des pages/formulaires on repart de classes AuthenticatorType qui fournissent des URLs et des formulaires pour éditer data (à la manière des modèles passerelle).

Coté OIDC et SAML on pourra définir un modèle hérité et ne pas tout mettre dans data si ça un sens (et pour OIDC faire hériter OIDCProvider de Authenticator) pour essayer de faire converger les choses.

Je regarde tout ça.

#39

Mis à jour par Pierre Cros il y a plus de 3 ans

  • Lié à Development #49198: Paramétrage poussé d'Authentic via l’interface graphique ajouté
#40

Mis à jour par Serghei Mihai il y a presque 3 ans

  • Lié à Development #53902: avoir une classe de base pour les modèles de gestion des moyens d'authentification ajouté
#41

Mis à jour par Frédéric Péters il y a presque 3 ans

  • Lié à Development #20697: Avoir une interface de configuration en backoffice permettant de poser des configurations aujourd'hui en settings ajouté
#42

Mis à jour par Mikaël Ates (de retour le 29 avril) il y a presque 2 ans

#43

Mis à jour par Valentin Deniaud il y a plus d'un an

  • Statut changé de En cours à Fermé

Travail complété dans les tickets liés.

Formats disponibles : Atom PDF