コンテンツにスキップ

Adminユーザー管理

概要

AdminユーザーはEndUserとは独立したデータベースで管理されます。このAPIは管理コンソールにアクセスするAdminユーザーの作成、更新、停止、ロール割り当てなどを提供します。

必要権限

操作必要権限
読み取りadmin:admin_users:read
書き込みadmin:admin_users:write
削除admin:admin_users:delete

エンドポイント一覧

メソッドエンドポイント説明
GET/api/admin/adminsAdminユーザー一覧取得
GET/api/admin/admins/:idAdminユーザー詳細取得
POST/api/admin/adminsAdminユーザー作成
PATCH/api/admin/admins/:idAdminユーザー更新
DELETE/api/admin/admins/:idAdminユーザー削除
POST/api/admin/admins/:id/suspendAdminユーザー停止
POST/api/admin/admins/:id/activateAdminユーザー有効化
POST/api/admin/admins/:id/unlockAdminユーザーロック解除
POST/api/admin/admins/:id/rolesロール割り当て
DELETE/api/admin/admins/:id/roles/:roleIdロール削除

Adminユーザー一覧取得

Adminユーザーの一覧を取得します。

エンドポイント

GET /api/admin/admins

クエリパラメータ

パラメータ必須説明
pageinteger-ページ番号(デフォルト: 1)
limitinteger-取得件数(デフォルト: 50、最大: 100)
searchstring-メールまたは名前で検索
statusstring-ステータスでフィルタ(active, suspended, locked
mfa_enabledboolean-MFA有効フィルタ

リクエスト例

Terminal window
curl -X GET "https://{tenant-domain}/api/admin/admins?status=active&limit=20" \
-H "Authorization: Bearer {token}"

レスポンス例

{
"items": [
{
"id": "admin_abc123",
"email": "[email protected]",
"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

パスパラメータ

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

リクエスト例

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

レスポンス例

{
"id": "admin_abc123",
"email": "[email protected]",
"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

リクエストボディ

フィールド必須説明
emailstringメールアドレス
namestring表示名
passwordstringパスワード

リクエスト例

Terminal window
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",
"email": "[email protected]",
"name": "新規管理者",
"status": "active",
"mfa_enabled": false,
"created_at": 1706227200000
}

Adminユーザー更新

既存のAdminユーザーを更新します。

エンドポイント

PATCH /api/admin/admins/:id

リクエストボディ

フィールド必須説明
namestring-表示名
emailstring-メールアドレス
is_activeboolean-有効/無効

リクエスト例

Terminal window
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",
"email": "[email protected]",
"name": "更新後の名前",
"status": "active",
"updated_at": 1706313600000
}

Adminユーザー削除

Adminユーザーを削除します。

エンドポイント

DELETE /api/admin/admins/:id

リクエスト例

Terminal window
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

リクエスト例

Terminal window
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

リクエスト例

Terminal window
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

リクエスト例

Terminal window
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_idstringロールID
expires_atinteger-有効期限(Unixタイムスタンプ、ミリ秒)

リクエスト例

Terminal window
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

パスパラメータ

パラメータ必須説明
idstringAdminユーザーID
roleIdstringロールID

リクエスト例

Terminal window
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)も保存されます。