Admin監査ログ
概要
Admin監査ログAPIは、管理コンソールで行われたすべての操作を記録した監査ログへのアクセスを提供します。操作前後の変更内容(before/after)も記録され、詳細な監査が可能です。
必要権限
| 操作 | 必要権限 |
|---|---|
| 読み取り | admin:admin_audit:read |
エンドポイント一覧
| メソッド | エンドポイント | 説明 |
|---|---|---|
| GET | /api/admin/admin-audit-log | 監査ログ一覧取得 |
| GET | /api/admin/admin-audit-log/:id | 監査ログ詳細取得 |
| GET | /api/admin/admin-audit-log/actions/list | アクション種別一覧 |
| GET | /api/admin/admin-audit-log/resource-types/list | リソース種別一覧 |
| GET | /api/admin/admin-audit-log/stats/summary | 統計サマリー取得 |
| GET | /api/admin/admin-audit-log/user/:userId | 特定ユーザーのログ取得 |
監査ログ一覧取得
監査ログの一覧を取得します。
エンドポイント
GET /api/admin/admin-audit-log
クエリパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
page | integer | - | ページ番号(デフォルト: 1) |
limit | integer | - | 取得件数(デフォルト: 50、最大: 100) |
admin_user_id | string | - | Adminユーザーでフィルタ |
action | string | - | アクションでフィルタ |
resource_type | string | - | リソース種別でフィルタ |
result | string | - | 結果でフィルタ(success, failure) |
severity | string | - | 重要度でフィルタ(debug, info, warn, error, critical) |
start_date | string | - | 開始日(ISO 8601形式) |
end_date | string | - | 終了日(ISO 8601形式) |
リクエスト例
curl -X GET "https://{tenant-domain}/api/admin/admin-audit-log?action=admin.user.create&limit=20" \ -H "Authorization: Bearer {token}"レスポンス例
{ "items": [ { "id": "log_abc123", "tenant_id": "default", "admin_user_id": "admin_xyz789", "action": "admin.user.create", "resource_type": "admin_user", "resource_id": "admin_new001", "result": "success", "severity": "info", "ip_address": "192.168.1.100", "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)...", "request_id": "req_def456", "before": null, "after": { "name": "新規管理者" }, "metadata": {}, "created_at": 1706140800000 } ], "total": 100, "page": 1, "limit": 50, "totalPages": 2}監査ログ詳細取得
指定された監査ログの詳細情報を取得します。
エンドポイント
GET /api/admin/admin-audit-log/:id
パスパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
id | string | ○ | 監査ログID |
リクエスト例
curl -X GET "https://{tenant-domain}/api/admin/admin-audit-log/log_abc123" \ -H "Authorization: Bearer {token}"レスポンス例
{ "id": "log_abc123", "tenant_id": "default", "admin_user_id": "admin_xyz789", "admin_name": "管理者", "action": "admin.user.update", "action_description": "Adminユーザーを更新しました", "resource_type": "admin_user", "resource_id": "admin_target001", "result": "success", "severity": "info", "ip_address": "192.168.1.100", "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)...", "request_id": "req_def456", "before": { "name": "旧名前", }, "after": { "name": "新名前", }, "changes": [ { "field": "name", "old_value": "旧名前", "new_value": "新名前" }, { "field": "email", } ], "metadata": { "session_id": "sess_abc123" }, "created_at": 1706140800000}アクション種別一覧
利用可能なアクション種別の一覧を取得します。
エンドポイント
GET /api/admin/admin-audit-log/actions/list
リクエスト例
curl -X GET "https://{tenant-domain}/api/admin/admin-audit-log/actions/list" \ -H "Authorization: Bearer {token}"レスポンス例
{ "items": [ { "key": "admin.user.create", "description": "Adminユーザー作成" }, { "key": "admin.user.update", "description": "Adminユーザー更新" }, { "key": "admin.user.delete", "description": "Adminユーザー削除" }, { "key": "admin.user.suspend", "description": "Adminユーザー停止" }, { "key": "admin.user.activate", "description": "Adminユーザー有効化" }, { "key": "admin.user.unlock", "description": "Adminユーザーロック解除" }, { "key": "admin.role.create", "description": "Adminロール作成" }, { "key": "admin.role.update", "description": "Adminロール更新" }, { "key": "admin.role.delete", "description": "Adminロール削除" }, { "key": "admin.role.assign", "description": "ロール割り当て" }, { "key": "admin.role.unassign", "description": "ロール解除" }, { "key": "admin.ip_allowlist.create", "description": "IP許可エントリ追加" }, { "key": "admin.ip_allowlist.update", "description": "IP許可エントリ更新" }, { "key": "admin.ip_allowlist.delete", "description": "IP許可エントリ削除" }, { "key": "admin.login", "description": "管理コンソールログイン" }, { "key": "admin.logout", "description": "管理コンソールログアウト" }, { "key": "admin.login_failed", "description": "ログイン失敗" } ], "total": 17}リソース種別一覧
利用可能なリソース種別の一覧を取得します。
エンドポイント
GET /api/admin/admin-audit-log/resource-types/list
リクエスト例
curl -X GET "https://{tenant-domain}/api/admin/admin-audit-log/resource-types/list" \ -H "Authorization: Bearer {token}"レスポンス例
{ "items": [ { "key": "admin_user", "description": "Adminユーザー" }, { "key": "admin_role", "description": "Adminロール" }, { "key": "ip_allowlist", "description": "IP許可リスト" }, { "key": "session", "description": "セッション" } ], "total": 4}統計サマリー取得
監査ログの統計サマリーを取得します。
エンドポイント
GET /api/admin/admin-audit-log/stats/summary
クエリパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
days | integer | - | 統計対象日数(デフォルト: 7) |
リクエスト例
curl -X GET "https://{tenant-domain}/api/admin/admin-audit-log/stats/summary?days=30" \ -H "Authorization: Bearer {token}"レスポンス例
{ "total_entries": 1234, "recent_entries": 89, "time_range_days": 30, "result_breakdown": { "success": 85, "failure": 4 }, "severity_breakdown": { "debug": 0, "info": 70, "warn": 15, "error": 4, "critical": 0 }, "top_actions": [ { "action": "admin.user.read", "count": 45 }, { "action": "admin.role.update", "count": 20 }, { "action": "admin.login", "count": 15 } ], "most_active_admins": [ { "admin_user_id": "admin_abc123", "action_count": 50 }, { "admin_user_id": "admin_def456", "action_count": 30 } ], "daily_activity": [ { "date": "2024-01-22", "count": 45 }, { "date": "2024-01-21", "count": 38 } ]}特定ユーザーのログ取得
指定したAdminユーザーの監査ログを取得します。
エンドポイント
GET /api/admin/admin-audit-log/user/:userId
パスパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
userId | string | ○ | AdminユーザーID |
クエリパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
page | integer | - | ページ番号(デフォルト: 1) |
limit | integer | - | 取得件数(デフォルト: 50) |
start_date | string | - | 開始日(ISO 8601形式) |
end_date | string | - | 終了日(ISO 8601形式) |
リクエスト例
curl -X GET "https://{tenant-domain}/api/admin/admin-audit-log/user/admin_abc123?limit=20" \ -H "Authorization: Bearer {token}"レスポンス例
{ "admin_user": { "id": "admin_abc123", "name": "管理者" }, "items": [ { "id": "log_xyz789", "action": "admin.user.update", "resource_type": "admin_user", "resource_id": "admin_target001", "result": "success", "severity": "info", "ip_address": "192.168.1.100", "created_at": 1706140800000 } ], "total": 150, "page": 1, "limit": 20, "totalPages": 8}重要度レベル
| レベル | 説明 | 用途 |
|---|---|---|
debug | デバッグ | 開発時の詳細ログ |
info | 情報 | 通常の操作(デフォルト) |
warn | 警告 | 注意が必要な操作 |
error | エラー | 操作失敗 |
critical | 重大 | セキュリティ関連の重大な事象 |
自動記録
Admin管理APIのすべての操作は自動的に監査ログに記録されます。記録される情報:
- 操作を行ったAdminユーザー
- 実行されたアクション
- 対象リソース
- 操作前後の状態(before/after)
- IPアドレス、ユーザーエージェント
- 操作の成功/失敗
- タイムスタンプ