본문으로 건너뛰기

세션 구성

세션 구성은 Logto 로그인 세션이 얼마나 오래 활성 상태로 유지되는지와 세션 관련 접근 정책이 어떻게 적용되는지를 테넌트 수준에서 제어합니다.

이 페이지에서는 다음 내용을 다룹니다:

  • 세션 TTL 구성
  • 앱별 최대 동시 인증된 디바이스 수

세션 TTL 구성

세션 TTL은 Logto OIDC 로그인 세션의 최대 수명을 결정합니다. 이는 테넌트 수준 설정입니다: 한 번 설정하면 해당 테넌트의 모든 앱과 인증 (Authentication) 플로우에 적용됩니다.

기본 동작

  • 기본적으로 세션 TTL은 14일입니다.
  • 사용자 지정 TTL이 설정되지 않은 경우, Logto는 이 기본 값을 계속 사용합니다.

Logto Console에서 구성하기

Console에서 세션 TTL을 다음 위치에서 구성할 수 있습니다:

Console > Tenant > Settings > 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 캐시 활성화를 참고하세요.

앱별 최대 동시 인증된 디바이스 수

앱별 최대 동시 인증된 디바이스 수는 각 사용자가 특정 앱에 대해 유지할 수 있는 활성 grant 수를 제한하는 앱 수준 제어입니다.

이는 애플리케이션의 customClientMetadatamaxAllowedGrants 필드를 통해 구성됩니다. 자세한 내용은 애플리케이션 데이터 구조를 참고하세요.

동작 방식

maxAllowedGrants가 설정되면, Logto는 매번 인가 (Authorization)가 성공할 때마다 현재 앱에 대한 사용자의 활성 grant를 평가합니다. 활성 grant 수가 제한을 초과하면, Logto는 가장 오래된 grant부터 먼저 취소합니다.

maxAllowedGrants가 설정되지 않은 경우, 동시성 제한이 없습니다.

Logto Console에서 구성하기

각 앱의 상세 페이지에서 다음 위치에서 이 값을 구성할 수 있습니다:

Console > Applications > Application details > Concurrent device limit

현재 앱에 대해 사용자별로 동시 활성 grant(디바이스) 최대 수를 설정하세요.

노트:

이 설정은 기계 간 (M2M) 앱, 보호된 앱, SAML 앱에서는 지원되지 않습니다.

Webhook으로 강제 해제 모니터링하기

Logto가 maxAllowedGrants를 적용하기 위해 사용자의 가장 오래된 grant를 취소할 때, Grant.LimitExceeded webhook 이벤트가 트리거되어, 지원 티켓을 통해 알게 되기 전에 디바이스가 로그아웃된 사실에 대응할 수 있습니다.

페이로드에는 사용자와 앱, 적용된 제한, 강제 해제 전 활성 grant 수, 취소된 grant ID가 포함됩니다. 전체 구조는 Grant.LimitExceeded payload를 참고하세요.

일반적인 사용 사례:

  • 사용자가 다른 디바이스에서 로그아웃되었음을 알리고, 어느 디바이스에서 발생했는지 안내합니다.
  • 디바이스 강제 해제 비율을 분석에 활용하여 설정된 제한이 너무 낮은지 판단합니다.
  • 단일 사용자에 대한 비정상적인 강제 해제 패턴을 자격 증명 공유 또는 계정 탈취 신호로 플래그합니다.

Console > Webhooks에서 구독하거나, Management API를 통해 hook을 생성할 수 있습니다. 구성 방법은 Webhooks를 참고하세요.

세션 사용자 세션 관리 사용자 인가된 앱 (grant) 관리

애플리케이션 데이터 구조: maxAllowedGrants

Webhooks 이벤트: 예외 hook 이벤트

Management API와 상호작용하기