8.8. パスキー
Red Hat build of Keycloak は、パスキー のプレビューサポートを提供します。Red Hat build of Keycloak は、Passkeys Relying Party (RP) として機能します。
パスキーの登録と認証は、WebAuthn の機能によって実現されます。したがって、Red Hat build of Keycloak のユーザーは、既存の WebAuthn の登録と認証 を使用して、パスキーの登録と認証を行うことができます。
同期されたパスキーとデバイスにバインドされたパスキーは、Same-Device Authentication と Cross-Device Authentication (CDA) の両方に使用できます。ただし、パスキー操作の成功は、ユーザーの環境によって異なります。どの操作が 環境 で正常に実行されるかを確認してください。
8.8.1. 条件付き UI によるパスキー認証 リンクのコピーリンクがクリップボードにコピーされました!
条件付き UI を使用したパスキー認証では、LoginLess WebAuthn と同じ方法でパスキーを使用してユーザーを認証できます。この認証では、ユーザーがブラウザーを実行しているデバイスに保存されているパスキーのリストがユーザーに表示されます。したがって、ユーザーはリスト内のパスキーの 1 つを選択して認証できます。LoginLess WebAuthn と比較して、この認証ではユーザーの認証エクスペリエンスが向上します。
この認証では、WebAuthn 条件付き UI が使用されます。したがって、この認証の成功はユーザーの環境に依存します。環境が WebAuthn 条件付き UI をサポートしていない場合、この認証は LoginLess WebAuthn にフォールバックします。
パスキー認証は テクノロジープレビュー であり、完全にはサポートされていません。この機能はデフォルトで無効化されています。
有効にするには、--features=preview または --features=passkeys でサーバーを起動します。
8.8.1.1. 設定 リンクのコピーリンクがクリップボードにコピーされました!
手順
条件付き UI によるパスキー認証を次のようにセットアップします。
-
すでに存在する場合は、WebAuthn パスワードレスサポートに新しい必須アクションを登録します。WebAuthn Authenticator 登録を有効にする で説明されている手順を使用します。
Webauthn Register Passwordlessアクションを登録します。 WebAuthn Passwordless Policyを設定します。Admin Console のAuthenticationセクションのPoliciesWebAuthn Passwordless Policyタブで設定を実行します。ログインレスシナリオのポリシーを設定する場合は、User Verification Requirement を required に設定し、Require discoverable credential を Yes に設定します。専用のログインレスポリシーがないため、user verification=no/discoverable credential=no とログインレスシナリオ (user verification=yes/discoverable credential=yes) を混在させることはできない点に注意してください。注記通常、ハードウェアパスキーのストレージ容量は非常に限られており、パスキーに多くの検出可能な認証情報を保存することはできません。ただし、たとえば、Google アカウントでバックアップされた Android スマートフォンをパスキーデバイスとして使用したり、Bitwarden でバックアップされた iPhone を使用したりすると、この制限が緩和される可能性があります。
認証フローを設定します。新しい認証フローを作成し、Passkeys Conditional UI Authenticator 実行を追加して、実行の要件設定を Required に設定します。
フローの最終的な設定は以下のようになります。
- 上記の WebAuthn セクション で説明されているように、上記のフローをレルム内の ブラウザー 認証フローとしてバインドします。
上記の認証フローでは、ユーザーがログインするためには、自分のアカウントにパスキー認証情報がすでに存在している必要があります。この要件は、レルム内のすべてのユーザーにパスキーがすでに設定されている必要があることを意味します。これは、たとえば、以下に説明するようにユーザー登録を有効にすることで実現できます。
8.8.1.2. パスキー条件付き UI の登録のセットアップ リンクのコピーリンクがクリップボードにコピーされました!
- レルムの registration を有効にします。
- レルムの authentication flows で、registration フローを選択し、オーセンティケーターの Password validation を Disabled に切り替えます。つまり、この例のセットアップでは、新しく登録したユーザーはパスワードを作成する必要はありません。ユーザーは常にパスワードではなくパスキーを使用する必要があります。
-
Authentication タブの Required actions サブタブに戻り、
Webauthn Register Passwordlessアクションを確認し、Set as default action とマークします。つまり、登録後、すべての新規ユーザーに追加されることを意味します。
登録フローセットアップの代替案は、Red Hat build of Keycloak にすでに認識されているユーザーに、必要なアクション WebAuthn Register Passwordless を追加することです。必須アクションが設定されているユーザーは、(ユーザー名/パスワードなどを使用して) 認証を行う必要があります。その後、ログインレス認証に使用するパスキーを登録するように求められます。
使いやすさを向上させ、条件付きパスキーを既存のオーセンティケーターやデフォルトのユーザー名/パスワードフォームなどのフォームと統合できるようにする予定です。
Web Authn Level 3 からは、Resident Key が Discoverable Credential に置き換えられました。
ユーザーのブラウザーが WebAuthn Conditional UI をサポートしている場合は、次の画面が表示されます。
条件付き UI によるパスキー認証
ユーザーが Select your passkey テキストボックスをクリックすると、ユーザーがブラウズを実行しているデバイスに保存されているパスキーのリストが、次のように表示されます。
条件付き UI によるパスキー認証の自動入力
ユーザーのブラウザーが WebAuthn 条件付き UI をサポートしていない場合、認証は次のように LoginLess WebAuthn にフォールバックします。
条件付き UI によるパスキー認証は、LoginLess WebAuthn にフォールバックします。