web-dev-qa-db-ja.com

ユーザーのメールアドレスを確認するための最善の方法は何ですか。メール確認リンクを送信するか、メールで確認コードを送信しますか?

メールアドレスを確認するためのアプローチについて、かなり良い回答が得られる質問がたくさんあるようです。メールアドレスを確認するための2つのアプローチについて考えることができる同様の質問があります。

  1. ユーザーが指定したメールアドレスに確認リンクを送信します。このリンクをクリックすると、新しいページが開き、ユーザーアカウントの確認メッセージが表示されます。

  2. 別の方法は、確認リンクを提供する代わりに、電子メールで確認コードをユーザーに提供することです。たとえば、12345番が確認コードである場合、ユーザーはこの番号を読んで確認ページに入力します。

上記のアプローチについての見解を提供していただければ幸いです。オプション#2は少しオーバーヘッドを加えるようですが、私の優先事項はセキュリティのためです。

モバイルアプリケーションは、既存のWebアプリケーションと統合します(そのためのAPIを開発しました)。モバイルアプリケーションはこれらのAPIを使用して、Webアプリケーションからデータを取得します。 register AP​​Iを使用して、モバイルアプリでユーザーを登録できます。登録には、ユーザーのメールアドレスとパスワードが必要です。ユーザーにアプリケーションへのフルアクセスを許可する前に、ユーザーのメールアドレスを確認したいのですが。ユーザーのメールアドレスが確認された場合、ユーザーはすべてのオプションを使用できます。そうでない場合、ユーザーは特定のオプションに制限されます。メールアドレスを確認するには、次のことを行う必要があります。

  1. 確認リンクをユーザー指定のメールアドレスに送信します

  2. ユーザーがモバイルアプリの「アカウントの確認」ページで入力できる確認コードをメールで送信します

  3. ディープリンクと確認コードをメールで送信します。これにより、ユーザーがディープリンクをクリックすると自動的にモバイルアプリが起動し、ユーザーが確認コードを入力(またはコピーして貼り付ける)できる確認ページが開きます。

ユーザビリティの観点とセキュリティの観点から、どちらがより良いアプローチであるかを知りたいです(私の好みはセキュリティです)。

32
Rahul

これは、ユーザーアクセスに関して検証が必要とするものに大きく依存します。

オプション1

(オプション2)確認コードの送信は、ユーザーが確認が完了する前に確認コードを入力する必要があるため、特にこれがログインの一部である場合(2段階認証)の方が安全です。

オプション2

これは、ユーザーがログインした後で検証が行われる場合(オプション1)、ユーザーがすでにログインしているため、リンクを送信するほうがより現実的です。

どちらの場合も、リンクまたは検証コードに定義された有効期間があり、ユーザーがそれを認識していることを確認してください。また、スパムフォルダーやホワイトリストの送信者を確認するようにアドバイスすることで、ユーザーがメールを表示できないことも考慮します。

更新:この回答に関するコメントが急増していることを考慮して、誤解と仮定の一部を明確にするために更新を行いました。

リンクをクリックして電子メールを確認する方が、コードを入力するよりも間違いなくユーザーフレンドリーです。これは、私の回答(オプション2)で試みたポイントです。以下の回答とコメントの一部で示唆されているように、これらを組み合わせて最適化できます。ただし、UXの観点からは、これは包括的なルールではありません。考慮すべき他の要因や側面があります。

確認が認証プロセスの一部として行われる場合(パスワードのリセットや回復など)、リンクとコードを組み合わせて機能します。つまり、システム内に保持されるユーザー情報の種類と範囲を慎重に検討する必要があります。

機密情報または個人を特定できる情報を要求するサイトは安全である必要があります。サイトが安全であると感じられない場合、ユーザーはサイトを使用する意欲を失います。ユーザーはユーザーとPIIの提供または機密情報へのアクセスの提供の要求との間に障壁を構築するサイト。

認証に関しては、クライアントと直接ユーザーの両方から大きな期待があります。一部のシステムは、視覚的なデザインとその全体的なワークフローのおかげで、より安全であると認識されています。認証プロセスが安全であるだけでなく、ユーザーや利害関係者からもそのように認識されていることを確認する必要があります。したがって、エンドユーザーがセキュリティをどのように認識しているか、およびエンドユーザーが最も精通している対話パターンとワークフローをよりよく理解することが重要です。これは特に、たとえば小売Webサイトよりもはるかに多くの情報を保持する企業およびエンタープライズソリューションに特に当てはまります。

全体として、上記の要因の評価に基づいて、ユーザーにコードを要求することで、サイトまたはアプリへのユーザーの信頼を高めたり維持したりすることが、タスクを実行するよりも確実に高くなると言えます。また、ユーザーの信頼を脅かさない場合は、コードでリンクを使用する場合も同様です。

私もそれを見つけました

モバイルデバイスでの透過的な認証に関するユーザーの認識を理解する

非常に洞察に満ちています!幸運を!

14
Okavango

セキュリティにはまったく影響しません。 UXを最大化するには、両方を使用します。

セキュリティを優先する場合は、どちらでもかまいません。この手順の目的は、アプリケーションにセキュリティの層を追加することではなく、ユーザーが自分の主張するメールアドレスを実際に制御できることを確認することです。

メールはデフォルトでは安全ではないため、この方法で何をしてもシークレットが漏洩する可能性があります。唯一の方法はメールを暗号化することですが、これはUXの重い重いペナルティを招きます。

UXサイトでお伺いしましたので、UXの観点からもお答えします。

リンクをクリックするのは、入力ボックスに確認コードを入力するよりも簡単です(私は冗談ですコピー貼り付け)。

一部のメールクライアントはリンクをサポートしていません。そのため、メールメッセージにコードを含め、入力ボックスから確認コードを受け付けるページも用意してください。

10
Madara's Ghost

私はオカバンゴに同意します、そしてこれは彼の答えの続きです。

異なるクライアント:ユーザーがモバイルアプリを使用しているとします。そうすれば、コードを入力してビジネスを進めるのがより簡単になります。リンクの場合、プロセスは次のとおりです。アプリに登録>メール(リンクを取得)>ブラウザ(リンクの検証用)>アプリを開いて再ログインします。

さらに一歩進んで、メールを送信する代わりに、確認コードを記載したテキストメッセージを送信することをお勧めします。 googleはこれを行います

結論:

リンク上のコードの長所:

  1. 安全保障
  2. ブラウザー以外のクライアントを使用する場合の使いやすさの向上
  3. リンクをコピーするのではなく、コードを手動で入力することを強制>セキュリティを強化

メールによるテキストメッセージの長所:

  1. 常にインターネットに接続しているわけではない
  2. ユーザーは常に自分の電話を持っています
2
leo