パスキーは、パスワードに代わる、より安全で簡単かつ高速な方法として急速に普及しており、セキュリティとユーザーの利便性を強化しています。パスキーの可能性を最大限に引き出すには、パスキーの管理に関するユーザー エクスペリエンスを慎重に検討する必要があります。このドキュメントでは、直感的で安全で堅牢なパスキー管理システムを設計するためのガイドラインとオプション機能を概説します。
複数のパスキーを管理する
ユーザーが複数のパスキーを追加し、複数のプロバイダを使用できるようにします。ただし、同じプロバイダの同じアカウントに複数のパスキーを追加することは許可しないでください。プラットフォームがプロバイダをサポートしていない場合や、ユーザーがプロバイダにアクセスできなくなった場合でも、別のプロバイダの別のパスキーでログインできます。この設定により、アカウントのロックアウトのリスクが軽減されます。データベースで、ユーザーごとに複数のパスキーの保存がサポートされていることを確認します。
登録済みのパスキーのリストを表示する
ウェブサイトまたはアプリでは、登録済みのパスキーをリストに表示し、ユーザーがパスキーを効果的に管理できるように重要な詳細情報を表示する必要があります。次のスクリーンショットは、このような専用のパスキー管理ページの例を示しています。ユーザーが複数のプラットフォームでパスキーを作成する方法を示し、パスキーを一元的に管理できる場所を提供します。

ウェブサイトやアプリでパスキーについて表示される一般的な詳細と機能は次のとおりです。
- パスキー名: 登録時に指定したパスキー名が表示されます。理想的には、この名前は AAGUID に基づいて作成されたパスキー プロバイダと一致します。一致するパスキー プロバイダが見つからない場合は、ユーザー エージェント文字列に基づいてデバイス情報にちなんで名前を付けても問題ありません。
- パスキー プロバイダのロゴ: パスキー プロバイダのロゴを表示します。これにより、ユーザーは管理するパスキーを特定できます。
- パスキーが作成されたときと最後に使用されたときのタイムスタンプ: パスキーの作成タイムスタンプと最後に使用されたタイムスタンプを記録して表示すると、ユーザーが管理するパスキーを特定しやすくなります。
- 同期されていないことを示すインジケーター: パスキーはデフォルトで同期されますが、パスキー プロバイダの同期機能は現在も進化しています。ユーザーが期待したにもかかわらずパスキーが同期されないという混乱はよくあります。パスキーの同期不可を表示すると、ユーザーはこの混乱を解消できます。
- 削除ボタン: ユーザーがパスキーを削除できるようにします。詳しくは、パスキーの削除を許可するをご覧ください。
- 編集ボタン: 多くのユーザーは、パスキーの名前を変更できることを評価しています。たとえば、同じパスキー プロバイダのパスキーがあるが、プロバイダ アカウントが異なる場合です。複数のパスキーを異なる Google アカウントに保存するとします。ユーザーがパスキーの名前を変更できるようにすることで、ユーザーは好きな名前に変更できます。
- 前回のログイン時のブラウザ、OS、IP アドレス: 必要に応じて、前回のログインに関する詳細情報を提供すると、ユーザーは不審なログインを特定できます。ログインに使用したブラウザ、OS、IP アドレス(または位置情報)は有用な情報です。
パスキーの削除を許可する
ユーザーがパスキーを削除できるようにする。これにより、ユーザーが新しいデバイスに切り替えたが、関連付けられたパスキーが古いデバイスにバインドされている場合など、リストを整理できます。また、攻撃者がユーザー アカウントを乗っ取って、今後使用するためにパスキーを作成する際にも役立ちます。
更新されたパスキーのリストを通知する
パスキーを削除すると、その認証情報エントリと公開鍵がサーバー データベースから削除されます。これにより、パスキーは登録済みのパスキーのリストから消え、パスキーが削除されたようにユーザーに表示されます。ただし、実際にはサーバーから削除されるだけで、パスキー プロバイダに保存されているパスキーは残るため、混乱を招く可能性があります。ユーザーが次回ログインしようとすると、削除したパスキーがログイン オプションとして引き続き表示されます。ただし、一致する公開鍵はすでにサーバーから削除されているため、これを使用して認証を行うと失敗します。
混乱を避けるため、パスキー プロバイダのパスキーとサーバーの公開鍵を整合させる必要があります。これは、パスキーの更新されたリストをパスキー プロバイダに通知することで実現できます。ブラウザとパスキー プロバイダが Signal API をサポートしている場合、パスキーのリストを更新して不要なパスキーを削除できます。API をサポートしていない場合は、パスキーを手動で削除するようお客様に伝えます。
最後のパスキーを削除する
ユーザーが特定のアカウントの残りのパスキーを削除しようとしている場合は、別のオプションでログインする必要があり、手間が増え、保護が弱くなる可能性があることを理解していることを確認します。これがサイトの唯一のログイン方法である場合、ユーザーは再度ログインできなくなります。次回ログインする方法(利用可能な場合はバックアップ方法を使用する方法や、続行する前に別のパスキーを登録するよう求めるメッセージなど)をユーザーに伝えます。パスキーを使用しないことを選択した理由についてフィードバックを収集する良い機会です。
新しいパスキーの作成を許可する
ユーザーの操作の流れの中でパスキーを作成できる機会はありますが(ログイン直後など)、ユーザーがいつでもアクセスして新しいパスキーの作成、パスキーの削除、パスキーの管理を行える一元的なハブが必要です。パスキー管理画面が最適です。
パスキーのユーザーフローを作成するには、パスワードなしでログインするためのパスキーを作成するデベロッパー ガイドをご覧ください。高度なセキュリティを実現するには、ユーザーがハードウェア セキュリティ トークンでパスキーを作成できるようにすることを検討してください。パスキーを管理するユーザーは知識や経験が豊富であるため、セキュリティ キーでパスキーを作成できるようにすると、柔軟性が向上します。
パスキーをハードウェア セキュリティ トークンに保存できるようにするには、パスキー作成リクエストで authenticatorSelection.authenticatorAttachment
を "platform"
に設定するのではなく、authenticatorSelection.authenticatorAttachment
を未設定のままにします。これにより、ブラウザはプラットフォーム(デバイス)認証システムとローミング認証システム(セキュリティ キー)の両方を受け入れます。ユーザー エクスペリエンスは、プラットフォーム認証システムのみを許可する場合と大きく異なりません。セキュリティ キーでパスキーを作成するオプションが、2 番目のオプションとして表示されます。
チェックリスト
- ユーザーがパスキー管理ページでパスキーを管理できるようにする。
- 複数のパスキーの登録をサポート。
- ユーザーが管理ページで新しい柔軟なタイプのパスキーを追加できるようにします。
- パスキー名を表示します。
- パスキーを同期可能かどうかを示します。
- ユーザーがサーバーから公開鍵を削除できるようにします。
- 関連付けられた公開鍵がサーバーから削除されたときに、パスキーのリストを通知します。
その他の UX ガイド
- パスキーの一般的な UX ガイド
- Android ガイド