跳到主要内容

会话配置

会话配置定义了租户级别的控制,用于决定 Logto 登录会话的持续时间以及如何强制执行与会话相关的访问策略。

本页内容包括:

  • 会话 TTL 配置
  • 每个应用的最大并发认证 (Authentication) 设备数

会话 TTL 配置​

会话 TTL 决定了 Logto OIDC 登录会话的最长生命周期。 这是一个租户级别的设置:一旦配置,将应用于该租户下的所有应用和认证 (Authentication) 流程。

默认行为​

  • 默认情况下,会话 TTL 为14 天。
  • 如果没有配置自定义 TTL,Logto 会继续使用该默认值。

通过 Logto 控制台配置​

你可以在控制台的以下位置配置会话 TTL:

控制台 > 租户 > 设置 > OIDC 设置

使用 会话最大存活时间 来更新该值。

备注:

控制台使用天作为输入和显示单位,而底层的 OIDC 会话配置 / API 使用秒。

通过 Management API 配置​

使用以下端点读取和更新 OIDC 会话配置:

  • GET /api/configs/oidc/session
  • PATCH /api/configs/oidc/session

示例(ttl 单位为秒):

curl https://[tenant-id].logto.app/api/configs/oidc/session \
-H 'authorization: Bearer <management_api_access_token>'
curl -X PATCH https://[tenant-id].logto.app/api/configs/oidc/session \
-H 'authorization: Bearer <management_api_access_token>' \
-H 'content-type: application/json' \
--data-raw '{"ttl":1209600}'

1209600 秒 = 14 天。

备注:

对于 OSS 部署,在更改 logto-config 后需要重启服务实例,以便服务器能够加载最新的 OIDC 设置。

如需在不重启服务的情况下自动应用 OIDC 配置更新,请启用中央 redis 缓存。

每个应用的最大并发认证 (Authentication) 设备数​

每个应用的最大并发认证 (Authentication) 设备数是一个应用级别的控制,用于限制每个用户在特定应用下可以保持多少个活跃授权 (Authorization)。

通过应用的 customClientMetadata 字段中的 maxAllowedGrants 进行配置。 详细了解请参阅 应用数据结构。

行为​

当设置了 maxAllowedGrants 时,Logto 会在每次授权 (Authorization) 成功时评估用户在当前应用下的活跃授权 (Authorization) 数量。 如果活跃授权 (Authorization) 数量超过限制,Logto 会优先撤销最早的授权 (Authorization)。

如果未设置 maxAllowedGrants,则没有并发限制。

通过 Logto 控制台配置​

你可以在每个应用的详情页下进行配置:

控制台 > 应用 > 应用详情 > 并发设备限制

为当前应用设置每个用户的最大并发活跃授权 (Authorization)(设备)数量。

备注:

该设置不支持机器对机器应用、受保护应用和 SAML 应用。

通过 webhook 监控驱逐事件​

当 Logto 为了强制执行 maxAllowedGrants 而撤销用户最早的授权 (Authorization) 时,会触发 Grant.LimitExceeded webhook 事件,这样你可以主动响应设备被登出的情况,而不是通过支持工单被动发现。

payload 会标识用户和应用、生效的限制、驱逐前的活跃授权 (Authorization) 数量,以及被撤销的授权 (Authorization) ID。完整结构请参阅 Grant.LimitExceeded payload。

常见用例:

  • 通知用户他们在其他设备上被登出,并告知具体设备。
  • 将设备驱逐率纳入分析,判断当前配置的限制是否过低。
  • 标记单个用户异常的驱逐模式,作为凭证共享或账户被接管的信号。

前往 控制台 > Webhook 进行订阅,或通过 Management API 创建 webhook。配置详情请参阅 Webhook。

会话 管理用户会话

管理用户授权 (Authorization) 应用(授权 (Authorization))

应用数据结构:maxAllowedGrants

Webhook 事件:异常 hook 事件

与 Management API 交互