跳至主要內容

工作階段設定 (Session configuration)

工作階段設定 (Session configuration) 定義租戶層級的控制,用於決定 Logto 登入工作階段 (sign-in sessions) 的存續時間,以及如何強制執行與工作階段相關的存取政策。

本頁涵蓋:

  • 工作階段 TTL 設定 (Session TTL configuration)
  • 每個應用程式的最大同時驗證裝置數 (Max concurrent authenticated devices per app)

工作階段 TTL 設定 (Session TTL configuration)

工作階段 TTL(Time To Live)決定 Logto OIDC 登入工作階段的最長存續時間。 這是一個租戶層級設定:一旦設定,將套用於該租戶下所有應用程式與驗證流程。

預設行為 (Default behavior)

  • 預設情況下,工作階段 TTL 為 14 天
  • 若未自訂 TTL,Logto 會持續使用此預設值。

透過 Logto Console 設定

你可以在 Console 的以下位置設定工作階段 TTL:

Console > 租戶 (Tenant) > 設定 (Settings) > OIDC 設定 (OIDC settings)

使用 Session maximum time to live 欄位來更新數值。

備註:

Console 以為單位輸入與顯示,而底層 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 快取

每個應用程式的最大同時驗證裝置數 (Max concurrent authenticated devices per app)

每個應用程式的最大同時驗證裝置數是一個應用程式層級的控制,用於限制每位使用者在特定應用程式下可保有的有效授權 (active grants) 數量。

這可透過應用程式 customClientMetadata 中的 maxAllowedGrants 欄位設定。 詳情請參閱 應用程式資料結構 (Application data structure)

行為說明 (Behavior)

當設定了 maxAllowedGrants 時,Logto 會在每次授權成功時評估使用者於當前應用程式的有效授權數。 若有效授權數超過限制,Logto 會優先撤銷最舊的授權。

若未設定 maxAllowedGrants,則無同時數量限制。

透過 Logto Console 設定

你可以在每個應用程式的詳細頁面設定此項目:

Console > 應用程式 (Applications) > 應用程式詳情 (Application details) > 同時裝置限制 (Concurrent device limit)

為當前應用程式設定每位使用者可同時啟用的最大授權(裝置)數量。

備註:

此設定不支援機器對機器應用程式、受保護應用程式與 SAML 應用程式。

透過 webhook 監控授權回收 (Monitor evictions with a webhook)

當 Logto 為強制執行 maxAllowedGrants 而撤銷使用者最舊的授權時,會觸發 Grant.LimitExceeded webhook 事件,讓你能即時回應裝置被登出,而非事後從客服單中發現。

payload 會標示使用者與應用程式、當前限制、回收前的授權數,以及被撤銷的授權 ID。完整結構請參閱 Grant.LimitExceeded payload

常見應用場景:

  • 通知使用者其在其他裝置被登出,並標示來源。
  • 將裝置回收率納入分析,判斷設定的限制是否過低。
  • 標記單一使用者出現異常回收模式,作為憑證共用或帳號盜用的可能徵兆。

前往 Console > Webhooks 訂閱,或透過 Management API 建立 webhook。設定詳情請參閱 Webhooks

工作階段 (Sessions) 管理使用者工作階段 (Manage user sessions) 管理使用者授權應用程式 (grants)

應用程式資料結構:maxAllowedGrants

Webhooks 事件:例外 hook 事件

與 Management API 互動