8.4. 用户会话限制
对用户可以配置的会话数量的限值。会话可以限制每个域或每个客户端。
要为流添加会话限制,请执行以下步骤。
- 点 Add step for the flow。
- 从 项目列表中选择 User session count limiter。
- 点 Add。
- 为 User Session Count Limiter 身份验证类型点 Required 将其要求设置为 required。
- 在 User Session Count Limiter 中点 这个附件(gear 图标)。
- 输入此配置的别名。
- 输入用户在此域中可以具有的所需最大会话数。例如,如果 2 是值,2 SSO 会话是每个用户在此域中可以具有的最大值。如果 0 是值,则会禁用此检查。
-
输入用户可为客户端具有所需的最大会话数。例如,如果 2 是值,则 2 个 SSO 会话是每个客户端此域中的最大值。因此,当用户试图向客户端
foo进行身份验证,但该用户已在 2 个 SSO 会话中对客户端foo进行身份验证时,身份验证将被拒绝,或者现有会话将根据配置的行为被终止。如果使用 0 值,则会禁用此检查。如果同时启用了会话限制和客户端会话限制,则通常将客户端会话限制始终低于会话限制。每个客户端的限制永远不会超过此用户的所有 SSO 会话的限制。 选择用户在达到限制后尝试创建会话时所需的行为。可用的行为有:
- 拒绝新会话 - 当请求新会话并且达到会话限制时,就无法创建新的会话。
- 终止最旧的会话 - 当请求新会话并且达到会话限制时,会删除最旧的会话并创建新会话。
- (可选)添加要在达到限制时显示的自定义错误消息。
请注意,用户会话限制应添加到绑定 浏览器流、直接授权流、重置凭据 以及任何 Post 代理登录流。当用户在身份验证期间知道时(通常是身份验证流的末尾)并且通常为 REQUIRED 时,应添加验证器。请注意,无法在同一级别上进行 ALTERNATIVE 和 REQUIRED 执行。
对于(如 Direct grant flow、Reset credentials 或 Post broker login flow )等大多数验证器,建议在身份验证流的末尾将验证器作为 REQUIRED 添加。以下是 重置凭证 流的示例:
对于 浏览器 流,请考虑不要在顶级流中添加会话限制验证器。本建议是因为 Cookie 身份验证器,它根据 SSO cookie 自动重新验证用户。它是顶层,最好在 SSO 重新身份验证期间不检查会话限制,因为用户会话已存在。相反,请考虑添加单独的 ALTERNATIVE 子流,如以下 authentication -user-with-session-limit 示例,如 Cookie 相同的级别。然后,您可以在以下 real-authentication-subflow'example 中添加 REQUIRED 子流,作为 'authenticate-user-with-session-limit 的嵌套子流,并在相同的级别上添加用户会话限制。在 real-authentication-subflow 中,您可以使用类似于默认浏览器流的方式添加实际验证器。以下示例流程允许用户使用身份提供程序或使用密码和 OTP 进行身份验证:
关于 Post Broker 登录流,您可以在身份验证流中添加 User Session Limits 作为身份验证流的唯一验证器,只要您没有在身份提供程序验证后触发的其他验证器。但是,请确保此流在身份提供程序中被配置为 Post Broker 流。这个要求存在,以便与身份提供程序进行身份验证也会参与会话限制。
目前,管理员负责在不同配置之间保持一致性。因此,请确保您的所有流都使用相同的 配置用户会话限制。
CIBA 不提供用户会话限制功能。