限制并发用户会话数量

默认情况下,用户可以拥有无限数量的并发会话。 例如,用户可以在3个不同的网页浏览器中 IBM® Software Hub 打开该页面,并同时拥有3个会话。 您可以选择性地限制用户可拥有的并发会话数量。

谁需要完成这项任务?

要完成此任务,您必须在集群 Red Hat® OpenShift® Container Platform 中拥有以下角色之一:

  • 集群管理员
  • 实例管理员
你需要在什么时候完成这项任务?
若需限制用户可拥有的并发会话数量,请完成此任务。

根据需要重复此操作 IBM Software Hub。若存在多个实例,请对每个需要限制并发会话数的实例重复此任务。

开始之前

最佳实践: 若为您的安装环境设置了环境变量,则可直接按此任务中的命令执行方式运行多数命令。 有关说明,请参阅设置安装环境变量

请确保在本任务中执行命令之前已设置环境变量。

关于本任务

默认情况下,用户可以拥有无限数量的并发会话。 您可以编辑 IBM Software Hubproduct-configmap ConfigMap 来限制并发会话的数量。

每次用户登录时都会创建一个 IBM Software Hub会话。 如果用户未退出当前会话,可能会导致存在多个并发会话。 若限制并发会话数量,当用户达到上限时,其最旧的会话将被自动移除。 例如,若将会话限制设为3个,当用户尝试开启第四个会话时,系统将自动移除用户最旧的会话。

当会话被移除时,该会话的记录将从数据库 user_sessions 表中删除。 任何尝试使用与会话关联的JWT令牌的行为都会返回错误:

  • 如果用户在网页客户端中,则会收到 302 错误。
  • 如果用户正在调用API,则会收到401 错误。

过程

要限制并发用户会话的数量:

  1. 请以具备足够权限的用户身份 Red Hat OpenShift Container Platform 登录,以完成该任务。
    ${OC_LOGIN}
  2. SESSION_LIMIT 环境变量设置为允许的最大并发会话数:
    export SESSION_LIMIT=<number-of-sessions>
  3. 在 中设置 product-configmap ConfigMap参数 CONCURRENT_SESSIONS_PER_USER
    oc patch configmap product-configmap \
    --namespace=${PROJECT_CPD_INST_OPERANDS} \
    --type=merge \
    --patch="{\"data\": {\"CONCURRENT_SESSIONS_PER_USER\": \"${SESSION_LIMIT}\"}}"
  4. 重启 pod usermgmt 以使更改生效:
    oc delete pods \
    --namespace=${PROJECT_CPD_INST_OPERANDS} \
    -l component=usermgmt