8.4. 用户会话限制
限制用户可以配置用户的会话数量。每个域或每个客户端可以限制会话。
要为流添加会话限制,请执行以下步骤。
- 点流的 Add step。
- 从 item 列表中选择 User session count limiter。
- 点击 Add。
- 为 User Session Count Limiter 验证类型点 Required,将它的 requirement 设置为 required。
- 单击 User Session Count Limiter 的 iwl 齿轮(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 添加。以下是 Reset 凭证流的示例
:
对于 浏览器
流,请考虑不要在顶级流中添加会话限制验证器。此建议是因为 Cookie
验证器,它根据 SSO cookie 自动重新验证用户。它是顶级,最好不要检查 SSO 重新身份验证期间的会话限制,因为用户会话已存在。因此,请考虑在相同级别(如 Cookie
)添加单独的 ALTERNATIVE 子流,如以下 authentication-user-with-session-limit
示例。然后,您可以在以下 real-authentication-subflow'example 中添加 REQUIRED 子流,作为 'authenticate-user-with-session-limit 的嵌套子流
,并在同一级别上添加用户会话限制。在
real-authentication-subflow
中,您可以以类似默认浏览器流的方式添加真实验证器。以下示例流允许用户使用身份提供程序或密码和 OTP 进行身份验证:
关于 Post Broker
登录流,您可以添加 用户会话限制
,作为身份验证流中的唯一验证器,只要您在与身份提供程序进行身份验证后没有触发的其他验证器。但是,请确保此流被配置为身份提供程序上的 Post Broker 流
。需要此要求,以便与身份提供程序进行身份验证也参与会话限制。
目前,管理员负责在不同配置之间保持一致性。因此,请确保您的所有流都使用与用户 会话限制相同的配置
。
CIBA 不提供用户会话限制功能。