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