사용자의 세션 목록 조회
GET /v1/users/{user_id}/sessions · 권한 sessions:read
사용자의 세션을 한 페이지에 최근 확인 순으로 최대 1,000개까지 나열합니다. 목록에는 limit, after, before, order가 없으며, list_metadata는 항상 null 값입니다. 기본적으로 활성 세션만 반환됩니다. include_inactive=true를 지정하면 만료되었거나 취소된 세션(보관 기간 내)도 함께 반환됩니다. 전체 IP 주소가 표시되며, 모든 조회는 관리 감사 로그에 기록됩니다. 쿠키, 토큰, 기기 지문은 절대 반환되지 않습니다.
조직 범위
조직 관리자를 위한 멤버 진단 보기를 만들려면 org_id를 전달하십시오. 이때 키에는 organizations:read 권한도 필요합니다. 이 권한이 없으면 아무것도 읽기 전에 403 insufficient_permissions로 요청이 실패합니다. 사용자가 해당 조직의 멤버가 아니면(invited, active, suspended 멤버십이 없음) 알 수 없는 사용자와 동일한 응답인 404 not_found로 요청이 실패합니다. 사용자가 멤버이면 해당 조직의 정책에 따라 열린 세션(org_id가 해당 조직인 세션)만 반환됩니다. 다른 조직의 맥락이나 어떤 조직에도 속하지 않은 사용자의 세션은 절대 반환되지 않습니다. 이 보기에서 ip_address와 user_agent는 null입니다. org_id가 없으면 응답은 변경되지 않습니다.
요청
| 매개변수 | 위치 | 필수 | 설명 |
|---|---|---|---|
user_id |
경로 | 예 | 사용자 ID이며, 접두사는 usr_입니다. |
include_inactive |
쿼리 | 아니요 | 만료되었거나 취소된 세션도 반환하려면 true로 설정합니다. 기본값은 false입니다. |
org_id |
쿼리 | 아니요 | 조직 ID이며, 접두사는 org_입니다. 보기를 해당 조직으로 제한합니다. 조직 범위를 참조하십시오. organizations:read가 필요합니다. |
응답
200 OK. 빈 필드는 null입니다.
{
"data": [
{
"id": "ses_0a1b2c3d4e5f6g7h8j9k0m1n2p",
"user_id": "usr_0a1b2c3d4e5f6g7h8j9k0m1n2p",
"status": "active",
"login_host": "login.example.com",
"auth_time": "2026-02-01T08:00:00Z",
"acr": "mfa",
"amr": ["pwd", "otp"],
"created_at": "2026-02-01T08:00:00Z",
"last_seen_at": "2026-02-01T09:15:00Z",
"idle_expires_at": "2026-02-08T09:15:00Z",
"absolute_expires_at": "2026-03-03T08:00:00Z",
"org_id": null,
"ip_address": "203.0.113.10",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_0)",
"revoked_at": null,
"revoke_reason": null
}
],
"list_metadata": {
"before": null,
"after": null
}
}
status: active, expired, revoked · acr: 1fa, mfa, phr · org_id: 세션이 속한 조직(있는 경우)입니다.
오류
모든 오류는 안정적인 code를 포함한 application/problem+json 본문으로 반환됩니다.
| HTTP | code |
발생 조건 |
|---|---|---|
| 422 | validation_failed |
include_inactive가 true 또는 false가 아닙니다. |
| 404 | not_found |
이 환경에 사용자가 없거나(또는 ID 형식이 잘못됨), org_id를 전달했는데 사용자가 해당 조직의 멤버가 아닙니다. |
| 401 | unauthenticated |
API 키가 없거나 잘못되었거나 취소되었습니다. |
| 403 | insufficient_permissions |
키에 sessions:read 권한이 없거나, org_id를 전달했는데 키에 organizations:read가 없습니다. |
| 429 | rate_limited |
요청 한도를 초과했습니다. Retry-After를 준수하십시오. |
| 503 | service_unavailable |
종속 서비스를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하십시오. |
예제
curl "https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p/sessions?include_inactive=true" \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
CLI: keenauth users sessions list usr_0a1b2c3d4e5f6g7h8j9k0m1n2p --include-inactive
개인정보
이 엔드포인트는 개인정보를 다룹니다: 세션. KeenAuth API의 개인정보에서 저장되는 항목, 보관 기간, 삭제 방법을 설명합니다. 어떤 필드에도 특수 범주의 개인정보(건강, 생체 정보, 종교, 정치적 견해, 성적 지향)를 보내지 마십시오.