メインコンテンツまでスキップ

パスキー (Passkeys)(WebAuthn)

パスキー (Passkey) は、従来のパスワードよりも安全でユーザーフレンドリーな代替手段を提供します。公開鍵暗号方式を利用することで、パスキーはユーザーのデバイス、サービスドメイン、ユーザー ID を結び付け、フィッシングやパスワード攻撃を効果的に防ぎます。さまざまなデバイスやブラウザに対応し、ユーザーは生体認証やハードウェアセキュリティ機能を使って便利に認証 (Authentication) できます。WebAuthn は、Web サイトがパスキーを実装するための API を提供します。

Logto は、多要素認証 (MFA) および パスキーサインイン の両方でパスキー(WebAuthn)をサポートしています。基盤となる同じ WebAuthn クレデンシャルは、テナント設定に応じて両方で再利用できます。

概念

顧客は通常「パスキー (Passkeys)」という言葉を知っていますが、「WebAuthn」との関係や使い方はどうなっているのでしょうか?これらの概念を整理します:

  • パスキー (Passkeys):パスキーは、FIDO ベースでフィッシング耐性のある認証情報であり、パスワードの代替となります。非対称公開鍵暗号方式を利用してセキュリティを強化します。ハードウェアトークンやセキュリティキー(USB や Bluetooth デバイスなど)として利用できます。「パスキー (Passkeys)」はユーザーに表示される認証 (Authentication) 方法なので、プロダクトクライアント内でこの用語を使うべきです。
  • WebAuthn:W3C と FIDO Alliance によって開発された JavaScript API で、Web アプリケーションの認証 (Authentication) を FIDO2 標準で実現します。パスキー (Passkeys) は WebAuthn がサポートする認証 (Authentication) 方法の一つです。Logto コンソールでは、この統合を「WebAuthn」と専門的に呼んでいます。

WebAuthn はユーザーが選択できる多様な認証器を提供しており、ローカルとクラウド利用の 2 種類があります:

  • プラットフォーム認証器(内部認証器):特定のデバイス OS(パソコン、ノートパソコン、スマートフォン、タブレットなど)に紐付いており、そのデバイスでのみ動作します。生体認証やデバイスパスコードなどで認可を行うため、迅速な認証 (Authentication) が可能です。例:macOS や iOS の Touch ID、Face ID、デバイスパスコードで認証される iCloud キーチェーン、Windows Hello の顔認証、指紋認証、PIN など。
  • ローミング認証器(外部認証器、クロスプラットフォーム認証器):ハードウェアセキュリティキーやスマートフォンなど、別の携帯型デバイスやソフトウェアアプリケーションです。USB 接続や NFC、Bluetooth を有効にしてデバイスと連携します。ローミング認証器は特定のデバイスやブラウザに限定されず、柔軟性が高いのが特徴です。

WebAuthn の原理やプロセスについてさらに詳しく知りたい場合は、ブログ記事 WebAuthn とパスキー 101 および WebAuthn 統合前に知っておくべきこと をご覧ください。

MFA 用パスキー認証 (Authentication) の設定

  1. コンソール > 多要素認証 (MFA)
  2. 「パスキー (Passkeys)(WebAuthn)」要素を有効にします。パスキー (Passkeys) は他の MFA 要素(TOTP、SMS、バックアップコード)と組み合わせて利用することを推奨します。これにより単一要素への依存を減らせます。
  3. 希望する MFA ポリシー(必須 / 任意)を設定します。
  4. 設定変更を保存します。
ヒント:

同じユーザーが パスキーサインイン でサインインした場合、Logto は別途 MFA 認証 (Authentication) ステップをスキップします。パスキーサインイン自体が WebAuthn ベースの認証 (Authentication) 要件を満たしているためです。

制限事項に注意:

WebAuthn を実装する際には、いくつかの制限事項に注意が必要です:

  1. プラットフォームとブラウザの制限:Logto は現在、ネイティブアプリケーション向けの WebAuthn サポートを提供していません。また、WebAuthn 認証器の利用可否はブラウザやデバイスの機能に依存します(対応リストを確認)。したがって、WebAuthn は常に多要素認証 (MFA) の唯一の選択肢ではありません。必要に応じて、どのブラウザやデバイスが製品にアクセスできるかを制御してください。
  2. ドメインの制限:ドメインを変更すると、既存の WebAuthn アカウントによるユーザー認証 (Authentication) ができなくなる場合があります。パスキー (Passkeys) は現在の Web ページの特定ドメインに紐付いており、異なるドメイン間で利用できません。
  3. デバイスの制限:デバイスを紛失すると、「このデバイス」プラットフォーム認証器に依存している場合、アカウントへのアクセスを失う可能性があります。認証 (Authentication) アクセスを強化するため、ユーザーに複数の認証 (Authentication) 要素を提供することを推奨します。

パスキー管理の設定

Account API を利用して、ユーザーがパスキー (Passkeys) を追加、表示、名前変更、削除できるカスタムアカウント管理インターフェースを構築できます。これは、パーソナライズされたアカウントセンターやクロスデバイスバックアップシナリオの実現に役立ちます。

詳細な実装手順や API エンドポイントについては、Account API によるアカウント設定 を参照してください。

パスキー設定フロー

パスキー (Passkeys) の仕様では、ユーザーが現在のページでボタンをクリックして認証 (Authentication) コンポーネントを開始する必要があります。つまり、セットアップフローと認証 (Authentication) フローの両方で、ユーザーはランディングページにリダイレクトされて WebAuthn を開始する必要があります。

WebAuthn setup flow

パスキー認証 (Authentication) フロー

ユーザーがパスキー (Passkeys) を含む複数の MFA 方法を設定している場合、パスキー (Passkeys) はその高いセキュリティと利便性から、最初の画面で推奨される MFA 認証 (Authentication) 方法として表示されます。ユーザーは「他の方法で認証 (Authentication) する」をクリックして、他の認証 (Authentication) 方法に切り替えることもできます。詳細は MFA の設定 をご覧ください。

ユーザーが パスキーサインイン でサインインし、他の第一要素を入力しなかった場合、Logto は追加の MFA ステップを要求しません。これは、パスキー (Passkeys) 自体が WebAuthn MFA 要素として扱われるためです。

WebAuthn verification flow WebAuthn 統合前に知っておくべきこと WebAuthn とパスキー 101