パスキー (WebAuthn)
パスキー は、従来のパスワードに代わるより安全でユーザーフレンドリーなオプションを提供します。公開鍵暗号を使用することで、パスキーはユーザーのデバイス、サービスドメイン、およびユーザー ID をリンクし、フィッシングやパスワード攻撃に効果的に対抗します。さまざまなデバイスやブラウザと互換性があり、ユーザーはバイオメトリクスやハードウェアセキュリティ機能を使用して便利に認証 (Authentication) できます。WebAuthn は、ウェブサイトがパスキーを実装するための API を提供します。
Logto は現在、多要素認証 (MFA) のためにパスキー (Webauthn) をサポートしています。パスキーサインイン機能は近日公開予定です。更新情報をお待ちください。
概念
顧客は常に WebAuthn よりもパスキーを知っていますが、それらの関係は何であり、どのように使用するのでしょうか?これらの概念を探ってみましょう:
- パスキー:パスキーは、FIDO ベースのフィッシング耐性のある資格情報で、パスワードを置き換えます。非対称公開鍵暗号を利用してセキュリティを強化します。ハードウェアトークンやセキュリティキー(USB や Bluetooth デバイスなど)であることがあります。「パスキー」はユーザーに表示される認証 (Authentication) 方法であるため、製品クライアント内で使用する必要があります。
- WebAuthn:これは W3C と FIDO Alliance によって開発された JavaScript API で、FIDO2 標準を使用してウェブアプリケーションの認証 (Authentication) を強化します。パスキーは WebAuthn がサポートする認証 (Authentication) 方法の一つです。Logto コンソールでは、この統合を「WebAuthn」と専門的に呼んでいます。
WebAuthn は、ユーザーが選択できる多様な認証 (Authentication) 器を提供し、ローカルおよびクラウドで使用できる 2 種類があります:
- プラットフォーム認証 (Internal authenticator):これは、ユーザーがサインインする特定のデバイス OS に結び付けられています。例えば、コンピュータ、ラップトップ、電話、またはタブレットです。バイオメトリクスやデバイスのパスコードなどの方法を使用して、デバイス上でのみ動作し、迅速に認証 (Authentication) できます。例:macOS または iOS での Touch ID、Face ID、またはデバイスパスコードによる iCloud キーチェーンの検証;Windows Hello による顔認識、指紋、またはフレンドリーピンによる検証。
- ローミング認証 (External authenticator, Cross-platform authenticator):これは、ハードウェアセキュリティキーやスマートフォンなどの別のポータブルデバイスまたはソフトウェアアプリケーションです。USB を使用してデバイスをリンクするか、NFC または Bluetooth をオンにしておく必要があります。ローミング認証 (Authentication) 器は、単一のデバイスやブラウザに限定されず、より大きな柔軟性を提供します。
WebAuthn の原則とプロセスをさらに詳しく知るには、ブログ記事 WebAuthn and Passkeys 101 と Things you should know before integrating WebAuthn を参照してください。
制限に注意する
WebAuthn を実装する際には、いくつかの制限に注意することが重要です:
- プラットフォームとブラウザの制限:Logto は現在、ネイティブアプリケーションに対して WebAuthn サポートを提供していないことに注意してください。さらに、WebAuthn 認証 (Authentication) 器の利用可能性は、ブラウザとデバイスの機能に依存します(リストを確認)。したがって、WebAuthn は常に多要素認証 (MFA) を実装する唯一のオプションではなく、どのブラウザとデバイスが製品にアクセスできるかを制御できます。
- ドメインの制限:ドメインを変更すると、既存の WebAuthn アカウントを通じたユーザーの検証が妨げられる可能性があります。パスキーは現在のウェブページの特定のドメインに結び付けられており、異なるドメイン間で使用することはできません。
- デバイスの制限:デバイスを紛失すると、特に「このデバイス」プラットフォーム認証 (Authentication) 器に依存している場合、アカウントへのアクセスを失う可能性があります。認証 (Authentication) アクセスを強化するために、ユーザーに複数の認証 (Authentication) 要素を提供することをお勧めします。
認証 (Authentication) フロー
パスキー仕様では、ユーザーが現在のページでボタンを積極的にクリックして認証 (Authentication) コンポーネントを開始する必要があります。これは、セットアップフローと検証フローの両方で、ユーザーが WebAuthn を開始するためにランディングページにリダイレクトされる必要があることを意味します。
- パスキーセットアップフロー

- パスキー検証フロー

関連リソース
WebAuthn を統合する前に知っておくべきこと
WebAuthn とパスキー 101