web-dev-qa-db-fra.com

Argument pour / contre la division du processus de connexion en vérification du nom d'utilisateur, puis demande le mot de passe?

Mon patron insiste depuis un moment pour que notre processus de connexion soit divisé en deux étapes sur des pages distinctes: sur la première page, demandez l'adresse e-mail de l'utilisateur. Sur la deuxième page, affichez "utilisateur trouvé" et demandez le mot de passe, ou "utilisateur introuvable" et demandez à nouveau un e-mail.

Il insiste sur le fait que c'est beaucoup plus facile pour nos utilisateurs qui oublient souvent leurs identifiants ou s'ils ont déjà un compte. Je suis depuis longtemps contre cette approche car elle oblige chaque utilisateur à passer par deux étapes à chaque connexion. (Je me demande également s'il s'agit d'un problème de sécurité, sachant qu'il confirmera la présence d'un e-mail dans notre système.) Je préférerais avoir une page de connexion plus standard avec e-mail (tous nos noms d'utilisateur sont des e-mails) et un mot de passe , et un lien très clair pour "mot de passe oublié?".

Aucun de nous n'a de données solides pour soutenir nos théories, et nous avons des choses plus importantes à faire que de tester A/B quelque chose qu'il ne pense même pas être un problème. Je me demandais simplement si quelqu'un ici pourrait fournir des arguments ou des données solides pour ou contre l'une ou l'autre approche. J'aime considérer le design UX, mais je ne suis pas un expert.

58
Michael

Sur la deuxième page, affichez "utilisateur trouvé" et demandez le mot de passe, ou "utilisateur introuvable" et demandez à nouveau un e-mail.

Un argument convaincant contre l'approche en deux étapes est que la conception proposée permettrait à toute personne non authentifiée de déterminer si un compte de messagerie s'est inscrit sur ce site.

C'est un problème à la fois pour la sécurité et pour la confidentialité.

En tant qu'utilisateur, je ne voudrais pas qu'un site confirme à n'importe qui si je me suis inscrit à leur service.

En tant que développeur, je ne voudrais pas que mon application donne volontairement à un utilisateur malveillant un moyen facile d'énumérer les comptes d'utilisateurs.

Ces deux aspects sont des inconvénients assez convaincants de l'approche. Je recommanderais de se concentrer sur la simplification du processus "j'ai oublié mon mot de passe/nom d'utilisateur" pour le petit pourcentage qui en a besoin plutôt que de changer le processus de connexion pour tout le monde au détriment de leur vie privée et potentiellement de leur sécurité.

104
Charles Wesley

Si vous voulez quelque chose de convaincant que votre patron puisse comprendre, je vous suggère de lui parler dans le langage universel connu sous le nom d'argent, dinero, ducats, dolla-dolla-bill-y'all

Votre situation actuelle

Vous:

La conception que vous proposez créera une faille de sécurité et votre système risque d'être éliminé pour les noms d'utilisateur valides

Boss:

Faites ce que je dis et dites à la boîte informatique magique de ne pas être en danger

Ce que vous devez viser

Vous:

Concevoir le système de connexion pour s'adapter à un processus en deux étapes avec les messages d'erreur "Utilisateur trouvé/non trouvé" permettrait à nos concurrents d'obtenir facilement une liste de noms d'utilisateur dans notre système. Si certains des noms d'utilisateur correspondent aux noms d'utilisateur de leur système, ils sauront qui cibler s'ils veulent attirer vos utilisateurs/clients loin de vous. Même si vos noms d'utilisateur ne correspondent pas aux leurs, votre concurrent aura une liste complète des noms de domaine avec lesquels vous faites affaire.

Boss:

Putain de merde, vous avez raison, pouvons-nous faire quelque chose pour atténuer cette fuite de données?

Vous:

Malheureusement, il n'existe aucun moyen à 100% de distinguer un utilisateur réel qui ne se souvient pas de son nom d'utilisateur d'un concurrent essayant d'obtenir des données. Ne jamais afficher un message "Utilisateur trouvé/non trouvé" est l'itinéraire le plus sûr que nous pouvons emprunter, qu'il s'agisse d'un processus de connexion en 1 ou 2 étapes

Caveat

Vous donnez peut-être déjà ces informations, mais de manière moins pratique:

Avez-vous une page d'inscription en ligne où l'utilisateur est averti si le nom d'utilisateur est déjà saisi? <- votre patron pourrait facilement vous en parler.

^ La seule différence entre cela et la page de connexion en 2 étapes est que la page d'inscription nécessite généralement beaucoup plus de champs pour être remplie et doit passer d'autres vérifications de validation avec un Captcha ou quelque chose.

50
MonkeyZeus

La règle générale est que chaque page de processus diminue le taux de réussite de 50%. C'est probablement un peu exagéré, mais les gens considèrent une page comme une unité de travail, peu importe à quel point elle est difficile. Un assistant de deux ou trois pages commence à se sentir lourd.

EDIT: quelqu'un s'est plaint aux mods qu'il n'y avait aucune citation pour ma réponse. La seule citation que j'ai est "c'est ce que les gens de l'interface utilisateur me disent toujours". Peut-être qu'une âme aimable pourrait fournir soit une citation qui discute de la prévalence de cette sagesse reçue, soit une qui la confirme réellement (ou même la démystifie).

16
Malvolio

Je ne sais pas si c'est exactement une préoccupation UX, mais les gestionnaires de mots de passe (LastPass, KeePass, etc.) peuvent être configurés pour remplir automatiquement ou semi-automatiquement les champs de nom d'utilisateur et de mot de passe lorsqu'ils apparaissent sur la même page. Mais pour autant que je sache, aucun d'eux ne reconnaîtra seul un champ de mot de passe, sans champ de nom d'utilisateur correspondant. Peut-être qu'ils pourraient être programmés pour le faire, et donc le "blâme" de cette situation devrait incomber aux auteurs du gestionnaire de mots de passe et/ou de son interface de navigateur, mais pour l'instant la réalité est que la séparation des champs de nom d'utilisateur et de mot de passe sur différentes pages signifie que je dois copier manuellement le mot de passe dans le gestionnaire de mots de passe, ce qui augmente considérablement le nombre de clics nécessaires pour se connecter.

16
David Z

Le plus grand risque que j'y vois, comme vous l'avez mentionné, concerne la sécurité. Cependant, certaines entreprises ont réussi à utiliser ce processus en deux étapes d'une manière qui améliore également la sécurité. Essentiellement, ce que ces entreprises ont fait est de demander à chaque utilisateur d'ajouter une image à son profil, cette image apparaîtrait après avoir mis son e-mail. Si l'image correspond à celle attribuée à leur profil, ils doivent indiquer leur adresse e-mail. Si l'image ne correspond à rien dans le fichier, ils affichent une image aléatoire (peut-être basée sur un hachage?).

Cependant, cela ne résout pas votre problème (ou peut-être que c'est le cas?). Votre problème de dire que le compte a été trouvé et le compte introuvable peut également être résolu avec AJAX (ou similaire) en tournant le champ en rouge si l'e-mail/nom d'utilisateur n'est pas trouvé. Cela supprime cette étape supplémentaire.

Selon la façon dont vous êtes conscient de la sécurité, vous pouvez être l'approche AJAX serait la meilleure pour UX. Normalement, je dirais que c'est une mauvaise décision et que cela ne devrait pas être fait. Mais si vous pouvez mettre dans les sauvegardes pour limiter le nombre de recherches par IP/cookie. Cela rendrait au moins un peu plus sûr.

6
Francis Pelland

Google a divisé la procédure de connexion en deux pages, ce qui a entraîné de nombreuses réponses négatives des utilisateurs: http://www.ghacks.net/2015/05/15/google-splits-sign-in-process-into -deux pages /

Les plaintes des utilisateurs se concentrent sur plusieurs aspects différents. Tout d'abord, le processus de connexion prend plus de temps car il est désormais séparé sur deux pages. Même si vous utilisez un seul compte, vous devez suivre le même processus que les clients multi-comptes.

Bien que le processus puisse nécessiter le même nombre de clics pour se connecter, il interrompt le flux pour les utilisateurs qui ont utilisé le clavier (touche de tabulation) pour basculer entre les champs pour se connecter.

Deuxièmement, le nouveau processus brise la plupart des gestionnaires de mots de passe qui ne peuvent plus remplir automatiquement les informations du formulaire ou vous connecter automatiquement. Au moins certains gestionnaires de mots de passe mettront à jour leurs programmes ou proposeront des solutions pour le nouveau processus de connexion à Google.

5
bancer

Cette approche va à l'encontre du principe d'avoir le moins d'étapes possible et réduit donc très probablement la satisfaction et la conversion des utilisateurs.

Un autre inconvénient est la fuite de la vie privée (ce qui rend très facile de vérifier si certains e-mails sont enregistrés ou non).

Les avantages que je vois sont purement liés à la conception et à la programmation, par exemple vous obtenez une conception plus propre en n'ayant pas à ajouter de champ de mot de passe et de liens d'inscription/mot de passe oublié sur la page principale. Donc, moins de choses à craindre et à attirer l'attention. Parfois aussi, en fonction de la logique backend, du framework ou des cms que vous utilisez, il pourrait être plus facile de structurer ce processus de cette manière. Cependant, ce ne sont pas des problèmes liés à l'UX et vos utilisateurs n'y gagnent pas grand-chose, sinon rien.

De plus, pourquoi voudriez-vous demander à nouveau un e-mail? C'est beaucoup d'efforts pour taper leur e-mail au nom de l'utilisateur. Si vous décidez de suivre ce modèle, montrez simplement l'e-mail entré et demandez à l'utilisateur de confirmer qu'il est correct.

2
Harijs Deksnis

Je pensais que je devais proposer au moins une raison pour avoir une connexion sur plusieurs pages.

Le seul véritable avantage (inconvénient dans la plupart des cas) d'utiliser plusieurs pages, au lieu d'une, est que l'utilisateur dispose d'un flux attendu qu'il doit exécuter . Cela pourrait aider les sites qui n'ont pas de flux conventionnel ou les sites où le cas d'utilisation attendu est un processus étape par étape. Une tactique utilisée par les sites où être un utilisateur nécessite un paiement est qu'il divise le contenu qui doit être entré pour que l'utilisateur se sente engagé à continuer.

Je pense qu'il y a au moins un exemple où la connexion de deux pages est logique.

Sites où l'utilisateur moyen n'est pas l'utilisateur moyen de l'ordinateur , mais à la place uniquement sur son ordinateur lorsqu'il est forcé. De plus, la plupart des utilisateurs ne se connectent qu'une seule fois ou peut-être plusieurs fois et n'ont plus besoin de se reconnecter. Ce cas devient de moins en moins courant.

Il se trouve que je mentionne cela parce que j'étais un support téléphonique pour une entreprise qui avait souvent des hommes ou des femmes plus âgés essayant de comprendre ce qu'ils devaient faire pour que le produit (x) fonctionne à nouveau pour leur enfant. Ils ont dû entrer un e-mail et un mot de passe à un moment donné, mais ils n'en ont plus eu besoin que beaucoup plus tard.

Aperçu rapide sur l'utilisateur

Ce type d'utilisateur ne se connecte qu'une seule fois pour effectuer une tâche particulière. Lorsqu'ils arrivent sur la page principale, ils peuvent se perdre instantanément avec toutes les informations (même si cela ne semble pas beaucoup). Ils veulent juste se connecter, faire quelque chose et sortir. La simplicité est l'ami de cet utilisateur et moins il a d'options, mieux c'est. S'ils ont des choix où ils ne savent pas quoi faire, ils essaient de choisir ce qui semble être le choix "le plus courant", qui pourrait être déterminé par la taille de l'écran dont il dispose ou simplement par l'option qu'ils ont vue en premier.

Comparaison d'une seule page par rapport à plusieurs pages pour l'utilisateur ci-dessus

Page unique: le premier utilisateur accède à la page d'entrée. Espérons que la partie connexion/enregistrement soit très visible pour cet utilisateur. Ils peuvent ne pas remarquer la partie du registre ou se demander s'ils se sont déjà inscrits. Après tout, ils se sont inscrits sur ce site il y a longtemps. Ils tentent de deviner les noms d'utilisateur/mots de passe. Finalement, ils essaient toutes les combinaisons connues et réalisent qu'ils doivent s'enregistrer, ou ils remarquent enfin l'option d'enregistrement.

Multi Page: l'utilisateur pour la première fois atterrit sur la page d'entrée. Cette fois, le site Web demande leur nom d'utilisateur. (Qui, encore une fois, devrait être très visible). Ils entrent leur e-mail et le site Web leur indique la prochaine étape. Dans ce cas, cette étape consiste à s'inscrire et l'utilisateur a déjà rempli l'e-mail.

Conclusion

Je ne voulais pas vraiment écrire un article, mais il était important de noter que l'utilisation attendue et le public cible de votre site ont une grande influence sur la conception. Il se peut que votre patron s'attende au type d'utilisation ou au public mentionné ci-dessus, ou prévoit qu'un grand nombre d'utilisateurs ne connaissent pas leur nom d'utilisateur en raison d'un autre système qui peut être nommé de la même manière ou connecté. Peut-être que votre patron lui-même oublie toujours le nom d'utilisateur qu'il a utilisé, ou peut-être qu'il n'a pas pris en compte le fait que vous puissiez lui dire si le nom d'utilisateur est correct sur la première page. Je crois que dans la plupart des cas pour le monde d'aujourd'hui, une seule page de connexion devrait être suffisante et souhaitable. Il y a cependant des cas autrement.

2
DoubleDouble

Il y a quelques années, j'ai lu un article de blog où Mailchimp a pu réduire de 66% les échecs de connexion, principalement en permettant aux utilisateurs de savoir si c'était leur nom d'utilisateur ou leur mot de passe qui était incorrect:

https://blog.mailchimp.com/social-login-buttons-arent-worth-it/

(EDIT: Mailchimp semble avoir supprimé son blog - essayez plutôt ce lien Internet Archive: https://web.archive.org/web/20140321161148/https://blog.mailchimp.com/social-login- boutons-ne valent pas la peine / )

Ils l'ont toujours fait avec une seule page, ils ont juste changé le message d'erreur.

1
Saxon Druce

Du point de vue de l'expérience utilisateur, je le garderais sur une seule page, mais je spécifierais explicitement pourquoi la connexion n'a pas fonctionné.

Dire quelque chose de générique comme "le nom d'utilisateur ou le mot de passe était incorrect" est ambigu et laisse beaucoup à désirer. Je trouve que c'est une source d'immense frustration, car ce n'est pas particulièrement utile. Quel était le problème? Était-ce mon nom d'utilisateur ou mon mot de passe?

Je pense que l'argument selon lequel c'est un risque pour la sécurité est exagéré. Comme d'autres l'ont mentionné:

  • pratiquement tous les sites empêchent les connexions par e-mail/nom d'utilisateur en double. Comment dire à quelqu'un qu'un nom d'utilisateur/e-mail est déjà utilisé est plus sûr que de dire "votre nom d'utilisateur était incorrect"?
  • presque tous les liens "mot de passe oublié" nécessitent que vous saisissiez votre adresse e-mail/nom d'utilisateur pour récupérer le mot de passe; dans presque tous les cas, si vous entrez un nom d'utilisateur/e-mail invalide, il crachera un message comme "ce nom d'utilisateur/e-mail n'existe pas dans notre système"; encore une fois, cela revient à dire "le nom d'utilisateur était incorrect" pendant le processus de connexion.
1
Senseye

Cette discussion se concentre trop sur un utilisateur valide essayant d'accéder. C'est une énorme faille de sécurité pour annoncer au pirate potentiel si la combinaison ID et MOT DE PASSE présentée était mauvaise en raison de l'identifiant ou du mot de passe. Briser la connexion en deux parties et annoncer l'échec facilite les ordres de travail des pirates.

Je poste toujours "Combinaison ID/mot de passe invalide" ... laissez les pirates deviner!

1
Andrew

À moins que vous ne fassiez qu'une petite page avec un mot de passe sans importance, je vais vous suggérer de n'utiliser que l'authentification de plusieurs pages. Voici pourquoi:

1.) Si la sécurité est primordiale dans votre application, vous devez utiliser l'authentification multifacteur. Mettre l'authentification multifactorielle sur une seule page peut être déroutant pour certains utilisateurs, et il est préférable de séparer chaque facteur dans leur propre page distincte.

2.) Si vous souhaitez disposer de n'importe quel type de fonctionnalité d'authentification unique où un utilisateur n'a pas nécessairement besoin d'entrer sur votre site Web à l'aide d'une URL spéciale, il peut être très pratique de déterminer quel fournisseur sso basé sur le nom d'utilisateur. Il fournit également une cohérence entre votre flux de connexion normal et un flux SSO pour avoir les pages sur plusieurs pages.

3.) La connexion à une application devrait être difficile. Après tout, les informations personnelles d'une personne sont potentiellement incluses dans votre candidature. Par conséquent, la connexion doit se produire dans le cadre d'une session dédiée à la connexion. Si un utilisateur ne parvient pas à saisir les informations après autant de tentatives, le compte doit être temporairement verrouillé. Ou chaque échec de connexion successif devrait nécessiter une période de plus en plus longue avant que l'utilisateur puisse réessayer. Bien que cela ne s'exclue pas mutuellement pour une approche à plusieurs pages, la vérification de l'existence d'un courrier électronique d'un utilisateur via une page de connexion est un problème si l'utilisateur ne peut pas effectuer une attaque par force brute sur celle-ci. Limitez le nombre de tentatives auxquelles l'utilisateur peut se connecter.

1
Jim Pedid

Hmmmmm. De nombreux arguments contre le processus en deux étapes.

Cependant, de nombreuses institutions financières font exactement cela. De nombreuses banques et maisons de courtage. Au cours des trois derniers jours, je me suis connecté à trois institutions financières qui utilisent cette méthode.

0
joe

D'autres ont commenté les problèmes de sécurité et de confidentialité. Personnellement, je pense qu'ils sont un peu exagérés (voir les remarques @ user34305) mais en tout cas, ce n'est qu'une raison pour éviter d'être précis dans les commentaires. Vous pouvez toujours mettre votre processus de connexion sur une seule page et informer l'utilisateur que le nom d'utilisateur est inconnu (dynamiquement ou non) ou avoir deux pages, mais n'afficher qu'un message non informatif à la fin.

Mais même si vous finissez par révéler si l'adresse e-mail est connue du système, il y a toujours de bonnes raisons de tout garder sur une seule page. Un qui n'a pas encore été mentionné est que le respect des normes de facto est généralement bon pour la convivialité. Ne brisez pas les habitudes et les attentes des utilisateurs sans une bonne raison et une réflexion approfondie. Et la soumission du nom d'utilisateur/e-mail et du mot de passe sur la même page semble assez standard.

0
Gala

Je présenterais l'argument au patron en utilisant des mathématiques simples. Suggérez-lui que l'ID utilisateur et le mot de passe peuvent avoir chacun deux chiffres et demandez-lui (montrez?) De calculer le nombre de permutations pour deviner une combinaison valide (en supposant qu'une seule existe dans le système).

Avec l'approche de connexion/mot de passe séparée, vous avez 1 chance sur 100 d'obtenir la bonne connexion, puis encore 1: 100 d'obtenir le mot de passe correct, il y a donc 1 chance sur 200 d'obtenir la bonne combinaison login/mot de passe.

Comparez cela avec les combinaisons 1: 10 000 pour l'approche combinée identifiant/mot de passe, puis extrapolez.

Enfer, si cela se résume à cela, écrivez un programme simple et faites-lui essayer. À moins qu'il ne veuille vraiment pas protéger vos données (alors pourquoi le mot de passe?), Il doit être amené à comprendre les mathématiques de base associées à l'approche en deux étapes et comment cela affectera la sécurité.

Franchement, je n'utiliserais pas un site qui utilise une approche en deux étapes pour cette raison fondamentale, à moins qu'un autre facteur (en deux étapes ...) soit impliqué.

0
Mike

En combinant les champs, vous pouvez le rendre plus sûr, mais l'expérience utilisateur en souffrira. Vous n'avez pas besoin de tests utilisateur pour comprendre cela. Tout ce dont vous avez besoin, c'est d'un peu de mathématiques.

J'ai 3 adresses e-mail

J'ai de nombreux mots de passe différents, peut-être 9

Disons que mes chances sont de 1 sur 3 d'obtenir mon adresse e-mail correcte lorsque le champ e-mail est le seul e-mail à l'écran.

Et mes chances sont de 1 sur 9 d'obtenir mon mot de passe correct lorsque le champ de mot de passe est seul à l'écran.

Lorsque vous combinez les champs sur un seul écran, vous multipliez mes chances de se tromper sur cet écran.

Les deux flux sont exactement la même quantité de taps, donc ce n'est pas un flux plus long pour séparer les champs sur des écrans séparés.

Lorsque les champs sont sur le même écran

  • Le champ e-mail est focalisé automatiquement
  • Une fois que l'utilisateur a rempli le champ e-mail, il tape dans le champ Mot de passe
  • L'utilisateur saisit le mot de passe et appuie sur le bouton Se connecter

2 robinets au total

Lorsque les champs sont séparés

  • Le champ e-mail est focalisé automatiquement

  • Une fois que l'utilisateur a rempli le champ e-mail, il touche Suivant

  • Le champ Mot de passe est focalisé automatiquement

  • L'utilisateur saisit le mot de passe et appuie sur le bouton Se connecter

2 robinets au total

Les utilisateurs ont notoirement des problèmes dans les flux de connexion et le flux de connexion a généralement le taux de chute le plus élevé.

En d'autres termes, les utilisateurs qui ont des problèmes de connexion ne sont pas un petit pourcentage. Ils constituent un cas d'utilisation principal. Et vous devez trouver un équilibre entre la difficulté de vous connecter (sécurité) et la facilité de connexion (expérience utilisateur).

0
Jessie

Une autre raison de ne pas diviser le processus de connexion en deux pages est que si un site Web le fait, avec le temps, vous vous habituez à ouvrir le site et à taper votre mot de passe directement. Cela semble bien fonctionner.

Et puis un jour vous ouvrez le site, cliquez sur la seule zone de texte que vous voyez à l'écran, tapez votre mot de passe ... Et, ce faisant, vous le révélez à tous ceux qui sont là avec vous, en regardant le moniteur.

Ce qui s'est passé, c'est que le jeton contenant votre nom d'utilisateur a expiré, cette fois, le site demande d'abord votre nom d'utilisateur. Ce qui est affiché en clair, ce qui signifie que tout ce que vous tapez est visible. Et même si vous regardez normalement l'écran lorsque vous tapez, cette fois-ci non: puisque vous vous attendez à ce que le mot de passe soit caché, vous regardez instinctivement le clavier, pour vous assurer de ne pas le taper mal, donc ce n'est pas comme après les 2-3 premiers caractères, vous remarquez qu'ils sont visibles et s'arrêtent. Non, vous allez jusqu'au bout, en les tapant tous. Affichage de tout votre mot de passe à tout le monde.

J'aurais déjà révélé mon mot de passe Gmail 2 ou 3 fois, si quelqu'un avait regardé mon moniteur. C'est une UX terrible, car pour éviter le problème de sécurité, vous devez d'abord en être conscient, puis vous devez faire attention à l'écran à chaque fois, en vérifiant s'il veut votre nom d'utilisateur ou votre mot de passe. Vous connaissez le célèbre livre "Don't Make Me Think"? Eh bien, ce processus de connexion vous fait réfléchir. Bien sûr, s'il vous demande votre nom d'utilisateur, il ne montrera pas votre avatar. Mais êtes-vous si surpris par l'absence de votre avatar? Je ne le suis pas, pas du tout. Quand cela m'est arrivé, je ne l'ai pas remarqué. Et comme tout le monde, je fais les choses par habitude, sans tout vérifier. Donc, même si l'écran me demande mon nom d'utilisateur, si j'ai appris que je dois taper mon mot de passe, je ne prendrai pas la peine de lire, je taperai simplement mon mot de passe.

Donc, cette connexion en 2 étapes brise une habitude de 20 ans, elle rend plus difficile l'utilisation des gestionnaires de mots de passe, elle aide les pirates à identifier les noms d'utilisateur existants et elle peut vous inciter à révéler votre mot de passe.

Et l'avantage qu'ils peuvent vous montrer votre avatar ou quelque chose de personnel, afin que vous sachiez qu'il s'agit du site Web légitime et non d'un site de phishing, ne nécessite pas vraiment deux écrans distincts. Vous pouvez facilement afficher les 2 champs habituels, et lorsque vous avez rempli le premier, cela vous empêchera de taper votre mot de passe (en désactivant le champ) jusqu'à ce que votre photo personnelle ait été chargée, puis vous pourrez continuer. Si le problème est le temps nécessaire pour charger votre image, il peut être utile d'avoir une animation qui rend l'attente plus tolérable.