ข้ามไปยังเนื้อหาหลัก

การกำหนดค่าช่วงเวลาเซสชัน

การกำหนดค่าเซสชันเป็นการควบคุมในระดับผู้เช่า (tenant) สำหรับระยะเวลาที่เซสชันการลงชื่อเข้าใช้ Logto จะยังคงใช้งานได้ และวิธีการบังคับใช้นโยบายการเข้าถึงที่เกี่ยวข้องกับเซสชัน

หน้านี้ครอบคลุม:

  • การกำหนดค่า TTL ของเซสชัน
  • จำนวนอุปกรณ์ที่ยืนยันตัวตนพร้อมกันสูงสุดต่อแอป

การกำหนดค่า TTL ของเซสชัน

Session TTL กำหนดอายุสูงสุดของเซสชันการลงชื่อเข้าใช้ OIDC ของ Logto นี่เป็น การตั้งค่าระดับผู้เช่า (tenant-level setting): เมื่อกำหนดแล้วจะมีผลกับทุกแอปและทุก flow การยืนยันตัวตนในผู้เช่านั้น

พฤติกรรมเริ่มต้น

  • โดยค่าเริ่มต้น Session TTL คือ 14 วัน
  • หากไม่ได้กำหนด TTL แบบกำหนดเอง Logto จะใช้ค่านี้ต่อไป

กำหนดค่าผ่าน Logto Console

คุณสามารถกำหนดค่า Session TTL ได้ใน Console ที่

Console > Tenant > Settings > OIDC settings

ใช้ Session maximum time to live เพื่ออัปเดตค่า

บันทึก:

Console ใช้ วัน สำหรับการกรอกและแสดงผล ในขณะที่การตั้งค่า OIDC session / API ที่อยู่เบื้องหลังใช้ วินาที

กำหนดค่าผ่าน Management API

ใช้ endpoint เหล่านี้เพื่ออ่านและอัปเดตการกำหนดค่า OIDC session:

  • 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 ให้รีสตาร์ท instance ของ service เพื่อให้เซิร์ฟเวอร์โหลดการตั้งค่า OIDC ล่าสุด

หากต้องการให้อัปเดต OIDC config มีผลอัตโนมัติโดยไม่ต้องรีสตาร์ท service ให้ เปิดใช้ central redis cache

จำนวนอุปกรณ์ที่ยืนยันตัวตนพร้อมกันสูงสุดต่อแอป

จำนวนอุปกรณ์ที่ยืนยันตัวตนพร้อมกันสูงสุดต่อแอปเป็นการควบคุมในระดับแอป เพื่อจำกัดจำนวน grant ที่ผู้ใช้แต่ละคนสามารถมีได้สำหรับแอปนั้น

สามารถกำหนดได้ผ่านฟิลด์ maxAllowedGrants ใน customClientMetadata ของแอป ดูรายละเอียดเพิ่มเติมที่ โครงสร้างข้อมูลแอปพลิเคชัน

พฤติกรรม

เมื่อกำหนด maxAllowedGrants แล้ว Logto จะตรวจสอบ grant ที่ผู้ใช้มีอยู่สำหรับแอปปัจจุบันทุกครั้งที่อนุญาตสำเร็จ หากจำนวน grant ที่ใช้งานอยู่เกินขีดจำกัด Logto จะเพิกถอน grant ที่เก่าที่สุดก่อน

หากไม่ได้กำหนด maxAllowedGrants จะไม่มีการจำกัดจำนวนอุปกรณ์พร้อมกัน

กำหนดค่าผ่าน Logto Console

คุณสามารถกำหนดค่านี้ได้ในหน้ารายละเอียดของแต่ละแอปที่

Console > Applications > Application details > Concurrent device limit

ตั้งค่าจำนวน grant (อุปกรณ์) ที่ใช้งานพร้อมกันสูงสุดต่อผู้ใช้สำหรับแอปนี้

บันทึก:

การตั้งค่านี้ไม่รองรับสำหรับแอป machine-to-machine, แอปที่ป้องกันไว้ (protected apps) และแอป SAML

ติดตามการถูกบังคับออกด้วย webhook

เมื่อ Logto เพิกถอน grant ที่เก่าที่สุดของผู้ใช้เพื่อบังคับใช้ maxAllowedGrants จะมีการทริกเกอร์ event webhook Grant.LimitExceeded webhook event เพื่อให้คุณสามารถตอบสนองต่อการที่อุปกรณ์ถูกลงชื่อออก แทนที่จะรอให้ผู้ใช้แจ้งปัญหา

payload จะระบุผู้ใช้และแอป ขีดจำกัดที่ใช้งาน จำนวน grant ที่มีอยู่ก่อนถูกบังคับออก และ grant ID ที่ถูกเพิกถอน ดู Grant.LimitExceeded payload สำหรับโครงสร้างเต็ม

กรณีการใช้งานทั่วไป:

  • แจ้งเตือนผู้ใช้ว่าถูกลงชื่อออกจากอุปกรณ์อื่น พร้อมระบุว่าอุปกรณ์ใด
  • นำอัตราการถูกบังคับออกของอุปกรณ์ไปวิเคราะห์ เพื่อดูว่าขีดจำกัดที่ตั้งไว้ต่ำเกินไปหรือไม่
  • แจ้งเตือนรูปแบบการถูกบังคับออกที่ผิดปกติของผู้ใช้รายเดียว เป็นสัญญาณของการแชร์บัญชีหรือการถูกยึดบัญชี

ไปที่ Console > Webhooks เพื่อสมัครรับ event หรือสร้าง webhook ผ่าน Management API ดูรายละเอียดที่ Webhooks

เซสชัน จัดการเซสชันของผู้ใช้ จัดการแอปที่ผู้ใช้ได้รับอนุญาต (grants)

โครงสร้างข้อมูลแอปพลิเคชัน: maxAllowedGrants

เหตุการณ์ Webhooks: exception hook events

โต้ตอบกับ Management API