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