Adminロール管理
概要
AdminロールAPIは、管理コンソールユーザー用のロールとパーミッションを管理します。ビルトインロールとカスタムロールの両方をサポートし、きめ細かなアクセス制御を実現します。
必要権限
| 操作 | 必要権限 |
|---|---|
| 読み取り | admin:admin_roles:read |
| 書き込み | admin:admin_roles:write |
エンドポイント一覧
| メソッド | エンドポイント | 説明 |
|---|---|---|
| GET | /api/admin/admin-roles | Adminロール一覧取得 |
| GET | /api/admin/admin-roles/:id | Adminロール詳細取得 |
| POST | /api/admin/admin-roles | カスタムロール作成 |
| PATCH | /api/admin/admin-roles/:id | ロール更新 |
| DELETE | /api/admin/admin-roles/:id | ロール削除(カスタムのみ) |
| GET | /api/admin/admin-roles/permissions/list | 利用可能なパーミッション一覧 |
Adminロール一覧取得
Adminロールの一覧を取得します。
エンドポイント
GET /api/admin/admin-roles
リクエスト例
curl -X GET "https://{tenant-domain}/api/admin/admin-roles" \ -H "Authorization: Bearer {token}"レスポンス例
{ "items": [ { "id": "role_super_admin", "name": "super_admin", "display_name": "スーパー管理者", "description": "全ての権限を持つ管理者", "is_system": true, "hierarchy_level": 100, "permissions": ["*"], "user_count": 2, "created_at": 1705881600000 }, { "id": "role_admin", "name": "admin", "display_name": "管理者", "description": "一般的な管理権限", "is_system": true, "hierarchy_level": 80, "permissions": [ "admin:admin_users:read", "admin:admin_users:write", "admin:admin_audit:read" ], "user_count": 5, "created_at": 1705881600000 }, { "id": "role_viewer", "name": "viewer", "display_name": "閲覧者", "description": "読み取り専用アクセス", "is_system": true, "hierarchy_level": 10, "permissions": [ "admin:admin_users:read", "admin:admin_audit:read" ], "user_count": 10, "created_at": 1705881600000 } ], "total": 3}Adminロール詳細取得
指定されたAdminロールの詳細情報を取得します。
エンドポイント
GET /api/admin/admin-roles/:id
パスパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
id | string | ○ | ロールID |
リクエスト例
curl -X GET "https://{tenant-domain}/api/admin/admin-roles/role_admin" \ -H "Authorization: Bearer {token}"レスポンス例
{ "id": "role_admin", "name": "admin", "display_name": "管理者", "description": "一般的な管理権限", "is_system": true, "hierarchy_level": 80, "permissions": [ "admin:admin_users:read", "admin:admin_users:write", "admin:admin_audit:read" ], "users": [ { "id": "admin_abc123", "name": "管理者1", "assigned_at": 1705881600000 }, { "id": "admin_def456", "name": "管理者2", "assigned_at": 1705968000000 } ], "user_count": 5, "created_at": 1705881600000, "updated_at": 1706140800000}カスタムロール作成
新しいカスタムロールを作成します。
エンドポイント
POST /api/admin/admin-roles
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
name | string | ○ | ロール名(英数字とアンダースコア) |
display_name | string | ○ | 表示名 |
description | string | - | 説明 |
permissions | string[] | ○ | パーミッションのリスト |
hierarchy_level | integer | - | 階層レベル(0-99、デフォルト: 50) |
リクエスト例
curl -X POST "https://{tenant-domain}/api/admin/admin-roles" \ -H "Authorization: Bearer {token}" \ -H "Content-Type: application/json" \ -d '{ "name": "audit_viewer", "display_name": "監査ログ閲覧者", "description": "監査ログの閲覧のみ可能", "permissions": ["admin:admin_audit:read"], "hierarchy_level": 20 }'レスポンス例
{ "id": "role_audit_viewer", "name": "audit_viewer", "display_name": "監査ログ閲覧者", "description": "監査ログの閲覧のみ可能", "is_system": false, "hierarchy_level": 20, "permissions": ["admin:admin_audit:read"], "user_count": 0, "created_at": 1706227200000}ロール更新
既存のロールを更新します。
エンドポイント
PATCH /api/admin/admin-roles/:id
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
display_name | string | - | 表示名 |
description | string | - | 説明 |
permissions | string[] | - | パーミッションのリスト |
hierarchy_level | integer | - | 階層レベル |
リクエスト例
curl -X PATCH "https://{tenant-domain}/api/admin/admin-roles/role_audit_viewer" \ -H "Authorization: Bearer {token}" \ -H "Content-Type: application/json" \ -d '{ "permissions": [ "admin:admin_audit:read", "admin:admin_users:read" ] }'レスポンス例
{ "id": "role_audit_viewer", "name": "audit_viewer", "display_name": "監査ログ閲覧者", "permissions": [ "admin:admin_audit:read", "admin:admin_users:read" ], "updated_at": 1706313600000}ロール削除
カスタムロールを削除します。
エンドポイント
DELETE /api/admin/admin-roles/:id
リクエスト例
curl -X DELETE "https://{tenant-domain}/api/admin/admin-roles/role_audit_viewer" \ -H "Authorization: Bearer {token}"レスポンス例
{ "deleted": true, "id": "role_audit_viewer"}利用可能なパーミッション一覧
Admin APIで使用可能なすべてのパーミッションを取得します。
エンドポイント
GET /api/admin/admin-roles/permissions/list
リクエスト例
curl -X GET "https://{tenant-domain}/api/admin/admin-roles/permissions/list" \ -H "Authorization: Bearer {token}"レスポンス例
{ "items": [ { "key": "admin:admin_users:read", "description": "Adminユーザーの閲覧" }, { "key": "admin:admin_users:write", "description": "Adminユーザーの作成・更新" }, { "key": "admin:admin_users:delete", "description": "Adminユーザーの削除" }, { "key": "admin:admin_roles:read", "description": "Adminロールの閲覧" }, { "key": "admin:admin_roles:write", "description": "Adminロールの作成・更新" }, { "key": "admin:admin_audit:read", "description": "Admin監査ログの閲覧" }, { "key": "admin:ip_allowlist:read", "description": "IP許可リストの閲覧" }, { "key": "admin:ip_allowlist:write", "description": "IP許可リストの管理" } ], "total": 8}パーミッション一覧
| パーミッション | 説明 |
|---|---|
admin:admin_users:read | Adminユーザーの閲覧 |
admin:admin_users:write | Adminユーザーの作成・更新 |
admin:admin_users:delete | Adminユーザーの削除 |
admin:admin_roles:read | Adminロールの閲覧 |
admin:admin_roles:write | Adminロールの作成・更新 |
admin:admin_audit:read | Admin監査ログの閲覧 |
admin:ip_allowlist:read | IP許可リストの閲覧 |
admin:ip_allowlist:write | IP許可リストの管理 |
* | すべての権限(スーパー管理者のみ) |
階層レベル
階層レベルは、ロールの優先度を決定します。高いレベルのロールを持つユーザーのみが、低いレベルのロールを管理できます。
| レベル | 用途 |
|---|---|
| 100 | スーパー管理者(システム予約) |
| 80 | 上位管理者 |
| 50 | 一般管理者(デフォルト) |
| 20 | 限定的な管理者 |
| 10 | 閲覧専用 |