5.6. 应用程序启动的操作


应用程序启动的操作(AIA)允许客户端应用程序请求用户在红帽构建的 Keycloak 端执行操作。通常,当 OIDC 客户端应用程序希望用户登录时,它会将该用户重定向到登录 URL,如 OIDC 部分所述。登录后,用户将重新重定向到客户端应用程序。用户执行管理员 在上一节中 描述所需的操作,然后立即重定向到应用程序。但是,AIA 允许客户端应用程序在登录期间从用户请求一些必要的操作。即使用户已在客户端上进行身份验证并且具有活跃的 SSO 会话,也可以执行此操作。它通过将 kc_action 参数添加到 OIDC 登录 URL 中触发,其值包含所请求操作的值。例如 kc_action=UPDATE_PASSWORD 参数。

注意

kc_action 参数是红帽构建的 OIDC 规格不支持的 Keycloak 专有机制。

注意

应用程序启动的操作只支持 OIDC 客户端。

因此,如果使用 AIA,则示例流类似如下:

  • 客户端应用程序使用附加参数将用户重定向到 OIDC 登录 URL,如 kc_action=UPDATE_PASSWORD
  • 按照 Authentication flows 部分所述,始终触发 浏览器 流。如果用户没有经过身份验证,则该用户在正常登录过程中需要以 身份进行身份验证。如果用户已经通过了身份验证,该用户可能会被 SSO cookie 自动重新验证,而无需主动重新验证并再次提供凭据。在这种情况下,该用户将直接重定向到带有特定操作(本例中为更新密码)的屏幕。然而,在某些情况下,即使用户有 SSO cookie (详情请参阅 下面), 也需要激活重新身份验证。
  • 用户会显示具有特定操作的屏幕(本例中为 更新密码),以便用户需要执行特定操作
  • 然后,用户被重定向到客户端应用程序

请注意,红帽构建的 Keycloak 帐户 控制台使用 AIA 来请求更新密码或重置 OTP 或 WebAuthn 等其他凭证。

警告

即使使用了 kc_action 参数,也不足以假定用户始终执行该操作。例如,用户可以从浏览器 URL 中手动删除 kc_action 参数。因此,在客户端请求 kc_action=CONFIGURE_TOTP 后,用户不会保证用户具有 OTP。如果要验证用户配置了双因素验证器,则客户端应用程序可能需要检查它是否已配置。例如,通过检查令牌中的 acr 等声明。

5.6.1. AIA 期间重新进行身份验证

如果用户因为活跃的 SSO 会话而已通过身份验证,则该用户通常不需要主动重新验证。但是,如果该用户在五分钟以前被主动验证的时间超过五分钟,客户端仍然可以在请求一些 AIA 时请求重新身份验证。本指南行中存在例外,如下所示:

  • 操作 delete_account 将始终要求用户主动重新验证
  • 如果要使用较短的重新身份验证,您仍可使用带有指定较短的值的 max_age 等参数查询参数,或者最终 提示=login,这始终需要用户来主动重新验证,如 OIDC 规范中所述。请注意,不支持将 max_age 比默认的五分钟长。目前,max_age 只能用于使值比默认的五分钟短。

5.6.2. 可能的操作

要查看所有可用的操作,请登录到 Admin 控制台,再进入右上角,点 Realm info tab Provider info Find provider required-action。但请注意,这可以根据在 Required 操作选项卡中为您的域启用哪些操作 进行进一步限制。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat