8.3.3. 创建无密码浏览器登录流程
为了说明流程的创建,本节描述了创建高级浏览器登录流。此流程的目的是允许用户选择使用无密码的 WebAuthn 登录,或使用密码和 OTP 进行双因素身份验证。
流程
- 在菜单中,单击 Authentication。
- 点 Flows 选项卡。
- 单击 New。
-
输入浏览器密码作为别名。 - 点 Save。
- 单击 Add execution。
- 从下拉列表中选择 Cookie。
- 点 Save。
- 单击 Cookie 身份验证类型的替代选择,以将其要求设置为替代方案。
- 单击 Add execution。
- 从下拉列表中选择 Kerberos。
- 单击 Add execution。
- 从下拉列表中选择 Identity Provider Redirector。
- 点 Save。
- 单击 Identity Provider Redirector 身份验证类型的替代选择,以将其要求设置为替代方案。
- 点 Add flow。
- 输入 Forms 作为别名。
- 点 Save。
点击 Forms 身份验证类型的替代选择,以将其要求设置为替代方案。
浏览器流的常用部分
- 点 Actions for the *Forms 执行。
- 选择 Add execute。
- 从下拉列表中选择 Username Form。
- 点 Save。
- 单击 Username Form authentication type 所需的 Required,以将其要求设置为 required。
在这个阶段,表单需要用户名,但没有密码。我们必须启用密码验证来避免安全风险。
- 点 Forms 子流的 Actions。
- 点 Add flow。
-
输入
Authentication作为别名。 - 点 Save。
- 单击 Authentication 身份验证类型的必需,以设置其要求。
- 点 Authentication 子流的 Actions。
- 单击 Add execution。
- 从下拉列表中选择 Webauthn Passwordless Authenticator。
- 点 Save。
- 点击 Webauthn Passwordent icator 身份验证类型的替代选择。
- 点 Authentication 子流的 Actions。
- 点 Add flow。
-
使用 OTP 作为别名输入 Password。 - 点 Save。
- 点击 OTP 身份验证类型 的替代方案,将其要求设置为替代方案。
- 点 带有 OTP 子流的密码 的 Actions。
- 单击 Add execution。
- 从下拉列表中选择 Password Form。
- 点 Save。
- 单击 Password Form authentication type 所需,以将其要求设置为必填。
- 点 带有 OTP 子流的密码 的 Actions。
- 单击 Add execution。
- 从下拉列表中选择 OTP Form。
- 点 Save。
- 点击 OTP Form 身份验证类型所需的设置要求。
最后,更改绑定。
- 单击 Bindings 选项卡。
- 点击 Browser Flow 下拉列表。
- 从下拉列表中选择 Browser Password-less。
- 点 Save。
免密码浏览器登录
输入用户名后,流程如下:
如果用户记录了 WebAuthn无密码的凭证,他们可以使用这些凭证直接登录。这是无密码登录。用户还可以使用 OTP 选择 Password,因为 WebAuthn Passwordless execution 和 使用 OTP 流的 Password 设置为 alternatives。如果将其设定为 Required,则用户必须输入 WebAuthn、password 和 OTP。
如果用户选择使用 WebAuthn 免密码身份验证 的另一方式 链接,用户可以选择密码和安全密钥(WebAuthn无密码 密码 )。选择密码时,用户需要继续使用分配的 OTP 登录。如果用户没有 WebAuthn 凭证,用户必须输入密码,然后 OTP。如果用户没有 OTP 凭证,则会要求您记录它。
由于 WebAuthn 免密码执行设定为 替代方案,而不是 必需的,因此这个流不会要求用户注册 WebAuthn 凭据。用户若要具有 Webauthn 凭据,管理员必须向用户添加所需的操作。为此:
创建等高级流可能会产生副作用。例如,如果启用为用户重置密码的功能,可以通过密码表单访问此密码。在默认的 Reset Credentials 流中,用户必须输入其用户名。由于用户已在 浏览器式密码 流中之前输入了用户名,因此这个操作对于 Red Hat Single Sign-On 和 sub-optimal 对用户体验来说是不必要的。要解决这个问题,您可以:
-
复制
重置凭据流。将其名称设置为"重置无密码"的凭据,例如: - 在 Choose user execution 的 Actions 菜单中选择 Delete。
- 在 Bindings 菜单中,将 reset credential 流从 Reset Credentials 更改为 Reset Credentials forless