REST APIリファレンス > プラットフォームREST APIバージョン3リソース > オブジェクト権限
  

オブジェクト権限

objectsリソースを使用して、アセット、フォルダ、プロジェクトなどのオブジェクトに対するユーザーおよびユーザーグループの権限を構成します。
オブジェクトの権限を設定するには、オブジェクトを扱う可能性のあるユーザーまたはユーザーグループごとにアクセス制御リスト(ACL)を作成します。各ACLは、ユーザーまたはユーザーグループと、オブジェクトに対するそれらのアクセス権を指定します。
例えば、NorthDevTeamおよびWestDevTeamユーザーグループにNorthwestAccountsプロジェクトへの読み取り/書き込みアクセス権を持たせるとします。NorthwestAccountsプロジェクトへのNorthDevTeamのアクセス権を指定するACLを作成してから、NorthwestAccountsプロジェクトへのWestDevTeamのアクセス権を指定するACLを作成します。
objectsリソースを使用して、次のタスクを実行して権限を管理できます。

権限の作成

ユーザーまたはユーザーグループとオブジェクトのペアごとにアクセス制御リスト(ACL)を作成します。

POST要求

ACLを作成するには、次のURIを使用してPOST要求を送信します。
/public/core/v3/objects/<object ID/permissions
以下の情報を含めます。
フィールド
タイプ
必須
説明
プリンシパル
Object
ACLがユーザーまたはユーザーグループに対して定義されているかどうか、およびユーザーまたはユーザーグループの名前。
type
String
プリンシパルオブジェクトに含めます。
次のいずれかの値を使用します。
  • - USER
  • - GROUP
name
String
プリンシパルオブジェクトに含めます。
オブジェクト名。
権限
Object
ユーザーまたはグループに割り当てるオブジェクト権限。
読み取り
Boolean
権限オブジェクトに含めます。
ユーザーまたはグループにオブジェクトの表示を許可するかどうか。
削除
Boolean
権限オブジェクトに含めます。
ユーザーまたはグループにオブジェクトの削除を許可するかどうか。
実行
Boolean
権限オブジェクトに含めます。
ユーザーにタスクの実行を許可するかどうか。
changePermission
Boolean
権限オブジェクトに含めます。
ユーザーまたはグループがオブジェクトの権限を変更できるようにするかどうか。

POST応答

成功した場合、POST要求に含めた詳細とACL IDが含まれるオブジェクトが返されます。

POSTの例

オブジェクトのユーザー権限を作成するには、次の例のような要求を送信します。
POST <baseApiUrl>/public/core/v3/objects/9EcgvBYZ9GGflOYr98GzOH/permissions
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"principal": {
"type":"USER",
"name":"larry@infa.com"
},
"permissions" : {
"read" : true,
"update" : true,
"delete" : true,
"execute" : true,
"changePermission" : true
}
}
次の例のような応答を受信します。
[
{
"id": "0dXigiEiWRbb5rKLgPfFCe",
"principal": {
"type": "USER",
"name": "larry@infa.com"
},
"permissions": {
"read": true,
"update": true,
"delete": true,
"execute": true,
"changePermission": true
}
}
]

権限の更新

アクセス制御リスト(ACL)を更新して、ユーザーまたはユーザーグループがオブジェクトに対して持つアクセス権を変更できます。

PUT要求

ACLを更新するには、次のURIを使用してPUT要求を送信します。
/public/core/v3/objects/<object ID>/permissions/<ACL ID>
以下の情報を含めます。
フィールド
タイプ
必須
説明
プリンシパル
Object
ユーザーまたはユーザーグループに権限が定義されているかどうか、およびユーザーまたはユーザーグループの名前。
type
String
プリンシパルオブジェクトに含めます。
次のいずれかの値を使用します。
  • - USER
  • - GROUP
name
String
プリンシパルオブジェクトに含めます。
オブジェクト名。
権限
Object
ユーザーまたはグループに割り当てるオブジェクト権限。
読み取り
Boolean
権限オブジェクトに含めます。
ユーザーまたはグループにオブジェクトの表示を許可するかどうか。
削除
Boolean
権限オブジェクトに含めます。
ユーザーまたはグループにオブジェクトの削除を許可するかどうか。
実行
Boolean
権限オブジェクトに含めます。
ユーザーにタスクの実行を許可するかどうか。
changePermission
Boolean
権限オブジェクトに含めます。
ユーザーまたはグループがオブジェクトの権限を変更できるようにするかどうか。

PUT応答

成功したら成功コードを、エラーが発生したらエラーオブジェクトを返します。

PUTの例

オブジェクトのユーザー権限を更新するには、次の例のような要求を送信します。
PUT <baseApiUrl>/public/core/v3/objects/9EcgvBYZ9GGflOYr98GzOH/permissions/4eMlUawPcahhK4eKBmDLsI
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"principal": {
"type":"USER",
"name":"scotty@infa.com"
},
"permissions" : {
"read" : true,
"update" : true,
"delete" : true,
"execute" : false,
"changePermission" : true
}
}

権限の削除

ユーザーまたはユーザーグループがオブジェクトに対して持っている権限を削除できます。また、オブジェクトに設定されているすべての権限を削除することもできます。
ユーザーまたはユーザーグループがオブジェクトに対して持っている権限を削除するには、次のURIを使用してDELETE要求を送信します。
/public/core/v3/objects/<object ID>/permissions/<ACL ID>
オブジェクトに構成されているすべての権限を削除するには、次のURIを使用してDELETE要求を送信します。
/public/core/v3/objects/<object ID>/permissions
例えば、オブジェクトのすべての権限を削除するには、次のような要求を送信します。
DELETE <baseApiUrl>/public/core/v3/objects/9EcgvBYZ9GGflOYr98GzOH/permissions

権限の詳細の取得

特定のACL IDの権限の詳細を取得できます。また、オブジェクトのすべての権限の詳細を取得することもできます。

GET要求

特定のACL IDの詳細を取得するには、次のURIを使用してGET要求を送信します。
/public/core/v3/objects/<object ID>/permissions/<ACL ID>
オブジェクトのすべての権限の詳細を取得するには、次のURIを使用してGET要求を送信します。
/public/core/v3/objects/<object ID>/permissions

GET応答

成功した場合、ACL IDについて次の情報を返します。
フィールド
タイプ
説明
id
String
ACL ID
プリンシパル
Object
ユーザーまたはグループに関する情報。
type
String
プリンシパルがユーザーであるかグループであるか。
name
String
ユーザー名またはユーザーグループの名前。
権限
Object
ユーザーまたはグループのオブジェクト権限。
読み取り
Boolean
ユーザーまたはグループがオブジェクトを表示できるかどうか。
更新
Boolean
ユーザーまたはグループがオブジェクトを更新できるかどうか。
削除
Boolean
ユーザーまたはグループがオブジェクトを削除できるかどうか。
実行
Boolean
ユーザーまたはグループがタスクを実行できるかどうか。
changePermission
Boolean
ユーザーまたはグループがオブジェクトの権限を変更できるかどうか。

GETの例

オブジェクトのすべての権限の詳細を取得するには、次の例と同様の要求を送信します。
/public/core/v3/objects/2ymkhUZCl7XbUmN7dsq6Wc/permissions
次の例のような応答を受信します。

[
{
"id": "4D6ER3yic8cjjE1GmxEKEi",
"principal": {
"type": "USER",
"name": "saki@infa.com"
},
"permissions": {
"read": true,
"update": true,
"delete": true,
"execute": true,
"changePermission": true
}
},
{
"id": "6g51tCtEX08bldfh8k6cgz",
"principal": {
"type": "GROUP",
"name": "Everyone"
},
"permissions": {
"read": false,
"update": true,
"delete": true,
"execute": false,
"changePermission": true
}
}
]

権限の確認

特定のオブジェクトまたはアセットタイプのアクセス権を確認する要求を送信できます。応答は、現在のセッションを開始したユーザーの権限と特権に基づいています。
プロジェクトまたはフォルダにアセットを作成する前に、アクセス権を確認することをお勧めします。プロジェクトまたはフォルダに対する権限がない場合は、権限の種類ごとに「false」の値が表示されます。

GET要求

オブジェクトのアクセス権を取得するには、次のURIを使用してGET要求を送信します。
/public/core/v3/objects/<object ID>/permissions/checkAccess
応答には、指定されたオブジェクトIDに対するアクセス権が含まれます。
プロジェクトまたはフォルダに特定のタイプのアセットを作成できるかどうかを確認するには、プロジェクトまたはフォルダのIDとアセットタイプを含むGET要求を送信します。次のURIを使用します。
/public/core/v3/objects/<object ID>/permissions/checkAccess?type=<asset type>
アセットタイプのリストについては、アセットの検索を参照してください。

GETの例

オブジェクトのアクセス権を確認するには、次の例のような要求を送信します。
GET <baseApiUrl>/public/core/v3/objects/2ymkhUZCl7XbUmN7dsq6Wc/permissions/checkAccess
次の例のような応答を受信します。
{
"permissions": {
"create": true,
"read": true,
"update": true,
"delete": true,
"execute": false,
"changePermission": true
}
}
プロジェクトにデータ統合マッピングを作成する権限があるかどうかを確認するには、次の例のような要求を送信できます。
GET <baseApiUrl>/public/core/v3/objects/2ymkhUZCl7XbUmN7dsq6Wc/permissions/checkAccess?type=DTEMPLATE
次の例のような応答を受信します。
{
"permissions": {
"create": true,
"read": true,
"update": true,
"delete": true,
"execute": true,
"changePermission": true
}
}