Projet

Général

Profil

Development #67875

interface ajout d'un SSO SAML, difficultés de compréhension

Ajouté par Thomas Noël il y a plus d'un an. Mis à jour il y a plus d'un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
02 août 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Dans la nouvelle interface d'ajout d'un fournisseur SAML, on a quelques champs un peu difficile à comprendre. Que faut-il indiquer, à quoi servent-ils, etc.

  • « Domaine : Domaine à associer à l’utilisateur, utilisé lors de l’affectation d’un identifiant. » . C'est une notion qui n'est ni dans SAML ni dans Authentic... de quoi s'agit-il ? Par défaut c'est "saml" qui est proposé. La phrase d'aide parle de « l’affectation d’un identifiant » ce qui obscurcit encore le truc :)
  • « Politique de format du NameID : Le format du NameID à demander. ». C'est un simple input, il faudrait proposer un exemple au moins, pour comprendre ce qui est attendu.
  • « Politique du NameID autorisant la création : » sauf que c'est une case à cocher... à quoi sert-elle ? On attendrait plutôt un verbe ici, pour savoir s'il faut faire ou pas "quelque chose", en fonction que la case est cochée ou pas.

Voilà, ce ticket juste pour mieux comprendre et si possible proposer de meilleurs textes ou traductions.


Fichiers

Révisions associées

Révision a11ddf17 (diff)
Ajouté par Valentin Deniaud il y a plus d'un an

auth_saml: clarify some parameters (#67875)

Révision 45a80d76 (diff)
Ajouté par Valentin Deniaud il y a plus d'un an

authenticators: allow splitting configuration form (#67875)

Historique

#1

Mis à jour par Thomas Noël il y a plus d'un an

  • Assigné à mis à Paul Marillonnet
#2

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

Thomas Noël a écrit :

Dans la nouvelle interface d'ajout d'un fournisseur SAML, on a quelques champs un peu difficile à comprendre. Que faut-il indiquer, à quoi servent-ils, etc.

Oui, on a fait le choix de traduire alors qu’on utilisait jusque là les termes anglais du settings.json.

  • « Domaine : Domaine à associer à l’utilisateur, utilisé lors de l’affectation d’un identifiant. » . C'est une notion qui n'est ni dans SAML ni dans Authentic... de quoi s'agit-il ? Par défaut c'est "saml" qui est proposé. La phrase d'aide parle de « l’affectation d’un identifiant » ce qui obscurcit encore le truc :)

C’est le "realm", il est notamment utilisé dans le username template, pour générer des username du genre <NameID>@<realm>.

  • « Politique de format du NameID : Le format du NameID à demander. ». C'est un simple input, il faudrait proposer un exemple au moins, pour comprendre ce qui est attendu.

Là je pense qu’il faudrait un choix parmi "persistent", "temporaire (transient)" et "non spécifié". En l’état je pense que le comportement par défaut dans l’authn SAML du BO reste le même que lorsque ce format n’était pas spécifié dans le settings.json, à savoir un format persistent par défaut.

  • « Politique du NameID autorisant la création : » sauf que c'est une case à cocher... à quoi sert-elle ? On attendrait plutôt un verbe ici, pour savoir s'il faut faire ou pas "quelque chose", en fonction que la case est cochée ou pas.

C’est une option un peu obscure de SAML pour permettre au SP de préciser que l’IdP ne doit pas créer de NameID pour l’usager qui se connecte s’il ne lui en connait pas déjà un. Si aucun NameID n’est connu alors le SSO échoue. Les exemples d’application dans les spécs SAML ne sont pas clairs. Je ne nous connais pas de raccordements où cette option serait à False, je pense qu’on pourrait retirer cette option de l’UI.

#3

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

  • Assigné à changé de Paul Marillonnet à Valentin Deniaud

Je vais m'occuper des ajustements proposés par Paul.

#4

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

Valentin Deniaud a écrit :

Je vais m'occuper des ajustements proposés par Paul.

Et en fait pas du tout, j'ai fait un tour sur le SaaS et la majorité des ces paramètres ne sont jamais modifiés, d'autres seulement à un endroit¹.

Il ne faut donc simplement pas les afficher dans la plupart des cas, pour ça je découpe le formulaire de configuration actuel en deux, la deuxième partie étant cachée dans sous un menu « Configuration avancée » accessible depuis la page d'édition classique.

¹ Les très rares endroits où un paramètre « avancé » est modifié peuvent être problématiques, car on risque de ne jamais aller consulter la page en question.
Actuellement la description affiche des champs spécifiés explicitement, s'ils sont non vides : description_fields = ['show_condition', 'metadata_url', 'metadata_path', 'metadata', 'provision'], liste déterminée arbitrairement selon un critère d'utilité.
On pourrait à la place avoir un fonctionnement automatique, c'est à dire afficher les champs qui ont une valeur différente de celle par défaut. À ce moment là un champ « avancé » modifié sautera aux yeux.
J'ajoute un patch pour faire ça ?

#5

Mis à jour par Frédéric Péters il y a plus d'un an

¹ Les très rares endroits où un paramètre « avancé » est modifié peuvent être problématiques, car on risque de ne jamais aller consulter la page en question.

L'idée serait alors d'utiliser des onglets et l'onglet "Avancé" serait sur ce cas précis marqué d'une pastille pour indiquer qu'il y a quelque chose dedans.

afficher les champs qui ont une valeur différente de celle par défaut
J'ajoute un patch pour faire ça ?

Mais oui ça peut aider dès maintenant de faire ça.

#6

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

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

L'idée serait alors d'utiliser des onglets et l'onglet "Avancé" serait sur ce cas précis marqué d'une pastille pour indiquer qu'il y a quelque chose dedans.

Ce n'est pas bizarre d'avoir un onglet "Avancé" tout blanc dans 99% des cas ? Ou on y mettrait aussi le bouton pour accéder à ces réglages ?

#8

Mis à jour par Frédéric Péters il y a plus d'un an

Ce n'est pas bizarre d'avoir un onglet "Avancé" tout blanc dans 99% des cas ?

J'ai mal expliqué; je réfléchissais ainsi : la question d'afficher les trucs vient du fait qu'il y a le "formulaire de configuration actuel en deux" et de là "risque de ne jamais aller consulter la page en question"; la page en question étant la page "configuration avancé".

De là, je défaisais cette séparation du formulaire de configuration en deux pages distinctes, et réunies sur une seule page, avec des onglets, le fait qu'une configuration avancée soit posée serait visible par la pastille sur l'onglet. Et "risque de ne jamais aller consulter la page en question" n'existe plus vu qu'on est sur un seul écran de configuration.

Ensuite, si on arrive à un moment à ne rien avoir comme option qui mérite d'exister, très bien, on arrive aussi ainsi à éliminer le "risque de ne jamais aller consulter la page en question".

#9

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

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

Compris, il s'agit de découper le formulaire en onglets. J'avais la tête dans les onglets de la page de présentation en oubliant qu'ils n'existent même pas encore (#67025).

#10

Mis à jour par Frédéric Péters il y a plus d'un an

Note que ça me va d'avoir ça plus tard, que la solution actuelle + uniquement afficher les paramètres avancés configurés, voire ne pas les afficher et accepter le "risque de ne jamais aller consulter la page en question", ça me va aussi.

#11

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

Revoici avec des onglets pour le formulaire (autant partir direct là dessus pour éviter d'avoir à défaire plus tard).

#12

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

#13

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

Valentin Deniaud a écrit :

Revoici avec des onglets pour le formulaire (autant partir direct là dessus pour éviter d'avoir à défaire plus tard).

Testé en local, relu. C’est top. Le découpage entre conf générale et avancée est nickel pour moi. Je vais vérifier avec l’auteur du ticket que cette nouvelle interface lui convient, et on pourra valider ensuite.

#14

Mis à jour par Thomas Noël il y a plus d'un an

Paul Marillonnet a écrit :

Valentin Deniaud a écrit :

Revoici avec des onglets pour le formulaire (autant partir direct là dessus pour éviter d'avoir à défaire plus tard).

Testé en local, relu. C’est top. Le découpage entre conf générale et avancée est nickel pour moi. Je vais vérifier avec l’auteur du ticket que cette nouvelle interface lui convient, et on pourra valider ensuite.

J'aurais envoyé durée de vie ainsi que timeout des métadonnées dans la configuration avancée (je n'ai absolument jamais joué avec ça).

Aussi sur les copies d'écran les champs paraissent petit, surtout "condition" ou "chemin d'accès", y'a pas moyen de tous les passer en 100% de largeur ?

Pour le reste, oui, c'est cool top.

#15

Mis à jour par Mikaël Ates il y a plus d'un an

Provisionner -> Approvisionner.

#16

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

Thomas Noël a écrit :

J'aurais envoyé durée de vie ainsi que timeout des métadonnées dans la configuration avancée (je n'ai absolument jamais joué avec ça).

Déplacé (avec en plus un bout qui masque les champs si l'URL des métadonnées n'est pas renseignée).

Aussi sur les copies d'écran les champs paraissent petit, surtout "condition" ou "chemin d'accès", y'a pas moyen de tous les passer en 100% de largeur ?

Bien vu, tous les champs sont à 100% de largeur dans a2 mais là le CSS passait à côté à cause du form.as_p, changé en form|with_template et ça roule à nouveau.

Mikaël Ates a écrit :

Provisionner -> Approvisionner.

C'est sûrement plus français mais pas moins bizarre, je préfère carrément mettre le help_text à la place du libellé (Créer l’utilisateur si son identifiant n’existe pas déjà : oui/non).

#17

Mis à jour par Thomas Noël il y a plus d'un an

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

Create user if their username does not already exists

Ok l'anglais et moi, mais c'est pas plutôt "its username" ?

Le reste me semble ok, je valide donc, parce que ça sera au pire bien traduit :)

#18

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

Thomas Noël a écrit :

Ok l'anglais et moi, mais c'est pas plutôt "its username" ?

Je ne crois pas, le its ça se réfère à une chose pas à une personne, alors que le their se réfère à une personne de manière non genrée.

#19

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

  • Statut changé de Solution validée à Résolu (à déployer)
commit fb981b6a88776fe960585feebefb53b558dbca6b
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Tue Aug 16 16:57:02 2022 +0200

    authenticators: allow splitting configuration form (#67875)

commit 6f9368a09a47b5d5dd3dddffae962778a651acb6
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Mon Aug 22 11:27:40 2022 +0200

    auth_saml: clarify some parameters (#67875)
#20

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

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

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

Automatic expiration

Formats disponibles : Atom PDF