役割エンドポイント
役割は、管理者、スペシャリストまたはエンドユーザーが組織内のリソースに対して持つアクセスを定義します。 役割ベースのアクセス制御環境では、ユーザーアクセスプロビジョニングは、共通の責任とニーズによってグループ化されます。役割には特定の権限セットがあり、必要な表示または書き込みアクセスの範囲に応じて、組織のメンバーを 1 つ以上の役割に割り当てることができます。
属性ベースのアクセス制御 API の /roles
エンドポイントを使用すると、組織内の役割をプログラムで管理できます。
はじめに
このガイドで使用する API エンドポイントは、属性ベースのアクセス制御 API の一部です。 先に進む前に、はじめる前にを参照し、関連ドキュメントへのリンク、このドキュメントのサンプル API 呼び出しを読み取るためのガイドおよび任意の Experience Platform API を正常に呼び出すために必要なヘッダーに関する重要な情報を確認してください。
役割のリストの取得 :headding-anchor:list
/roles
エンドポイントに対してGETリクエストを行うことで、組織に属する既存のすべての役割をリストできます。
API 形式
GET /roles/
リクエスト
次のリクエストは、組織に属する役割のリストを取得します。
curl -X GET \
https://platform.adobe.io/data/foundation/access-control/administration/roles \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
応答
応答が成功すると、組織内の役割のリスト(それぞれの役割タイプ、権限セット、サブジェクト属性に関する情報を含む)が返されます。
{
"roles": [
{
"id": "3dfa045d-de58-4dfd-8ea9-e4e2c1b6d809",
"name": "Administrator Role",
"description": "Role for administrator type of responsibilities and access",
"roleType": "user-defined",
"permissionSets": [
"manage-datasets",
"manage-schemas"
],
"sandboxes": [
"prod"
],
"subjectAttributes": {
"labels": [
"core/S1"
]
},
"createdBy": "{CREATED_BY}",
"createdAt": 1648153201825,
"modifiedBy": "{MODIFIED_BY}",
"modifiedAt": 1648153201825,
"etag": null
}
],
"_page": {
"limit": 1,
"count": 1
},
"_links": {
"next": {
"href": "https://platform.adobe.io:443/data/foundation/access-control/administration/roles/3dfa045d-de58-4dfd-8ea9-e4e2c1b6d809",
"templated": true
},
"page": {
"href": "https://platform.adobe.io:443/data/foundation/access-control/administration/roles/3dfa045d-de58-4dfd-8ea9-e4e2c1b6d809",
"templated": true
},
"subjects": {
"href": "https://platform.adobe.io:443/data/foundation/access-control/administration/roles/3dfa045d-de58-4dfd-8ea9-e4e2c1b6d809",
"templated": true
}
}
}
id
name
description
roleType
user-defined
および system-defined
です。permissionSets
sandboxes
subjectAttributes
subjectAttributes.labels
役割の検索 :headding-anchor:lookup
個々のロールを検索するには、リクエストパスに対応するロールを含むGETリク roleId
ストを実行します。
API 形式
GET /roles/{ROLE_ID}
リクエスト
次のリクエストは、{ROLE_ID}
の情報を取得します。
curl -X GET \
https://platform.adobe.io/data/foundation/access-control/administration/roles/3dfa045d-de58-4dfd-8ea9-e4e2c1b6d809 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
応答
応答が成功すると、クエリされた役割 ID の詳細(役割タイプ、権限セット、サブジェクト属性に関する情報を含む)が返されます。
{
"id": "3dfa045d-de58-4dfd-8ea9-e4e2c1b6d809",
"name": "Administrator Role",
"description": "Role for administrator type of responsibilities and access",
"roleType": "user-defined",
"permissionSets": [
"manage-datasets",
"manage-schemas"
],
"sandboxes": [
"prod"
],
"subjectAttributes": {
"labels": [
"core/S1"
]
},
"createdBy": "{CREATED_BY}",
"createdAt": 1648153201825,
"modifiedBy": "{MODIFIED_BY}",
"modifiedAt": 1648153201825,
"etag": null
}
id
name
description
roleType
user-defined
および system-defined
です。permissionSets
sandboxes
subjectAttributes
subjectAttributes.labels
役割 ID による件名の検索
また、{ROLE_ID} を指定しながら /roles
エンドポイントに対してGETリクエストを行うことで、件名を取得できます。
API 形式
GET /roles/{ROLE_ID}/subjects
リクエスト
次のリクエストは、3dfa045d-de58-4dfd-8ea9-e4e2c1b6d809
に関連付けられた件名を取得します。
curl -X GET \
https://platform.adobe.io/data/foundation/access-control/administration/roles/3dfa045d-de58-4dfd-8ea9-e4e2c1b6d809/subjects \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
応答
応答が成功すると、対応するサブジェクト ID とサブジェクトタイプを含む、クエリされた役割 ID に関連付けられたサブジェクトが返されます。
{
"items": [
{
"roleId": "3dfa045d-de58-4dfd-8ea9-e4e2c1b6d809",
"subjectType": "user",
"subjectId": "03Z07HFQCCUF3TUHAX274206@AdobeID"
},
{
"roleId": "3dfa045d-de58-4dfd-8ea9-e4e2c1b6d809",
"subjectType": "user",
"subjectId": "PIRJ7WE5T3QT9Z4TCLVH86DE@AdobeID"
},
{
"roleId": "3dfa045d-de58-4dfd-8ea9-e4e2c1b6d809",
"subjectType": "user",
"subjectId": "WHPWE00MC26SHZ7AKBFG403D@AdobeID"
},
]
"_page": {
"limit": 0,
"count": 0
},
"_links": {
"self": {
"href": "/roles/{ROLE_ID}/subjects",
"templated": false,
"type": null,
"method": null
},
"page": {
"href": "/roles/{ROLE_ID}/subjects?limit={limit}&start={start}&orderBy={orderBy}&property={property}",
"templated": true,
"type": null,
"method": null
}
}
}
roleId
subjectType
subjectId
役割の作成 :headding-anchor:create
新しいロールを作成するには、ロールの名前、説明、ロールタイプの値を指定して、/roles
エンドポイントにPOSTリクエストを行います。
API 形式
POST /roles/
リクエスト
curl -X POST \
https://platform.adobe.io/data/foundation/access-control/administration/roles \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}'
-d'{
"name": "Administrator Role",
"description": "Role for administrator type of responsibilities and access",
"roleType": "user-defined"
}'
name
description
roleType
user-defined
および system-defined
です。応答
応答が成功すると、新しく作成された役割、対応する役割 ID、役割のタイプ、権限セットおよびサブジェクト属性に関する情報が返されます。
{
"id": "3dfa045d-de58-4dfd-8ea9-e4e2c1b6d809",
"name": "Administrator Role",
"description": "Role for administrator type of responsibilities and access",
"roleType": "user-defined",
"permissionSets": [
"manage-datasets",
"manage-schemas"
],
"sandboxes": [
"prod"
],
"subjectAttributes": {
"labels": [
"core/S1"
]
},
"createdBy": "{CREATED_BY}",
"createdAt": 1648153201825,
"modifiedBy": "{MODIFIED_BY}",
"modifiedAt": 1648153201825,
"etag": null
}
id
name
description
roleType
user-defined
および system-defined
です。permissionSets
sandboxes
subjectAttributes
subjectAttributes.labels
役割の更新 :headding-anchor:patch
ロールのプロパティを更新するには、適用したいオペレーションに対応するロール ID と値を指定して、/roles
エンドポイントにPATCHリクエストを行います。
API 形式
PATCH /roles/{ROLE_ID}
リクエスト
curl -X PATCH \
https://platform.adobe.io/data/foundation/access-control/administration/roles/{ROLE_ID} \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}'
-d'{
"operations": [
{
"op": "add",
"path": "/description",
"value": "Role with permission sets for admin type of access"
}
]
}'
op
add
、replace
、remove
があります。path
value
応答
応答が成功すると、更新された役割が、更新するように選択したプロパティの新しい値を含めて返されます。
{
"id": "3dfa045d-de58-4dfd-8ea9-e4e2c1b6d809",
"name": "Administrator Role",
"description": "Role with permission sets for admin type of access",
"roleType": "user-defined",
"permissionSets": [
"manage-datasets",
"manage-schemas"
],
"sandboxes": [
"prod"
],
"subjectAttributes": {
"labels": [
"core/S1"
]
},
"createdBy": "{CREATED_BY}",
"createdAt": 1648153201825,
"modifiedBy": "{MODIFIED_BY}",
"modifiedAt": 1648153201825,
"etag": null
}
id
name
description
roleType
user-defined
および system-defined
です。permissionSets
sandboxes
subjectAttributes
subjectAttributes.labels
役割 ID による役割の更新 :headding-anchor:put
/roles
エンドポイントにPUTリクエストを行い、更新するロールに対応するロール ID を指定することで、ロールを更新できます。
API 形式
PUT /roles/{ROLE_ID}
リクエスト
次のリクエストは、役割 ID 3dfa045d-de58-4dfd-8ea9-e4e2c1b6d809
の名前、説明、役割タイプを更新します。
curl -X PUT \
https://platform.adobe.io/data/foundation/access-control/administration/roles/3dfa045d-de58-4dfd-8ea9-e4e2c1b6d809 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}'
-d'{
"name": "Administrator role for ACME",
"description": "New administrator role for ACME",
"roleType": "user-defined"
}'
name
description
roleType
user-defined
および system-defined
です。応答
応答が成功すると、名前、説明、役割タイプに新しい値を含む、更新された役割が返されます。
{
"id": "3dfa045d-de58-4dfd-8ea9-e4e2c1b6d809",
"name": "Administrator role for ACME",
"description": "New administrator role for ACME",
"roleType": "user-defined",
"permissionSets": [
"manage-datasets",
"manage-schemas"
],
"sandboxes": [
"prod"
],
"subjectAttributes": {
"labels": [
"core/S1"
]
},
"createdBy": "{CREATED_BY}",
"createdAt": 1648153201825,
"modifiedBy": "{MODIFIED_BY}",
"modifiedAt": 1648153201825,
"etag": null
}
id
name
description
roleType
user-defined
および system-defined
です。permissionSets
sandboxes
subjectAttributes
subjectAttributes.labels
役割 ID で件名を更新
ロールに関連付けられたサブジェクトを更新するには、更新するサブジェクトのロール ID を指定したうえで、/roles
エンドポイントに対してPATCHリクエストを行います。
API 形式
PATCH /roles/{ROLE_ID}/subjects
リクエスト
次のリクエストは、{ROLE_ID}
に関連付けられた件名を更新します。
curl --location --request PATCH 'https://platform.adobe.io/data/foundation/access-control/administration/roles/<ROLE_ID>/subjects' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'x-api-key: {API_KEY}' \
--header 'x-gw-ims-org-id: {IMS_ORG}' \
--header 'Content-Type: application/json' \
--data-raw '[
{
"op": "add",
"path": "/user",
"value": "{USER ID}"
}
]'
op
add
、replace
、remove
があります。path
value
応答
応答が成功すると、サブジェクトの新しい値を含め、更新された役割が返されます。
{
"subjects": [
[
{
"subjectId": "03Z07HFQCCUF3TUHAX274206@AdobeID",
"subjectType": "user"
}
]
],
"_page": {
"limit": 1,
"count": 1
},
"_links": {
"self": {
"href": "https://platform.adobe.io:443/data/foundation/access-control/administration/roles/{ROLE_ID}/subjects",
"templated": true
},
"page": {
"href": "https://platform.adobe.io:443/data/foundation/access-control/administration/roles/{ROLE_ID}/subjects?limit={limit}&start={start}&orderBy={orderBy}&property={property}",
"templated": true
}
}
}
役割の削除 :headding-anchor:delete
ロールを削除するには、削除するロールの ID を指定したうえで、/roles
エンドポイントに対してDELETEリクエストを行います。
API 形式
DELETE /roles/{ROLE_ID}
リクエスト
次のリクエストは、ID が {ROLE_ID}
の役割を削除します。
curl -X DELETE \
https://platform.adobe.io/data/foundation/access-control/administration/roles/{ROLE_ID} \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
応答
リクエストが成功した場合は、HTTP ステータス 204(コンテンツなし)が空白の本文とともに返されます。
ロールに対して検索(GET)リクエストを試行することで、削除を確認できます。 役割が管理から削除されたので、HTTP ステータス 404 (見つかりません)が返されます。
API 資格情報の追加 :headding-anchor:apicredential
API 資格情報を追加するには、主体のロール ID を指定 /roles
て、エンドポイントにPATCHリクエストを行います。
API 形式
curl --location --request PATCH 'https://platform.adobe.io/data/foundation/access-control/administration/roles/<ROLE_ID>/subjects' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'x-api-key: {API_KEY}' \
--header 'x-gw-ims-org-id: {IMS_ORG}' \
--header 'Content-Type: application/json' \
--data-raw '[
{
"op": "add",
"path": "/api-integration",
"value": "{TECHNICAL ACCOUNT ID}"
}
]'
op
add
、replace
、remove
があります。path
value
応答
リクエストが成功した場合は、HTTP ステータス 204(コンテンツなし)が空白の本文とともに返されます。