8.3.3. パスワードなしのブラウザーログインフローの作成
フローの作成を説明するために、本セクションでは高度なブラウザーログインフローの作成について説明します。このフローの目的は、ユーザーが、WebAuthn によるパスワードなしの方法でのログインと、パスワードと OTP を使用した二要素認証を選択できるようにすることです。
手順
- メニューで Authentication をクリックします。
- Flows タブをクリックします。
- New をクリックします。
-
エイリアスとして
Browser Password-lessを入力します。 - Save をクリックします。
- Add execution をクリックします。
- ドロップダウンリストから Cookie を選択します。
- Save をクリックします。
- Cookie 認証タイプの Alternative をクリックして、その要件を代替に設定します。
- Add execution をクリックします。
- ドロップダウンリストから Kerberos を選択します。
- Add execution をクリックします。
- ドロップダウンリストから Identity Provider Redirector を選択します。
- Save をクリックします。
- Identity Provider Redirector 認証タイプの Alternative をクリックして、その要件を代替に設定します。
- Add flow をクリックします。
- エイリアスとして Forms を入力します。
- Save をクリックします。
Forms 認証タイプの Alternative をクリックして、その要件を代替に設定します。
ブラウザーフローの共通部分
- Actions for the *Forms 実行をクリックします。
- Add execution を選択します。
- ドロップダウンリストから Username Form を選択します。
- Save をクリックします。
- Username Form 認証タイプの Required をクリックして、その要件を必須に設定します。
この段階では、フォームにはユーザー名が必要ですが、パスワードは必要ありません。セキュリティーリスクを回避するために、パスワード認証を有効にする必要があります。
- Forms サブフローの Actions をクリックします。
- Add flow をクリックします。
-
エイリアスとして
Authenticationを入力します。 - Save をクリックします。
- Authentication 認証タイプの Required をクリックして、その要件を必須に設定します。
- Authentication サブフローの Actions をクリックします。
- Add execution をクリックします。
- ドロップダウンリストから Webauthn Passwordless Authenticator を選択します。
- Save をクリックします。
- Webauthn Passwordless Authenticator 認証タイプの Alternative をクリックして、その要件を代替に設定します。
- Authentication サブフローの Actions をクリックします。
- Add flow をクリックします。
-
エイリアスとして
Password with OTPを入力します。 - Save をクリックします。
- Password with OTP 認証タイプの Alternative をクリックして、その要件を代替に設定します。
- Password with OTP サブフローの Actions をクリックします。
- Add execution をクリックします。
- ドロップダウンリストから Password Form を選択します。
- Save をクリックします。
- Password Form 認証タイプの Required をクリックして、その要件を必須に設定します。
- Password with OTP サブフローの Actions をクリックします。
- Add execution をクリックします。
- ドロップダウンリストから OTP Form を選択します。
- Save をクリックします。
- OTP Form 認証タイプの Required をクリックして、その要件を必須に設定します。
最後に、バインディングを変更します。
- Bindings タブをクリックします。
- Browser Flow ドロップダウンリストをクリックします。
- ドロップダウンリストから Browser Password-less を選択します。
- Save をクリックします。
パスワードなしのブラウザーログイン
ユーザー名を入力すると、フローは以下のように機能します。
ユーザーの WebAuthn パスワードレス認証情報が記録されている場合は、これらの認証情報を使用して直接ログインできます。これはパスワードなしのログインです。WebAuthn Passwordless 実行および Password with OTP フローが Alternative に設定されているため、ユーザーは Password with OTP を選択することもできます。Required に設定されている場合は、ユーザーは WebAuthn、パスワード、および OTP を入力する必要があります。
ユーザーが WebAuthn passwordless 認証で Try another wayのリンクを選択する場合、ユーザーは Password と Security Key(WebAuthn パスワードレス) のいずれかを選択できます。パスワードを選択すると、ユーザーは続行して、割り当てられた OTP でログインする必要があります。ユーザーに WebAuthn 認証情報がない場合は、ユーザーはパスワードを入力し、続いて OTP を入力する必要があります。ユーザーに OTP 認証情報がない場合は、記録することが要求されます。
WebAuthn Passwordless 実行は Required ではなく Alternative に設定されているため、このフローはユーザーに WebAuthn 認証情報を登録するように要求しません。ユーザーに Webauthn 認証情報を設定するには、管理者がユーザーに必要なアクションを追加する必要があります。これを行うには、以下を実行します。
- レルムで Webauthn Register Passwordless で必要なアクションを有効にします (WebAuthn のドキュメントを参照)。
- ユーザーの Credentials 管理メニューの Credential Reset 部分を使用して、必要なアクションを設定します。
このような高度なフローを作成すると、副次的な影響が生じる可能性があります。たとえば、ユーザーのパスワードをリセットできるようにする場合は、パスワードフォームからアクセスが可能になります。デフォルトの Reset Credentials フローで、ユーザーはユーザー名を入力する必要があります。ユーザーは Browser Password-less フローで先にユーザー名を入力しているため、Red Hat Single Sign-On ではこの操作は必要なく、ユーザーエクスペリエンスとしては最適ではありません。この問題を修正するには、以下を行います。
-
Reset Credentialsフローをコピーします。たとえば、その名前をReset Credentials for password-lessに設定します。 - Choose user 実行の Actions メニューで Delete を選択します。
- Bindings メニューで、認証情報のリセットフローを Reset Credentials から Reset Credentials for password-less に変更します。