コンテンツにスキップ

EndUserロール管理

概要

EndUserロール管理APIは、RBAC(Role-Based Access Control)を実装するためのエンドポイントを提供します。ロールの定義、エンドユーザーやグループへの割り当て、権限の管理が可能です。

エンドポイント一覧

メソッドエンドポイント説明
GET/api/admin/rolesロール一覧取得
GET/api/admin/roles/:idロール詳細取得
POST/api/admin/rolesロール作成
PUT/api/admin/roles/:idロール更新
DELETE/api/admin/roles/:idロール削除
GET/api/admin/users/:id/rolesユーザーのロール一覧取得
POST/api/admin/users/:id/rolesユーザーにロール割り当て
DELETE/api/admin/users/:id/roles/:roleIdユーザーからロール削除

ロール一覧取得

テナント内のロール一覧を取得します。

エンドポイント

GET /api/admin/roles

クエリパラメータ

パラメータ必須説明
limitinteger-取得件数(デフォルト: 20、最大: 100)
cursorstring-ページネーションカーソル
searchstring-名前で検索
typestring-ロールタイプでフィルタ(system, custom

リクエスト例

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

レスポンス例

{
"items": [
{
"id": "role_admin",
"name": "admin",
"display_name": "管理者",
"description": "テナント管理者ロール",
"type": "system",
"permissions": ["users:*", "clients:*", "settings:*"],
"user_count": 5,
"created_at": 1705881600,
"updated_at": 1705881600
},
{
"id": "role_editor",
"name": "editor",
"display_name": "編集者",
"description": "コンテンツ編集権限",
"type": "custom",
"permissions": ["content:read", "content:write"],
"user_count": 20,
"created_at": 1705968000,
"updated_at": 1706054400
}
],
"total": 10,
"cursor": null
}

ロール詳細取得

指定されたロールの詳細情報を取得します。

エンドポイント

GET /api/admin/roles/:id

パスパラメータ

パラメータ必須説明
idstringロールID

リクエスト例

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

レスポンス例

{
"id": "role_editor",
"name": "editor",
"display_name": "編集者",
"description": "コンテンツ編集権限を持つロール",
"type": "custom",
"permissions": [
"content:read",
"content:write",
"content:delete",
"media:read",
"media:upload"
],
"inherits_from": ["role_viewer"],
"user_count": 20,
"metadata": {
"department": "Marketing"
},
"created_at": 1705968000,
"updated_at": 1706054400
}

ロール作成

新しいロールを作成します。

エンドポイント

POST /api/admin/roles

リクエストボディ

フィールド必須説明
namestringロール名(英数字、ハイフン、アンダースコア)
display_namestring表示名
descriptionstring-説明
permissionsstring[]権限リスト
inherits_fromstring[]-継承元ロールID
metadataobject-カスタムメタデータ

リクエスト例

Terminal window
curl -X POST "https://{tenant-domain}/api/admin/roles" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"name": "content_manager",
"display_name": "コンテンツマネージャー",
"description": "コンテンツの管理権限",
"permissions": [
"content:read",
"content:write",
"content:delete",
"content:publish"
],
"inherits_from": ["role_viewer"]
}'

レスポンス例

{
"id": "role_content_manager",
"name": "content_manager",
"display_name": "コンテンツマネージャー",
"type": "custom",
"permissions": [
"content:read",
"content:write",
"content:delete",
"content:publish"
],
"inherits_from": ["role_viewer"],
"created_at": 1706140800
}

ロール更新

既存のロール設定を更新します。

エンドポイント

PUT /api/admin/roles/:id

リクエスト例

Terminal window
curl -X PUT "https://{tenant-domain}/api/admin/roles/role_editor" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"display_name": "上級編集者",
"permissions": [
"content:read",
"content:write",
"content:delete",
"content:publish",
"content:archive"
]
}'

ロール削除

ロールを削除します。

エンドポイント

DELETE /api/admin/roles/:id

リクエスト例

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

レスポンス

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


ユーザーのロール一覧取得

指定されたユーザーに割り当てられているロール一覧を取得します。

エンドポイント

GET /api/admin/users/:id/roles

パスパラメータ

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

リクエスト例

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

レスポンス例

{
"items": [
{
"id": "role_editor",
"name": "editor",
"display_name": "編集者",
"assigned_at": 1705968000,
"assigned_by": "usr_admin001",
"scope": {
"type": "global"
}
},
{
"id": "role_org_admin",
"name": "org_admin",
"display_name": "組織管理者",
"assigned_at": 1706054400,
"assigned_by": "usr_admin001",
"scope": {
"type": "organization",
"organization_id": "org_abc123",
"organization_name": "Engineering"
}
}
]
}

ユーザーにロール割り当て

ユーザーにロールを割り当てます。

エンドポイント

POST /api/admin/users/:id/roles

パスパラメータ

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

リクエストボディ

フィールド必須説明
role_idstringロールID
scopeobject-スコープ(組織限定の場合)

リクエスト例(グローバルスコープ)

Terminal window
curl -X POST "https://{tenant-domain}/api/admin/users/usr_abc123/roles" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"role_id": "role_editor"
}'

リクエスト例(組織スコープ)

Terminal window
curl -X POST "https://{tenant-domain}/api/admin/users/usr_abc123/roles" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"role_id": "role_org_admin",
"scope": {
"type": "organization",
"organization_id": "org_abc123"
}
}'

レスポンス例

{
"user_id": "usr_abc123",
"role_id": "role_editor",
"assigned_at": 1706140800,
"assigned_by": "usr_admin001"
}

ユーザーからロール削除

ユーザーからロールの割り当てを解除します。

エンドポイント

DELETE /api/admin/users/:id/roles/:roleId

パスパラメータ

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

クエリパラメータ

パラメータ必須説明
organization_idstring-組織スコープの場合、組織ID

リクエスト例

Terminal window
curl -X DELETE "https://{tenant-domain}/api/admin/users/usr_abc123/roles/role_editor" \
-H "Authorization: Bearer {token}"

レスポンス

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


権限の書式

権限は resource:action の形式で指定します。

ワイルドカード

  • users:* - usersリソースに対するすべてのアクション
  • *:read - すべてのリソースに対する読み取り
  • *:* - すべての権限

一般的な権限例

権限説明
users:readユーザー情報の読み取り
users:writeユーザーの作成・更新
users:deleteユーザーの削除
clients:readクライアント情報の読み取り
clients:writeクライアントの作成・更新
settings:read設定の読み取り
settings:write設定の変更
audit:read監査ログの読み取り