web-dev-qa-db-ja.com

ログインプロセスをユーザー名のチェックに分割して、次にパスワードを要求するための引数

私の上司はしばらくの間、ログインプロセスを別々のページで2つのステップに分割することを主張しました。最初のページで、ユーザーの電子メールアドレスを尋ねます。 2ページ目に、「ユーザーが見つかりました」と表示してパスワードを要求するか、「ユーザーが見つかりません」と表示してもう一度電子メールを要求します。

資格情報を忘れがちなユーザーや、まだアカウントを持っているユーザーにとっては、はるかに簡単です。すべてのユーザーがログインするたびに2つのステップを実行する必要があるため、私は長い間このアプローチに反対してきました。 (また、システムにメールが存在するときに確認されることを知っているので、セキュリティ上の問題かどうかも疑問に思います。)電子メール(すべてのユーザー名は電子メールです)とパスワードを含むより標準的なログインページを用意したいと思います。 、「パスワードをお忘れですか?」の1つの非常に明確なリンク。

どちらも私たちの理論をサポートするためのハードデータがなく、A/Bテストよりも重要で、彼が問題だとは思わないものをテストする必要があります。ここの誰かがどちらかのアプローチに対して賛成または反対の議論またはハードデータを提供できるかどうか疑問に思っていました。 UXデザインを検討するのは楽しいですが、私は専門家ではありません。

58
Michael

2ページ目に、「ユーザーが見つかりました」と表示してパスワードを要求するか、「ユーザーが見つかりません」と表示してもう一度電子メールを要求します。

2段階のアプローチに対する1つの説得力のある主張は、提案された設計により、認証されていない人物がメールアカウントがそのサイトに登録されているかどうかを判断できるようになるということです。

これは、セキュリティとプライバシーの両方の問題です。

ユーザーとして、私は自分のサービスにサインアップしたかどうかを誰もが確認できないようにしたいと思います。

開発者として、私は自分のアプリケーションが悪意のあるユーザーに自発的にユーザーアカウントを列挙する簡単な方法を提供することを望んでいません。

これらのいずれも、このアプローチのかなり魅力的な欠点です。プライバシーとセキュリティを犠牲にしてすべてのユーザーのログインプロセスを変更するのではなく、「パスワードを忘れた/ユーザー名」プロセスを必要とするわずかな割合で簡単にすることに焦点を当てることをお勧めします。

104
Charles Wesley

上司が理解できる説得力のある何かが必要な場合は、money、dinero、ducats、dolla-dolla-bill-y'allとして知られる普遍的な言語で彼と話すことをお勧めします

あなたの現在の状況

あなた:

提案された設計はセキュリティ上の欠陥を生み出し、システムは有効なユーザー名を取得することにつながります

ボス:

私が言うことをして、魔法のコンピュータボックスを危険にさらさないように言ってください

目指すべきこと

あなた:

「ユーザーが見つかりました/見つかりません」というエラーメッセージを含む2段階のプロセスに対応するようにログインシステムを設計すると、競合他社はシステム内のユーザー名のリストを簡単に取得できます。ユーザー名の一部がシステム内のユーザー名と一致する場合、ユーザー/クライアントをあなたから引き離したい場合、ターゲットとするユーザーを知っています。ユーザー名が一致しない場合でも、競合相手には、取引相手の包括的なドメイン名のリストがあります。

ボス:

正解です。このデータ漏えいを軽減するためにできることはありますか?

あなた:

残念ながら、ユーザー名を思い出せない実際のユーザーと、データを取得しようとする競合他社を完全に区別する方法はありません。 「ユーザーが見つかりました/見つかりません」というメッセージを表示しないことは、1ステップまたは2ステップのログインプロセスであるかどうかに関係なく、私たちが取ることができる最も安全なルートです

警告

この情報はすでに提供されているかもしれませんが、あまり便利ではありません。

ユーザー名が既に使用されている場合にユーザーに警告するオンライン登録ページはありますか? <-あなたの上司はこれをあなたの顔に簡単に投げ込むことができます。

^これを実行することと2ステップのログインページの唯一の違いは、登録ページでは通常、入力するフィールドが多く、Captchaなどと一緒に他の検証チェックに合格する必要があることです。

50
MonkeyZeus

原則として、プロセスのすべてのページで成功率が50%低下します。少し大げさかもしれませんが、実際にどれほど難しいかに関わらず、人々はページを1つの作業単位と考えています。 2ページまたは3ページのウィザードは面倒に感じ始めます。

編集:誰かが改造に対して、私の回答には引用がないと不平を言いました。私が持っている唯一の引用は「それは人々がいつも私に言うUIです」です。おそらく、ある種の魂は、この受け取られた知恵の普及について議論する引用、またはそれを実際に確認する(またはそれを暴くことさえも)引用のいずれかを提供することができます。

16
Malvolio

これが正確にUXの問題であるかどうかはわかりませんが、パスワードマネージャー(LastPass、KeePassなど)は、同じページに表示されたときにユーザー名とパスワードのフィールドに自動的または半自動的に入力するように構成できます。しかし、私の知る限りでは、対応するユーザー名フィールドがないと、パスワードフィールド自体を認識しません。おそらく、そうするようにプログラムできます。したがって、この状況の「責任」は、パスワードマネージャーやブラウザインターフェースの作成者にあるはずですが、今のところ、異なるページのユーザー名フィールドとパスワードフィールドを分離しているのが現実です。パスワードマネージャーからパスワードを手動でコピーする必要があることを意味します。これにより、ログインに必要なクリック数が大幅に増加します。

16
David Z

あなたが言ったように私がこれに見る最大のリスクはセキュリティのためです。ただし、一部の企業では、このデュアルステッププロセスを使用して、セキュリティも向上させています。基本的に、これらの企業が行ったことは、各ユーザーにプロフィールに画像を追加するように依頼することです。この画像は、メールを送信した後に表示されます。画像がプロフィールに割り当てられたものと一致する場合、メールアドレスを入力する必要があります。画像がファイルの何にも一致しない場合、ランダムな画像が表示されます(おそらくハッシュに基づいていますか?)。

しかし、それはあなたの問題を解決しません(または多分それは解決しますか?)。アカウントが見つかった、アカウントが見つからなかったという問題は、AJAX(または同様のもの)を使用して、メール/ユーザー名が見つからない場合にフィールドを赤にすることで解決できます。これにより、追加の手順が削除されます。

どのようにセキュリティを意識するかに応じて、AJAXアプローチがUXに最適です。通常、これは悪い動きであり、実行するべきではありません。ただし、 IP/cookieによるルックアップの数を制限するための保護手段で、少なくともある程度は安全になります。

6
Francis Pelland

Googleはサインイン手順を2つのページに分割し、多くの否定的なユーザー応答をもたらしました: http://www.ghacks.net/2015/05/15/google-splits-sign-in-process-into -two-pages /

ユーザーの苦情はいくつかの異なる側面に集中しています。まず、サインインプロセスは2ページに分かれているため、完了するまでに時間がかかります。単一のアカウントのみを使用している場合でも、マルチアカウントの顧客と同じプロセスを実行する必要があります。

このプロセスでは、サインインに同じ数のクリックが必要になる場合がありますが、キーボード(タブキー)を使用してフィールド間を切り替えてログインするユーザーのフローに影響します。

次に、新しいプロセスは、フォーム情報を自動的に入力したり、自動的にサインインしたりすることができないほとんどのパスワードマネージャーを壊します。少なくとも一部のパスワードマネージャーは、プログラムを更新するか、新しいGoogleログインプロセスのソリューションを提供します。

5
bancer

このアプローチは、可能な限り少ないステップを持つという原則に反するため、ユーザーの満足度とコンバージョンを減らす可能性が非常に高くなります。

もう1つの欠点は、プライバシーの漏洩です(メールが登録されているかどうかを確認するのが非常に簡単です)。

私が目にする利点は、純粋に設計とプログラミングに関連していることです。メインページにパスワードフィールドとサインアップ/パスワードを忘れたリンクを追加する必要がないため、よりすっきりしたデザインになります。心配することや注意を引くことが少なくなります。また、使用しているバックエンドロジック、フレームワーク、またはcmsによっては、この方法でこのプロセスを構成する方が簡単な場合もあります。ただし、これらはUX関連の問題ではないため、ユーザーはそれによって何かを得ることができません。

さらに、なぜもう一度メールを要求するのですか?ユーザーに代わってメールを入力するのは大変です。このパターンを選択する場合は、入力した電子メールを表示し、それが正しいことをユーザーに確認してください。

2
Harijs Deksnis

複数のページにログインするには、少なくとも1つの理由を提示する必要があると思いました。

1つではなく複数のページを使用することの唯一の真の利点(ほとんどの場合の欠点)は、ユーザーが実行する必要のある予想されるフローが提供されることです。これは、従来のフローがないサイトや、予想されるユースケースが段階的なプロセスであるサイトに役立ちます。ユーザーであることが支払いを必要とするサイトで使用される1つの戦術は、ユーザーが継続することに専念するために入力する必要があるコンテンツを分割することです。

2ページのログインが理にかなっている例が少なくとも1つあると思います。

平均的なユーザーが平均的なユーザーのコンピューターユーザーではなく、強制されたときにコンピューター上にのみ存在するサイト。また、ほとんどのユーザーは1回または数回サインインするだけで、再度ログインする必要はありません。 このケースはどんどん少なくなっています。

私は、年配の男性または女性が製品(x)を子供のために再び機能させるために何をする必要があるかを理解しようとする会社の電話サポートだったので、私はこれを偶然に言及しました。彼らはある時点でメールアドレスとパスワードを入力する必要がありましたが、その後ずっと必要になることはありませんでした。

ユーザーの概要

この種のユーザーは、特定のタスクを実行するために一度だけログインします。メインページにアクセスすると、すべての情報がすぐに失われる可能性があります(それほど多くないように見えても)。彼らはただログインし、何かをして、そして外に出たいだけです。シンプルさはこのユーザーの友人であり、彼らが持っているオプションが少ないほど良いです。どうすればよいかわからない選択肢がある場合は、「より一般的な」選択肢と思われるものを試そうとします。これは、画面サイズの大きさ、または最初に見たオプションによって決まります。

上記のユーザーのシングルページとマルチページの比較

単一ページ:初めてユーザーがエントリーページにアクセスします。うまくいけば、ログイン/登録部分がこのユーザーに非常に目立つようになります。登録部分に気付かなかったり、すでに登録されているかどうか疑問に思うかもしれません。結局のところ、彼らはずっと前にその1つのサイトに登録しました。ユーザー名/パスワードを推測します。最終的に、彼らはすべての既知の組み合わせを試して登録する必要があることに気づくか、最終的に登録オプションに気付きます。

マルチページ:初めてユーザーがエントリーページにアクセスします。今回、ウェブサイトはユーザー名を尋ねます。 (これもまた、非常に目立つはずです)。彼らは彼らの電子メールを入力し、ウェブサイトは彼らに次のステップを伝えます。この場合、そのステップは登録であり、ユーザーはすでに電子メールに記入しています。

結論

私は実際に論文を書くつもりはありませんでしたが、サイトの予想される用途と対象読者がデザインに大きな影響を与えることに注意することが重要でした。上司が上記のような使用法や聴衆を期待している、または同様に名前が付けられているか接続されている他のシステムが原因で、多数のユーザーが自分のユーザー名を知らないと予測している可能性があります。たぶんあなたの上司自身は、彼が使用したユーザー名を常に忘れている人かもしれませんし、最初のページでユーザー名が正しいかどうかをあなたが彼に教えることができるという事実を考慮していなかったかもしれません。今日の世界では、ほとんどの場合、サインイン用の単一のページで十分であり、望ましいはずです。ただし、それ以外の場合もあります。

2
DoubleDouble

私が数年前にブログの投稿を読んだところ、Mailchimpは失敗したログインを66%削減できました。

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

(編集:Mailchimpはブログを削除したようです-代わりにこのインターネットアーカイブリンクを試してください: https://web.archive.org/web/20140321161148/https://blog.mailchimp.com/social-login- buttons-arent-worth-it /

彼らはまだ単一のページでそれをしました、ただエラーメッセージを変えました。

1
Saxon Druce

純粋にユーザーエクスペリエンスの観点からは、1ページとして保持しますが、ログインが機能しない理由を明示的に指定します。

「ユーザー名またはパスワードが間違っていた」などの一般的なことを言うのはあいまいで、多くのことが望まれます。それは特に役に立たないので、私はそれが途方もない欲求不満の源であると思います。どちらが悪かったのですか?それは私のユーザー名または私のパスワードでしたか?

これはセキュリティリスクであると主張するのは大げさすぎると思います。他の人が述べたように:

  • 事実上すべてのサイトで、電子メール/ユーザー名の重複ログインが防止されています。 「ユーザー名が間違っていた」と言うよりも、ユーザー名/メールがすでに使用されていることを誰かに知らせるにはどうすればよいですか。
  • ほとんどすべての「パスワードを忘れた」リンクでは、パスワードを取得するために電子メール/ユーザー名を入力する必要があります。ほとんどすべての場合、無効なユーザー名/メールを入力すると、「このユーザー名/メールはシステムに存在しません」のようなメッセージが表示されます。繰り返しますが、これは、ログインプロセス中に「ユーザー名が正しくなかった」と言っているのと実質的に同じです。
1
Senseye

この説明では、アクセス権を取得しようとする有効なユーザーに重点を置いています。提示されたIDとパスワードの組み合わせがIDまたはパスワードのために悪かったかどうかについてハッカーになる可能性のある人に発表することは、大きなセキュリティ上の欠陥です。ログインを2つの部分に分割し、失敗したことを通知することで、ハッカーの作業が桁違いに容易になります。

私は常に「無効なID /パスワードの組み合わせ」を投稿しています...ハッカーに推測され続けてください!

1
Andrew

重要ではないパスワードで小さなページを作成しているのでない限り、複数ページ認証のみを使用することをお勧めします。理由は次のとおりです。

1.)アプリケーションでセキュリティが最も重要な場合は、多要素認証を使用する必要があります。 1つのページに多要素認証を配置すると、一部のユーザーを混乱させる可能性があるため、各要素を独自の個別のページに分けることをお勧めします。

2.)ユーザーが特別なURLを使用してWebサイトにアクセスする必要がないタイプのシングルサインオン機能が必要な場合は、ユーザー名に基づいてどのssoプ​​ロバイダーを特定するかが非常に便利です。また、通常のログインフローとSSOフローの一貫性を提供し、ページを複数のページに配置します。

3.)アプリケーションへのログインは、難しいことを意図するべきです。結局のところ、個人の個人情報はアプリケーションに含まれる可能性があります。その結果、ログインは、ログイン専用のセッションの一部として行われるはずです。何度も試行してもユーザーが情報の入力に失敗した場合は、アカウントを一時的にロックアウトする必要があります。または、連続してログインに失敗するたびに、ユーザーが再試行できるようになるまでに、より長い期間が必要になります。これは複数ページのアプローチと相互に排他的ではありませんが、ユーザーがブルートフォース攻撃を実行できない場合、ログインページを介してユーザーのメールが存在することを確認するのは簡単です。ユーザーがログインできる試行回数を制限します。

1
Jim Pedid

うーん。 2つのステップのプロセスに対する多くの議論。

しかし、多くの金融機関はまさにそれを行っています。多くの銀行や証券会社。過去3日間に、この方法を使用する3つの金融機関にログインしました。

0
joe

他の人たちはセキュリティとプライバシーの問題についてコメントしています。私は個人的には少し誇張されていると思います(@ user34305の備考を参照)。しかし、いずれにせよ、それがフィードバックで具体的になるのを避ける理由にすぎません。ログインプロセスを1つのページに置いて、ユーザー名が不明である(動的であるかどうかにかかわらず)、または2つのページがあることをユーザーに通知することはできますが、情報メッセージを最後に表示するだけです。

しかし、電子メールアドレスがシステムに認識されているかどうかを明らかにしてしまったとしても、すべてを1つのページに表示することには十分な理由があります。まだ言及されていないのは、デファクト標準を尊重することは、一般的に使い勝手にとって良いことです。十分な理由と慎重な検討なしに、ユーザーの習慣と期待を壊さないでください。また、同じページでユーザー名/メールアドレスとパスワードを送信することは、かなり標準的なことのようです。

0
Gala

簡単な数学を使って上司に議論を示します。ユーザーIDとパスワードがそれぞれ2桁になる可能性があることを彼に提案し、有効な組み合わせを推測するために順列の数を計算するように依頼(表示?)します(システムに1つしか存在しない場合)。

個別のログイン/パスワードアプローチを使用すると、正しいログインを取得する1:100のチャンスがあり、次に正しいパスワードを取得する1:100のチャンスがあるため、正しいログイン/パスワードの組み合わせを取得する1:200のチャンスになります。

これを、ログインとパスワードを組み合わせたアプローチの1:10,000の組み合わせと比較して、推定してください。

地獄、それが原因である場合は、簡単なプログラムを作成して彼に試してもらいます。彼が本当にあなたのデータを保護したくないのであれば(それでなぜそれをパスワードにするのか?)、彼は2ステップのアプローチに関連する基本的な数学とこれがセキュリティにどのように影響するかを理解するように作られなければなりません。

率直に言って、他の要因(2段階...)が関与していない限り、この基本的な理由から2段階のアプローチを使用するサイトは使用しません。

0
Mike

フィールドを組み合わせると、より安全になりますが、ユーザーエクスペリエンスが低下します。それを理解するためにユーザーテストを行う必要はありません。必要なのは、ほんの少しの数学です。

私は3つのメールアドレスを持っています

私は多くの異なるパスワードを持っています、おそらく9

私の可能性は、電子メールフィールドが画面上の単独の電子メールである場合、私の電子メールアドレスを正確にする3分の1であるとしましょう。

そして、私のチャンスは、パスワードフィールドが画面上で単独である場合、私のパスワードを正しく取得する9分の1です。

1つの画面でフィールドを組み合わせると、その画面で問題が発生する可能性が高まります。

どちらのフローもまったく同じ量のタップであるため、別々の画面でフィールドを分離するフローは長くなりません。

フィールドが同じ画面にある場合

  • メールフィールドは自動的にフォーカスされます
  • ユーザーがメールフィールドに入力したら、パスワードフィールドをタップします
  • ユーザーはパスワードを入力し、[サインイン]ボタンをタップします

合計2タップ

フィールドが区切られている場合

  • メールフィールドは自動的にフォーカスされます

  • ユーザーがメールフィールドに入力したら、[次へ]をタップします

  • [パスワード]フィールドは自動的にフォーカスされます

  • ユーザーはパスワードを入力し、[サインイン]ボタンをタップします

合計2タップ

ユーザーはログインフローに問題があることで悪名高く、ログインフローは通常最高の離脱率を持っています。

つまり、ログインに問題があるユーザーの割合は少なくありません。彼らは主なユースケースです。また、ログインのしやすさ(セキュリティ)とログインのしやすさ(ユーザーエクスペリエンス)のバランスをとる必要があります。

0
Jessie

ログインプロセスを2ページに分割しないもう1つの理由は、Webサイトがそれを行う場合、時間をかけてサイトを開いて直接パスワードを入力することに慣れるためです。うまくいくようです。

そして、ある日、サイトを開いて、画面に表示される唯一のテキストボックスをクリックし、パスワードを入力します...そして、そうすることで、あなたはそこにいるすべての人にそれを公開します。モニター

何が起こったかというと、ユーザー名を含むトークンの有効期限が切れているため、今度はサイトがユーザー名を最初に要求しています。これは平文で表示されます。つまり、入力したものはすべて表示されます。そして、通常はタイプするときに画面を見ますが、今回はそうしません。パスワードが非表示になることを期待しているので、本能的にキーボードを見て、タイプミスしていないことを確認します。最初の2〜3文字の後に、それらが表示されて停止することに気付きます。いいえ、すべて入力します。 全員にパスワード全体を表示します。

私のモニターを見ている人がいたとしても、Gmailのパスワードは2〜3回は明らかにしていました。これはひどいUXです。セキュリティの問題を回避するには、まずそれを認識しておく必要があります。その後、毎回画面に注意を払い、ユーザー名とパスワードのどちらが必要かを確認する必要があります。 有名な本「Do n't Make Me Think」をご存知ですか?さて、このログインプロセスはあなたに考えさせます。確かに、ユーザー名を要求する場合、アバターは表示されません。しかし、あなたは自分のアバターがいないことにとても驚いていますか?私はそうではありません。それが起こったとき、私はそれに気づきませんでした。そして、他の皆と同じように、私はすべてをチェックすることなく、癖のあることをします。そのため、画面でユーザー名の入力を求められたとしても、パスワードを入力する必要があることがわかった場合は、わざわざ読まなくても、パスワードを入力するだけです。

したがって、この2ステップのログインは20歳の習慣を破り、パスワードマネージャーの使用を困難にし、ハッカーが既存のユーザー名を識別しやすくし、パスワードを明らかにするように仕向けることができます。

また、あなたのアバターや個人的なものを見せて、それが正当なWebサイトであり、フィッシングではないことを示すことができるという利点は、実際には2つの個別の画面を必要としません。通常の2つのフィールドを簡単に表示できます。最初のフィールドに入力すると、個人の写真が読み込まれるまで(フィールドを無効にすることにより)パスワードを入力できなくなり、次のことができるようになります。継続する。問題が画像の読み込みにかかる時間である場合は、待機をより許容できるアニメーションにするのに役立ちます。