Adminユーザー管理
概要
AdminユーザーはEndUserとは独立したデータベースで管理されます。このAPIは管理コンソールにアクセスするAdminユーザーの作成、更新、停止、ロール割り当てなどを提供します。
必要権限
| 操作 | 必要権限 |
|---|---|
| 読み取り | admin:admin_users:read |
| 書き込み | admin:admin_users:write |
| 削除 | admin:admin_users:delete |
エンドポイント一覧
| メソッド | エンドポイント | 説明 |
|---|---|---|
| GET | /api/admin/admins | Adminユーザー一覧取得 |
| GET | /api/admin/admins/:id | Adminユーザー詳細取得 |
| POST | /api/admin/admins | Adminユーザー作成 |
| PATCH | /api/admin/admins/:id | Adminユーザー更新 |
| DELETE | /api/admin/admins/:id | Adminユーザー削除 |
| POST | /api/admin/admins/:id/suspend | Adminユーザー停止 |
| POST | /api/admin/admins/:id/activate | Adminユーザー有効化 |
| POST | /api/admin/admins/:id/unlock | Adminユーザーロック解除 |
| POST | /api/admin/admins/:id/roles | ロール割り当て |
| DELETE | /api/admin/admins/:id/roles/:roleId | ロール削除 |
Adminユーザー一覧取得
Adminユーザーの一覧を取得します。
エンドポイント
GET /api/admin/admins
クエリパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
page | integer | - | ページ番号(デフォルト: 1) |
limit | integer | - | 取得件数(デフォルト: 50、最大: 100) |
search | string | - | メールまたは名前で検索 |
status | string | - | ステータスでフィルタ(active, suspended, locked) |
mfa_enabled | boolean | - | MFA有効フィルタ |
リクエスト例
curl -X GET "https://{tenant-domain}/api/admin/admins?status=active&limit=20" \ -H "Authorization: Bearer {token}"レスポンス例
{ "items": [ { "id": "admin_abc123", "name": "管理者", "status": "active", "mfa_enabled": true, "roles": [ { "id": "role_super_admin", "name": "super_admin", "display_name": "スーパー管理者" } ], "last_login_at": 1706140800000, "created_at": 1705881600000 } ], "total": 5, "page": 1, "limit": 20, "totalPages": 1}Adminユーザー詳細取得
指定されたAdminユーザーの詳細情報を取得します。
エンドポイント
GET /api/admin/admins/:id
パスパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
id | string | ○ | AdminユーザーID |
リクエスト例
curl -X GET "https://{tenant-domain}/api/admin/admins/admin_abc123" \ -H "Authorization: Bearer {token}"レスポンス例
{ "id": "admin_abc123", "name": "管理者", "status": "active", "mfa_enabled": true, "mfa_method": "totp", "roles": [ { "id": "role_super_admin", "name": "super_admin", "display_name": "スーパー管理者", "assigned_at": 1705881600000, "expires_at": null } ], "permissions": [ "admin:admin_users:read", "admin:admin_users:write", "admin:admin_roles:read", "admin:admin_roles:write" ], "last_login_at": 1706140800000, "login_count": 150, "failed_login_count": 0, "locked_at": null, "created_at": 1705881600000, "updated_at": 1706140800000}Adminユーザー作成
新しいAdminユーザーを作成します。
エンドポイント
POST /api/admin/admins
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
email | string | ○ | メールアドレス |
name | string | ○ | 表示名 |
password | string | ○ | パスワード |
リクエスト例
curl -X POST "https://{tenant-domain}/api/admin/admins" \ -H "Authorization: Bearer {token}" \ -H "Content-Type: application/json" \ -d '{ "email": "[email protected]", "name": "新規管理者", "password": "SecurePassword123!" }'レスポンス例
{ "id": "admin_xyz789", "name": "新規管理者", "status": "active", "mfa_enabled": false, "created_at": 1706227200000}Adminユーザー更新
既存のAdminユーザーを更新します。
エンドポイント
PATCH /api/admin/admins/:id
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
name | string | - | 表示名 |
email | string | - | メールアドレス |
is_active | boolean | - | 有効/無効 |
リクエスト例
curl -X PATCH "https://{tenant-domain}/api/admin/admins/admin_xyz789" \ -H "Authorization: Bearer {token}" \ -H "Content-Type: application/json" \ -d '{ "name": "更新後の名前", "email": "[email protected]" }'レスポンス例
{ "id": "admin_xyz789", "name": "更新後の名前", "status": "active", "updated_at": 1706313600000}Adminユーザー削除
Adminユーザーを削除します。
エンドポイント
DELETE /api/admin/admins/:id
リクエスト例
curl -X DELETE "https://{tenant-domain}/api/admin/admins/admin_xyz789" \ -H "Authorization: Bearer {token}"レスポンス例
{ "deleted": true, "id": "admin_xyz789"}Adminユーザー停止
Adminユーザーを停止状態にします。
エンドポイント
POST /api/admin/admins/:id/suspend
リクエスト例
curl -X POST "https://{tenant-domain}/api/admin/admins/admin_xyz789/suspend" \ -H "Authorization: Bearer {token}"レスポンス例
{ "id": "admin_xyz789", "status": "suspended", "suspended_at": 1706400000000}Adminユーザー有効化
停止中のAdminユーザーを有効化します。
エンドポイント
POST /api/admin/admins/:id/activate
リクエスト例
curl -X POST "https://{tenant-domain}/api/admin/admins/admin_xyz789/activate" \ -H "Authorization: Bearer {token}"レスポンス例
{ "id": "admin_xyz789", "status": "active", "activated_at": 1706486400000}Adminユーザーロック解除
ロックされたAdminユーザーを解除します。
エンドポイント
POST /api/admin/admins/:id/unlock
リクエスト例
curl -X POST "https://{tenant-domain}/api/admin/admins/admin_xyz789/unlock" \ -H "Authorization: Bearer {token}"レスポンス例
{ "id": "admin_xyz789", "status": "active", "unlocked_at": 1706572800000}ロール割り当て
Adminユーザーにロールを割り当てます。
エンドポイント
POST /api/admin/admins/:id/roles
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
role_id | string | ○ | ロールID |
expires_at | integer | - | 有効期限(Unixタイムスタンプ、ミリ秒) |
リクエスト例
curl -X POST "https://{tenant-domain}/api/admin/admins/admin_xyz789/roles" \ -H "Authorization: Bearer {token}" \ -H "Content-Type: application/json" \ -d '{ "role_id": "role_editor", "expires_at": 1735689600000 }'レスポンス例
{ "admin_user_id": "admin_xyz789", "role_id": "role_editor", "assigned_at": 1706659200000, "expires_at": 1735689600000}ロール削除
Adminユーザーからロールを削除します。
エンドポイント
DELETE /api/admin/admins/:id/roles/:roleId
パスパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
id | string | ○ | AdminユーザーID |
roleId | string | ○ | ロールID |
リクエスト例
curl -X DELETE "https://{tenant-domain}/api/admin/admins/admin_xyz789/roles/role_editor" \ -H "Authorization: Bearer {token}"レスポンス例
{ "removed": true, "admin_user_id": "admin_xyz789", "role_id": "role_editor"}ユーザーステータス
| ステータス | 説明 |
|---|---|
active | 有効(ログイン可能) |
suspended | 停止(管理者により停止) |
locked | ロック(ログイン失敗回数超過) |
監査ログ
Adminユーザー管理の操作は自動的にadmin_audit_logテーブルに記録されます。操作前後の差分(before/after)も保存されます。