このページでは、AppDynamics 機能のユーザ、グループ、およびロールを管理するために使用できるロール ベース アクセス コントロール(RBAC)API メソッドについて説明します。これらの操作により柔軟性が向上し、RBAC 管理による自動化が実現します。addUserToGroup および removeUserToGroup などのリレーションシップの設定がサポートされています。

サポート

  • RBAC API を使用するには、アカウントの所有者であるか、または administer user 権限を持っている必要があります。
  • SAML および LDAP ユーザの作成はサポートされていません。UI を使用して権限のみ作成できます。「テナントユーザの作成と管理」を参照してください。

ユーザの作成

これを使用して、現在のアカウントでユーザを作成できます。要求ペイロードでは、namesecurity_provider_typedisplayName、および password を指定する必要があります。ユーザ ID はサーバによって生成されます。

形式

POST /controller/api/rbac/v1/users

入力パラメータ

パラメータ名Parameter Type必須
name要求ペイロード
あり

security_provider_type

要求ペイロード"INTERNAL"あり

displayName

要求ペイロード
あり

password

要求ペイロード
あり

curl -H "Content-Type: application/vnd.appd.cntrl+json;v=1" -X POST -d '{"name": "user10", "security_provider_type": "INTERNAL", "displayName": "user10", "password": "welcome"}' -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/users 

Response status code 200 :
{
  "id": 10,
  "name": "user10",
  "displayName": "user10",
  "security_provider_type": "INTERNAL"
}

ID でユーザを取得する

これを使用して、現在のアカウントで userId を使用して、関連するグループとロールの概要を含む完全なユーザ情報を取得できます。

フォーマット(Format)

GET /controller/api/rbac/v1/users/userId

curl -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/users/4 

Response status code 200 :
{
   "id": 4,
   "name": "user1", 
   "email": "user1@customer1.com", 
   "displayName": "user1", 
   "security_provider_type": "INTERNAL", 
   "roles": 
      [
        {"id": 17,"name": "Workflow Executor"}, 
        {"id": 18,"name": "DB Monitoring Administrator"}, 
        {"id": 19,"name": "DB Monitoring User"}, 
        {"id": 20,"name": "Analytics Administrator"}, 
        {"id": 21,"name": "Server Monitoring Administrator"}, 
        {"id": 22,"name": "Server Monitoring User"}, 
        {"id": 23,"name": "Universal Agent Administrator"}, 
        {"id": 24,"name": "Universal Agent User"}, 
        {"id": 13,"name": "Account Administrator"}, 
        {"id": 14,"name": "Administrator"},
        {"id": 15,"name": "User"}, 
        {"id": 16,"name": "Dashboard Viewer"} 
      ], 
   "groups": 
      [
        {"id": 1,"name": "group_01"} 
      ] 
}


名前でユーザを取得する

これを使用して、現在のアカウントで userName を使用して、関連するグループとロールの概要を含む完全なユーザ情報を取得できます。

フォーマット(Format)

GET /controller/api/rbac/v1/users/name/name

curl -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/users/name/user1

Response status code 200 :
{
   "id": 4,
   "name": "user1", 
   "email": "user1@customer1.com", 
   "displayName": "user1", 
   "security_provider_type": "INTERNAL", 
   "roles": 
      [
        {"id": 17,"name": "Workflow Executor"}, 
        {"id": 18,"name": "DB Monitoring Administrator"}, 
        {"id": 19,"name": "DB Monitoring User"}, 
        {"id": 20,"name": "Analytics Administrator"}, 
        {"id": 21,"name": "Server Monitoring Administrator"}, 
        {"id": 22,"name": "Server Monitoring User"}, 
        {"id": 23,"name": "Universal Agent Administrator"}, 
        {"id": 24,"name": "Universal Agent User"}, 
        {"id": 13,"name": "Account Administrator"}, 
        {"id": 14,"name": "Administrator"},
        {"id": 15,"name": "User"}, 
        {"id": 16,"name": "Dashboard Viewer"} 
      ], 
   "groups": 
      [
        {"id": 1,"name": "group_01"} 
      ]
  • この API は内部ユーザの取得のみをサポートし、SAML または LDAP はサポートしません。
  • SAML/LDAP ユーザを検索するには、オプションのパラメータ(securityProviderType) を含める必要があります。  

すべてのユーザの取得

これを使用して、現在のアカウント内のすべてのユーザのリストを取得できます。リストには、userIduserName などのユーザの概要が含まれています。

フォーマット(Format)

GET /controller/api/rbac/v1/users

curl -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/users

Response status code 200 :
{
   "users": 
      [
         {"id": 4,"name": "user1"},
         {"id": 10,"name": "user10"}
      ]
}

ユーザーの更新

これを使用して、現在のアカウントの userId でユーザを更新できます。ユーザオブジェクト自体のみが更新され、ロールやグループに対するリレーションシップは影響を受けません。

形式

PUT /controller/api/rbac/v1/users/userId

入力パラメータ

パラメータ名Parameter Type必須
id要求ペイロード
あり
name要求ペイロード
あり

displayName

要求ペイロード
あり

security_provider_type

要求ペイロード"INTERNAL"あり

curl -H "Content-Type: application/vnd.appd.cntrl+json;v=1" -X PUT -d '{"id": 11,"name": "updated_user9","displayName": "user9","security_provider_type": "INTERNAL"}' -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/users/11 

Response status code 200 :
{  
   "id": 11, 
   "name": "updated_user9", 
   "displayName": "user9", 
   "security_provider_type": "INTERNAL" 
}

ユーザの削除

これを使用して、現在のアカウントの userId でユーザを削除できます。

フォーマット(Format)

DELETE /controller/api/rbac/v1/users/userId

curl -X DELETE -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/users/11

Response status code 200 :

グループの作成

これを使用して、現在のアカウントでグループを作成できます。groupId はサーバによって生成されます。

形式

POST /controller/api/rbac/v1/groups 

入力パラメータ

パラメータ名Parameter Type必須
name要求ペイロード
あり
description要求ペイロード
なし

security_provider_type

要求ペイロード"INTERNAL"対応

curl -H "Content-Type: application/vnd.appd.cntrl+json;v=1" -X POST -d '{"name": "group100","description": "new description", "security_provider_type": "INTERNAL"}' -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/groups

Response status code 200 :
{
   "id": 2,
   "name": "group100",
   "security_provider_type": "INTERNAL",
   "description": "new description"
}

ID でグループを取得する

これを使用して、現在のアカウントの groupId によって完全なグループ情報を取得できます。

フォーマット(Format)

GET /controller/api/rbac/v1/groups/groupId

curl -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/groups/1

Response status code 200 :
{
   "id": 1,
   "name": "group_03",
   "security_provider_type": "INTERNAL"
   "description": "",
   "roles": 
      [
         {"id": 19,"name": "DB Monitoring User"},
         {"id": 20,"name": "Analytics Administrator"},
         {"id": 21,"name": "Server Monitoring Administrator"},
         {"id": 22,"name": "Server Monitoring User"},
         {"id": 23,"name": "Universal Agent Administrator"},
         {"id": 13,"name": "Account Administrator"},
         {"id": 16,"name": "Dashboard Viewer"}
      ]
}

名前でグループを取得する

これを使用して、現在のアカウントの groupName によって完全なグループ情報を取得できます。

フォーマット(Format)

GET /controller/api/rbac/v1/groups/name/name

curl -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/groups/name/group_03

Response status code 200 :
{
   "id": 1,
   "name": "group_03",
   "security_provider_type": "INTERNAL"
   "description": "",
   "roles": 
      [
         {"id": 19,"name": "DB Monitoring User"},
         {"id": 20,"name": "Analytics Administrator"},
         {"id": 21,"name": "Server Monitoring Administrator"},
         {"id": 22,"name": "Server Monitoring User"},
         {"id": 23,"name": "Universal Agent Administrator"},
         {"id": 13,"name": "Account Administrator"},
         {"id": 16,"name": "Dashboard Viewer"}
      ]
}

すべてのグループを取得する

これを使用して、現在のアカウント内のすべてのグループを取得できます。これは、groupIdgroupName などのグループの概要のみを返します。

形式

GET /controller/api/rbac/v1/groups

 

curl -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/groups

Response status code 200 :
{
   "groups": 
      [
         {"id": 1,"name": "group_03"},
         {"id": 2,"name": "group100"}
      ]
}

グループの更新

これを使用して、現在のアカウントの groupId でグループを更新できます。グループ自体のみが更新され、ユーザとロールのリレーションシップは影響を受けません。

形式

PUT /controller/api/rbac/v1/groups/groupId

入力パラメータ

パラメータ名Parameter Type必須
id要求ペイロード
あり
name要求ペイロード
あり
description要求ペイロード
なし

security_provider_type

要求ペイロード"INTERNAL"あり

curl -H "Content-Type: application/vnd.appd.cntrl+json;v=1" -X PUT -d '{"id": 1, "name": "group2","description": "new description", "security_provider_type": "INTERNAL"}' -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/groups/1

Response status code 200 :
{
   "id": 1,
   "name": "group2",
   "security_provider_type": "INTERNAL",
   "description": "new description",
   "roles": 
      [
         {"id": 19,"name": "DB Monitoring User"},
         {"id": 20,"name": "Analytics Administrator"},
         {"id": 21,"name": "Server Monitoring Administrator"},
         {"id": 22,"name": "Server Monitoring User"},
         {"id": 23,"name": "Universal Agent Administrator"},
         {"id": 13,"name": "Account Administrator"},
         {"id": 16,"name": "Dashboard Viewer"}
      ]
}

グループを削除する 

これを使用して、現在のアカウントの groupId でグループを削除できます。

フォーマット(Format)

DELETE /controller/api/rbac/v1/groups/groupId

curl -X DELETE -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/groups/1


Response status code 200 :

ユーザをグループに追加する

これを使用して、userId および groupId によってユーザをグループに追加できます。

フォーマット(Format)

PUT /controller/api/rbac/v1/groups/groupId/users/userId

curl -H "Content-Type: application/vnd.appd.cntrl+json;v=1" -X PUT -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/groups/2/users/10


Response status code 200 :

ユーザをグループから削除する

これを使用して、userId および groupId によってユーザをグループから削除できます。

フォーマット(Format)

DELETE /controller/api/rbac/v1/groups/groupId/users/userId 

curl -X DELETE -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/groups/2/users/10
 
 
Response status code 200 :

ロールを作成する

これを使用して、現在のアカウントでロールを作成できます。ID はサーバによって生成されます。

形式

POST /controller/api/rbac/v1/roles

入力パラメータ

パラメータ名Parameter Type必須
name要求ペイロード
あり
description
要求ペイロード
なし
権限要求ペイロード
なし

curl -X POST /controller/api/rbac/v1/roles \
-H 'Content-Type: application/vnd.appd.cntrl+json;v=1' \
-d '{
 "name": "SampleRole2",
  "permissions": [
   {
     "entityType": "APPLICATION",
     "entityId": 24,
     "action": "CONFIG_ACTIONS"
   },
   {
     "entityType": "APPLICATION",
     "entityId": 24,
     "action": "CONFIG_BASELINES"
   },
   {
     "entityType": "APPLICATION",
     "entityId": 24,
     "action": "CONFIG_BUSINESS_TRANSACTIONS"
   },
   {
     "entityType": "APPLICATION",
     "entityId": 24,
     "action": "CONFIG_ERROR_DETECTION"
   },
   {
     "entityType": "APPLICATION",
     "entityId": 24,
     "action": "CONFIG_EUM"
   },
   {
     "entityType": "APPLICATION",
     "entityId": 24,
     "action": "CONFIG_EVENT_REACTOR"
   },
   {
     "entityType": "APPLICATION",
     "entityId": 24,
     "action": "CONFIG_POLICIES"
   },
   {
     "entityType": "APPLICATION",
     "entityId": 24,
     "action": "CONFIG_TRANSACTION_DETECTION"
   },
   {
     "entityType": "APPLICATION",
     "entityId": 24,
     "action": "VIEW"
   }
 ]
}’
200 OK
{
  "id": 87,
  "name": "SampleRole2"
}

ロールをユーザへ追加する

これを使用して、roleId および userId によってロールをユーザに追加できます。

フォーマット(Format)

PUT /controller/api/rbac/v1/roles/roleId/users/userId

curl -H "Content-Type: application/vnd.appd.cntrl+json;v=1" -X PUT -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/roles/50/users/10


Response status code 200 :

ユーザからロールを削除する

これを使用して、roleId および userId によってユーザからロールを削除できます。

フォーマット(Format)

DELETE /controller/api/rbac/v1/roles/roleId/users/userId 

curl -X DELETE -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/roles/50/users/10

Response status code 200 :

ロールをグループに追加する

これを使用して、roleId および groupId によってロールをグループに追加できます。

フォーマット(Format)

PUT /controller/api/rbac/v1/roles/roleId/groups/groupId

curl -H "Content-Type: application/vnd.appd.cntrl+json;v=1" -X PUT -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/roles/50/groups/2


Response status code 200 :

グループからロールを削除する

これを使用して、roleId および groupId によってロールをグループから削除できます。

フォーマット(Format)

DELETE /controller/api/rbac/v1/roles/roleId/groups/groupId

curl -X DELETE -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/roles/50/groups/2

Response status code 200 :

ID でロールを取得する

これを使用して、現在のアカウントの roleId で完全なロール情報を取得します。これは role オブジェクトのみを返します。

形式

GET /controller/api/rbac/v1/roles/[roleId]?include-permissions=true

入力パラメータ

パラメータ名Parameter Type必須
id要求ペイロード
あり

include-permissions (>= v4.5.14)

要求ペイロード"true"なし

curl -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/roles/15?include-permissions=true


Response status code 200 :

{
 "id": 15,
 "name": "SampleRole",
 "permissions": [
   {
     "id": 2619,
     "entityType": "APPLICATION",
     "entityId": 27,
     "action": "CONFIG_ACTIONS"
   },
   {
     "id": 2621,
     "entityType": "APPLICATION",
     "entityId": 27,
     "action": "CONFIG_BASELINES"
   },
   {
     "id": 2620,
     "entityType": "APPLICATION",
     "entityId": 27,
     "action": "CONFIG_BUSINESS_TRANSACTIONS"
   },
   {
     "id": 2610,
     "entityType": "APPLICATION",
     "entityId": 27,
     "action": "CONFIG_ERROR_DETECTION"
   },
   {
     "id": 2615,
     "entityType": "APPLICATION",
     "entityId": 27,
     "action": "CONFIG_EUM"
   },
   {
     "id": 2618,
     "entityType": "APPLICATION",
     "entityId": 27,
     "action": "CONFIG_EVENT_REACTOR"
   },
   {
     "id": 2617,
     "entityType": "APPLICATION",
     "entityId": 27,
     "action": "CONFIG_POLICIES"
   },
   {
     "id": 2608,
     "entityType": "APPLICATION",
     "entityId": 27,
     "action": "CONFIG_TRANSACTION_DETECTION"
   },
   {
     "id": 2606,
     "entityType": "APPLICATION",
     "entityId": 27,
     "action": "VIEW"
   }
 ]
}

名前でロールを取得する

これを使用して、現在のアカウントの roleName で完全なロール情報を取得します。

形式

GET /controller/api/rbac/v1/roles/name/[RoleName]?include-permissions=true

入力パラメータ

パラメータ名Parameter Type必須
name要求ペイロード
あり

include-permissions (>= v4.5.14)

要求ペイロード"true"なし

curl -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/roles/name/SampleRole?include-permissions=true


Response status code 200 :

{
 "id": 15,
 "name": "SampleRole",
 "permissions": [
   {
     "id": 2619,
     "entityType": "APPLICATION",
     "entityId": 27,
     "action": "CONFIG_ACTIONS"
   },
   {
     "id": 2621,
     "entityType": "APPLICATION",
     "entityId": 27,
     "action": "CONFIG_BASELINES"
   },
   {
     "id": 2620,
     "entityType": "APPLICATION",
     "entityId": 27,
     "action": "CONFIG_BUSINESS_TRANSACTIONS"
   },
   {
     "id": 2610,
     "entityType": "APPLICATION",
     "entityId": 27,
     "action": "CONFIG_ERROR_DETECTION"
   },
   {
     "id": 2615,
     "entityType": "APPLICATION",
     "entityId": 27,
     "action": "CONFIG_EUM"
   },
   {
     "id": 2618,
     "entityType": "APPLICATION",
     "entityId": 27,
     "action": "CONFIG_EVENT_REACTOR"
   },
   {
     "id": 2617,
     "entityType": "APPLICATION",
     "entityId": 27,
     "action": "CONFIG_POLICIES"
   },
   {
     "id": 2608,
     "entityType": "APPLICATION",
     "entityId": 27,
     "action": "CONFIG_TRANSACTION_DETECTION"
   },
   {
     "id": 2606,
     "entityType": "APPLICATION",
     "entityId": 27,
     "action": "VIEW"
   }
 ]
}

すべてのロールを取得する

これを使用して、現在のアカウント内のすべてのロールを取得できます。これは、roleIdroleName などのロールの概要のみを返します。

フォーマット(Format)

GET /controller/api/rbac/v1/roles 

curl -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/roles

Response status code 200 :
{
   "roles": 
      [
         {"id": 13,"name": "Account Administrator"},
         {"id": 14,"name": "Administrator"},
         {"id": 20,"name": "Analytics Administrator"},
         {"id": 16,"name": "Dashboard Viewer"},
         {"id": 18,"name": "DB Monitoring Administrator"},
         {"id": 19,"name": "DB Monitoring User"},
         {"id": 21,"name": "Server Monitoring Administrator"},
         {"id": 22,"name": "Server Monitoring User"},
         {"id": 23,"name": "Universal Agent Administrator"},
         {"id": 24,"name": "Universal Agent User"},
         {"id": 15,"name": "User"},
         {"id": 17,"name": "Workflow Executor"}
      ]
}

ロールを更新する

これを使用して、現在のアカウントの roleId でロールを更新できます。これにより、role オブジェクト自体のみが更新され、ユーザおよびグループとの関係は影響を受けません。

この API を使用してロール内の権限を更新することはできません。name および description パラメータのみ更新できます。 

形式

PUT /controller/api/rbac/v1/roles/roleId

入力パラメータ

パラメータ名Parameter Type必須
id要求ペイロード
あり
name要求ペイロード
あり
description要求ペイロード
なし

curl -H "Content-Type: application/vnd.appd.cntrl+json;v=1" -X PUT -d '{"id": 49, "name": "role1","description": "new description" }' -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/roles/49

Response status code 200 :
{
   "id": 49,
   "name": "role1",
   "description": "new description"
}

ロールの削除

これを使用して、現在のアカウントでロールを削除できます。

フォーマット(Format)

DELETE /controller/api/rbac/v1/roles/roleId

curl -X DELETE -u user1@customer1 http://localhost:8080/controller/api/rbac/v1/roles/49


Response status code 200 :