设置空闲会话超时

您可以根据自身的安全和合规要求调整 IBM® Software Hub 空闲会话超时时间。 用户在 Web 浏览器中的会话处于空闲状态达到指定的时间长度时,该用户就会从 Web 客户机自动注销。

谁需要完成这项任务?

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

  • 集群管理员
  • 实例管理员
你需要在什么时候完成这项任务?

仅当您希望覆盖某个实例的默认空闲会话 IBM Software Hub超时时间时,才执行此操作。

根据需要重复此操作 IBM Software Hub。若存在多个实例,请对每个需要覆盖默认行为的实例重复此任务。

关于本任务

默认情况下, IBM Software Hub 系统会在12小时后自动注销用户。 您可以编辑 IBM Software Hubproduct-configmap 来调整:

设置 参数名 描述
用户会话过期前的剩余时间 TOKEN_EXPIRY_TIME 缺省值为 12 小时。
  • 如果设置 TOKEN_EXPIRY_TIME: "1",那么用户会话将在不活动 1 小时后到期。
  • 如果设置 TOKEN_EXPIRY_TIME: "0.5",那么用户会话将在不活动 30 分钟后到期。

用户会话处于空闲状态达到指定的时间长度时,该用户就会从 Web 客户机自动注销。

建议将值设置在 0.11 之间。

管理员会话过期的时间长度 ADMIN_TOKEN_EXPIRY_TIME 默认情况下,该 TOKEN_EXPIRY_TIME 设置适用于所有用户。

您可选择性地设置该选项 ADMIN_TOKEN_EXPIRY_TIME ,以覆盖具有平台管理权限用户的设置 TOKEN_EXPIRY_TIME

拥有平台管理权限的用户在平台上具有提升权限。 您可以通过将 ADMIN_TOKEN_EXPIRY_TIME 设置为小于 ADMIN_TOKEN_EXPIRY_TIME ,来限制敏感数据的 TOKEN_EXPIRY_TIME暴露范围。

例如,集合:
  • TOKEN_EXPIRY_TIME: "1" 在用户闲置1小时后自动注销其常规账户。
  • ADMIN_TOKEN_EXPIRY_TIME: ".25" 在用户处于非活动状态15分钟后,强制注销拥有平台管理权限的用户。
用户会话的最大时长 TOKEN_REFRESH_PERIOD

当会话创建时, IBM Software Hub 会生成一个会话令牌。 该令牌在参数 TOKEN_EXPIRY_TIME 指定的时间段内有效。

只要令牌有效,会话令牌就可以被更新。 然而,会话令牌只能在参数 TOKEN_REFRESH_PERIOD 指定的时间范围内进行更新。

缺省值为 12 小时。

建议将值设置在 124 之间。

如果您不想允许用户延长其会话,请将 TOKEN_REFRESH_PERIOD 参数设置为小于 TOKEN_EXPIRY_TIME 参数的值。

管理员会话的最大时长 ADMIN_TOKEN_REFRESH_PERIOD 默认情况下,该 TOKEN_REFRESH_PERIOD 设置适用于所有用户。

您可选择性地设置 ADMIN_TOKEN_REFRESH_PERIOD ,以覆盖具有平台管理权限用户的设置 TOKEN_REFRESH_PERIOD

拥有平台管理权限的用户在平台上具有提升权限。 您可以通过将 ADMIN_TOKEN_REFRESH_PERIOD 设置为小于 ADMIN_TOKEN_REFRESH_PERIOD ,来限制敏感数据的 TOKEN_REFRESH_PERIOD暴露范围。

请参考以下示例来理解这些设置的运作方式:

示例配置 1
在此配置中,相同的设置将应用于所有用户。
TOKEN_EXPIRY_TIME: "0.5"
TOKEN_REFRESH_PERIOD: "2"
当用户在上午8:00登录时, IBM Software Hub 生成一个会话令牌。
  • 若用户在上午8:00至8:30期间未在网页客户端进行操作,会话将过期并自动注销用户。
  • 如果用户在上午8:10停止使用网页客户端,并在上午8:41再次尝试使用网页客户端,则必须重新进行身份验证,因为其会话已过期。
  • 若用户在网页客户端保持活跃状态, IBM Software Hub 系统将每30分钟自动刷新用户令牌,直至上午10:00。 用户的会话将持续至上午10:30。 上午10:30之后,用户必须重新进行身份验证。
示例配置 2
在此配置中,对拥有管理平台权限的用户将应用更严格的设置。
TOKEN_EXPIRY_TIME: "0.5"
ADMIN_TOKEN_EXPIRY_TIME: "0.25"
TOKEN_REFRESH_PERIOD: "2"
ADMIN_TOKEN_REFRESH_PERIOD: "0.1"

当未持有平台管理权限的用户于上午8:00登录时, IBM Software Hub 系统将生成一个会话令牌。

  • 若用户在上午8:00至8:30期间未在网页客户端进行操作,会话将过期并自动注销用户。
  • 如果用户在上午8:10停止使用网页客户端,并在上午8:41再次尝试使用网页客户端,则必须重新进行身份验证,因为其会话已过期。
  • 若用户在网页客户端保持活跃状态, IBM Software Hub 系统将每30分钟自动刷新用户令牌,直至上午10:00。 用户的会话将持续至上午10:30。 上午10:30之后,用户必须重新进行身份验证。

当拥有平台管理权限的用户于上午8:00登录时, IBM Software Hub 系统将生成一个会话令牌。 即使用户正在网页客户端中活动,其会话也将在上午8:15自动过期。

过程

  1. 请以具备足够权限的用户身份 Red Hat OpenShift Container Platform 登录,以完成该任务。
    ${OC_LOGIN}
  2. 要更改设置 TOKEN_EXPIRY_TIME
    1. USER_EXPIRY_TIME 环境变量值设置为会话过期前的时间长度(以小时为单位)。 使用小数点(例如) 0.5 来指定小时的分数部分。
      export USER_EXPIRY_TIME=<time-in-hours>
    2. 在 中 TOKEN_EXPIRY_TIME 设置 product-configmap ConfigMap参数:
      oc patch configmap product-configmap \
      --namespace=${PROJECT_CPD_INST_OPERANDS} \
      --type=merge \
      --patch="{\"data\": {\"TOKEN_EXPIRY_TIME\": \"${USER_EXPIRY_TIME}\"}}"
  3. 要更改设置 ADMIN_TOKEN_EXPIRY_TIME
    1. ADMIN_EXPIRY_TIME 环境变量值设置为会话过期前的时间长度(以小时为单位)。 使用小数点(例如) 0.5 来指定小时的分数部分。
      export ADMIN_EXPIRY_TIME=<time-in-hours>
    2. 在 中 ADMIN_TOKEN_EXPIRY_TIME 设置 product-configmap ConfigMap参数:
      oc patch configmap product-configmap \
      --namespace=${PROJECT_CPD_INST_OPERANDS} \
      --type=merge \
      --patch="{\"data\": {\"ADMIN_TOKEN_EXPIRY_TIME\": \"${ADMIN_EXPIRY_TIME}\"}}"
  4. 要更改设置 TOKEN_REFRESH_PERIOD
    1. USER_REFRESH_PERIOD 环境变量设置为用户必须刷新会话的时间长度(以小时为单位)。 使用小数点(例如) 0.5 来指定小时的分数部分。
      export USER_REFRESH_PERIOD=<time-in-hours>
    2. 在 中 TOKEN_REFRESH_PERIOD 设置 product-configmap ConfigMap参数:
      oc patch configmap product-configmap \
      --namespace=${PROJECT_CPD_INST_OPERANDS} \
      --type=merge \
      --patch="{\"data\": {\"TOKEN_REFRESH_PERIOD\": \"${USER_REFRESH_PERIOD}\"}}"
  5. 要更改设置 ADMIN_TOKEN_REFRESH_PERIOD
    1. ADMIN_REFRESH_PERIOD 环境变量设置为管理员刷新会话所需的时间长度(以小时为单位)。 使用小数点(例如) 0.5 来指定小时的分数部分。
      export ADMIN_REFRESH_PERIOD=<time-in-hours>
    2. 在 中 ADMIN_TOKEN_REFRESH_PERIOD 设置 product-configmap ConfigMap参数:
      oc patch configmap product-configmap \
      --namespace=${PROJECT_CPD_INST_OPERANDS} \
      --type=merge \
      --patch="{\"data\": {\"ADMIN_TOKEN_REFRESH_PERIOD\": \"${ADMIN_REFRESH_PERIOD}\"}}"
  6. 重启 pod usermgmt 以使更改生效:
    oc delete pods \
    --namespace=${PROJECT_CPD_INST_OPERANDS} \
    -l component=usermgmt