8.6.6. パスワードなしの WebAuthn と 2 つのファクターの組み合わせ

Red Hat Single Sign-On は、2 要素認証に WebAuthn を使用しますが、第一要素認証として WebAuthn を使用できます。この場合、パスワードなし の WebAuthn 認証情報を持つユーザーは、パスワードなしで Red Hat Single Sign-On に対して認証できます。Red Hat Single Sign-On では、レルムおよび単一の認証フローのコンテキストで、パスワードなしおよび 2 要素の認証メカニズムの両方として WebAuthn を使用できます。

管理者は、通常、WebAuthn パスワードレス認証用にユーザーが登録するセキュリティーキーが異なる要件を満たすことを要求します。たとえば、ユーザーは、PIN を使用してセキュリティーキーに対して認証することが要求される場合があります。あるいは、セキュリティーキーを強力な認証局で認証する必要があります。

このため、Red Hat Single Sign-On では、管理者は個別の WebAuthn Passwordless Policy を設定できます。必須の Webauthn Register Passwordless アクションタイプと、別の WebAuthn Passwordless Authenticator オーセンティケータータイプがあります。

8.6.6.1. 設定

以下のように WebAuthn パスワードレスサポートを設定します。

  1. WebAuthn パスワードレスサポートに新しい必須アクションを登録します。WebAuthn オーセンティケーター登録の有効化 で説明されている手順を使用します。Webauthn Register Passwordless アクションを登録します。
  2. ポリシーを設定します。ポリシーの管理 で説明されている手順および設定オプションを使用できます。管理コンソールのWebAuthn Passwordless Policy タブで、設定を実行します。通常、セキュリティーキーの要件は、2 要素ポリシーよりもより強力になります。たとえば、パスワードレスポリシーの設定時に、User Verification RequirementRequired に設定できます。
  3. 認証フローを設定します。WebAuthn 認証のブラウザーフローへの追加 で説明されている WebAuthn Browser フローを使用します。以下のようにフローを設定します。

    • WebAuthn Browser Forms サブフローには、最初のオーセンティケーターとして Username Form が含まれます。デフォルトの Username Password Form オーセンティケーターを削除し、Username Form オーセンティケーターを追加します。このアクションでは、ユーザーに最初のステップとしてユーザー名を提供することを要求します。
    • 必須のサブフローがある場合があります (例: Passwordless Or Two-factor)。このサブフローは、ユーザーが Passwordless WebAuthn 認証情報または Two-factor 認証で認証できることを示しています。
    • フローには、第一の代替として WebAuthn Passwordless Authenticator が含まれます。
    • 2 つ目の代替は、Password And Two-factor Webauthn (例) という名前のサブフローです。このサブフローには、Password Form および WebAuthn Authenticator が含まれます。

フローの最終的な設定は以下のようになります。

webauthn passwordless flow

Red Hat Single Sign-On にすでに知られているユーザーに、必要なアクションとして WebAuthn Register Passwordless を追加してテストできるようになりました。第一の認証時に、ユーザーはパスワードおよび第二要素の WebAuthn 認証情報を使用する必要があります。WebAuthn Passwordless 認証情報を使用する場合、ユーザーはパスワードおよび第二要素の WebAuthn 認証情報を提供する必要はありません。=== 条件付きフローの条件

実行要件 のセクションで説明されているように、Condition 実行は Conditional サブフローにのみ含めることができます。すべての条件実行が true と評価されると、Conditional サブフローは Required として機能します。Conditional サブフローの次の実行を処理できます。Conditional サブフローに含まれる一部の実行が false と評価されると、サブフロー全体が Disabled と見なされます。