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

パスキー (Passkeys)(WebAuthn)

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

Logto は現在、多要素認証 (MFA) のためにパスキー (WebAuthn) をサポートしています。パスキーによるサインイン機能も近日公開予定です。今後のアップデートにご期待ください。

概念​

一般的に「パスキー (Passkeys)」の方が「WebAuthn」よりも知られていますが、両者の関係や使い方はどうなっているのでしょうか?これらの概念を整理します:

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

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

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

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

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

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

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 の設定 をご覧ください。

WebAuthn verification flow WebAuthn 導入前に知っておくべきこと WebAuthn とパスキー (Passkeys) 101