3.8. 控制登录选项
红帽构建的 Keycloak 包括几个内置登录页面功能。
3.8.1. 启用忘记密码
如果启用 Forgot 密码
,如果用户忘记了其密码或丢失其 OTP 生成器,用户可以重置其登录凭据。
流程
- 点菜单中的 Realm settings。
点 Login 选项卡。
Login 标签页
将 Forgot 密码 切换为 ON。
忘记密码?
链接会显示在您的登录页面中。忘记密码链接
-
在 Email 选项卡中指定
Host
和From
,以便红帽构建的 Keycloak 能够发送重置电子邮件。 单击此链接,使用户可以输入其用户名或电子邮件地址,并收到一封电子邮件,以重置其凭据。
忘记密码页面
电子邮件中发送的文本可以配置。如需更多信息,请参阅 服务器开发人员指南。
当用户点击电子邮件链接时,红帽构建的 Keycloak 会要求他们更新其密码,如果他们设置了 OTP 生成器,红帽构建的 Keycloak 会要求他们重新配置 OTP 生成器。根据您的机构的安全要求,您可能不希望用户通过电子邮件重置 OTP 生成器。
要更改此行为,请执行以下步骤:
流程
- 点菜单中的 Authentication。
- 点 Flows 选项卡。
选择 Reset Credentials 流。
重置凭证流
如果您不想重置 OTP,请将
Reset - Conditional OTP
子流要求设置为 Disabled。- 点菜单中的 Authentication。
- 点 Required actions 选项卡。
确保启用了 Update Password。
所需操作
3.8.2. 启用 Remember Me
登录的用户关闭其浏览器会破坏其会话,并且该用户必须再次登录。如果该用户在登录时点 Remember Me 复选框,您可以设置 Red Hat build of Keycloak 来保持用户的登录会话打开。此操作将登录 Cookie 从仅会话 Cookie 变为持久性 Cookie。
流程
- 点菜单中的 Realm settings。
- 点 Login 选项卡。
将 Remember Me 开关切换为 On。
Login 标签页
在保存了此设置后,
remember me
复选框显示在域的登录页面上。请记住我
3.8.3. ACR 到身份验证级别(LoA)映射
在域的登录设置中,您可以定义哪个 Authentication Context Class Reference (ACR)
值映射到哪个级别的 身份验证(LoA)
。ACR 可以是任意值,而 LoA 必须是数字。acr 声明可以在 OIDC 请求发送的声明
或 cr_values
参数中请求,它也包含在访问令牌和 ID 令牌中。映射的数字在身份验证流条件中使用。
如果特定客户端需要使用与 realm 不同的值,则映射也可以在客户端级别指定。但是,最佳实践是遵循域映射。
详情请查看 步骤验证和 官方 OIDC 规格。
3.8.4. 更新电子邮件工作流(UpdateEmail)
使用这个工作流,用户必须使用 UPDATE_EMAIL 操作来更改自己的电子邮件地址。
操作与单个电子邮件输入表相关联。如果域禁用了电子邮件验证,则此操作将允许在不验证的情况下更新电子邮件。如果域启用了电子邮件验证,则该操作会将电子邮件更新操作令牌发送到新的电子邮件地址,而不更改帐户电子邮件。只有操作令牌触发后才会完成电子邮件更新。
应用程序可以通过使用 UPDATE_EMAIL 作为 AIA (应用程序初始操作)来将其用户发送到电子邮件更新表单。
UpdateEmail 是 技术预览,并不被支持。此功能默认为禁用。
使用 --features=preview
或 --features=update-email
启动服务器
如果您启用此功能,且您要从以前的版本迁移,请在域中启用 Update Email required 操作。否则,用户无法更新其电子邮件地址。