コンテンツにスキップ

EndUserセッション管理

概要

EndUserセッション管理APIは、エンドユーザーのアクティブセッションを管理するためのエンドポイントを提供します。セッションの一覧取得、個別またはユーザー単位での失効操作が可能です。

エンドポイント一覧

メソッドエンドポイント説明
GET/api/admin/sessionsセッション一覧取得
GET/api/admin/sessions/:idセッション詳細取得
DELETE/api/admin/sessions/:idセッション失効
POST/api/admin/users/:id/logoutユーザーの全セッション失効
POST/api/admin/sessions/revoke-all全セッション失効

セッション一覧取得

テナント内のアクティブセッション一覧を取得します。

エンドポイント

GET /api/admin/sessions

クエリパラメータ

パラメータ必須説明
limitinteger-取得件数(デフォルト: 20、最大: 100)
cursorstring-ページネーションカーソル
user_idstring-特定ユーザーのセッションのみ
client_idstring-特定クライアントのセッションのみ
active_onlyboolean-アクティブセッションのみ(デフォルト: true)

リクエスト例

Terminal window
curl -X GET "https://{tenant-domain}/api/admin/sessions?user_id=usr_abc123" \
-H "Authorization: Bearer {token}"

レスポンス例

{
"items": [
{
"id": "sess_xyz789",
"user_id": "usr_abc123",
"client_id": "client_def456",
"client_name": "My Web App",
"ip_address": "203.0.113.1",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)...",
"device_info": {
"type": "desktop",
"os": "macOS",
"browser": "Chrome"
},
"location": {
"country": "JP",
"city": "Tokyo"
},
"created_at": 1705881600,
"last_activity_at": 1706054400,
"expires_at": 1706486400
}
],
"total": 3,
"cursor": null
}

セッション詳細取得

指定されたセッションの詳細情報を取得します。

エンドポイント

GET /api/admin/sessions/:id

パスパラメータ

パラメータ必須説明
idstringセッションID

リクエスト例

Terminal window
curl -X GET "https://{tenant-domain}/api/admin/sessions/sess_xyz789" \
-H "Authorization: Bearer {token}"

レスポンス例

{
"id": "sess_xyz789",
"user_id": "usr_abc123",
"user_email": "[email protected]",
"user_name": "山田 太郎",
"client_id": "client_def456",
"client_name": "My Web App",
"ip_address": "203.0.113.1",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)...",
"device_info": {
"type": "desktop",
"os": "macOS",
"os_version": "10.15.7",
"browser": "Chrome",
"browser_version": "120.0.0"
},
"location": {
"country": "JP",
"country_name": "Japan",
"region": "Tokyo",
"city": "Tokyo",
"latitude": 35.6762,
"longitude": 139.6503
},
"auth_method": "password",
"mfa_verified": true,
"scopes": ["openid", "profile", "email"],
"created_at": 1705881600,
"last_activity_at": 1706054400,
"expires_at": 1706486400
}

セッション失効

指定されたセッションを失効させます。

エンドポイント

DELETE /api/admin/sessions/:id

パスパラメータ

パラメータ必須説明
idstringセッションID

リクエスト例

Terminal window
curl -X DELETE "https://{tenant-domain}/api/admin/sessions/sess_xyz789" \
-H "Authorization: Bearer {token}"

レスポンス

ステータスコード 204 No Content(ボディなし)


ユーザーの全セッション失効

指定されたユーザーのすべてのアクティブセッションを失効させます。強制ログアウトに使用します。

エンドポイント

POST /api/admin/users/:id/logout

パスパラメータ

パラメータ必須説明
idstringユーザーID

リクエストボディ

フィールド必須説明
reasonstring-ログアウト理由

リクエスト例

Terminal window
curl -X POST "https://{tenant-domain}/api/admin/users/usr_abc123/logout" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"reason": "パスワード変更に伴う強制ログアウト"
}'

レスポンス例

{
"user_id": "usr_abc123",
"revoked_sessions": 3,
"revoked_at": 1706140800
}

全セッション失効

テナント内のすべてのアクティブセッションを失効させます。緊急時のセキュリティ対応などに使用します。

エンドポイント

POST /api/admin/sessions/revoke-all

リクエストボディ

フィールド必須説明
reasonstring失効理由(監査ログ用)
exclude_adminboolean-管理者セッションを除外(デフォルト: false)

リクエスト例

Terminal window
curl -X POST "https://{tenant-domain}/api/admin/sessions/revoke-all" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"reason": "セキュリティインシデント対応",
"exclude_admin": true
}'

レスポンス例

{
"revoked_sessions": 1250,
"revoked_at": 1706227200,
"excluded_admin_sessions": 5
}

セッションの有効期限

セッションの有効期限はテナント設定で管理されます。デフォルト値:

設定デフォルト値説明
session_lifetime86400秒(24時間)セッションの最大有効期間
idle_timeout3600秒(1時間)アイドルタイムアウト
absolute_timeout604800秒(7日)絶対タイムアウト

これらの設定は設定管理APIで変更できます。