オブジェクト権限
objectsリソースを使用して、アセット、フォルダ、プロジェクトなどのオブジェクトに対するユーザーおよびユーザーグループの権限を構成します。
オブジェクトの権限を設定するには、オブジェクトを扱う可能性のあるユーザーまたはユーザーグループごとにアクセス制御リスト(ACL)を作成します。各ACLは、ユーザーまたはユーザーグループと、オブジェクトに対するそれらのアクセス権を指定します。
例えば、NorthDevTeamおよびWestDevTeamユーザーグループにNorthwestAccountsプロジェクトへの読み取り/書き込みアクセス権を持たせるとします。NorthwestAccountsプロジェクトへのNorthDevTeamのアクセス権を指定するACLを作成してから、NorthwestAccountsプロジェクトへのWestDevTeamのアクセス権を指定するACLを作成します。
objectsリソースを使用して、次のタスクを実行して権限を管理できます。
- •オブジェクトのACLを作成する
- •オブジェクトのACLを更新する
- •オブジェクトに設定されているACLを削除する
- •ユーザーまたはユーザーグループとオブジェクトの権限の詳細を取得する
- •オブジェクトに対する権限の詳細を取得する
権限の作成
ユーザーまたはユーザーグループとオブジェクトのペアごとにアクセス制御リスト(ACL)を作成します。
POST要求
ACLを作成するには、次のURIを使用してPOST要求を送信します。
/public/core/v3/objects/<object ID/permissions
以下の情報を含めます。
フィールド | タイプ | 必須 | 説明 |
---|
プリンシパル | Object | ○ | ACLがユーザーまたはユーザーグループに対して定義されているかどうか、およびユーザーまたはユーザーグループの名前。 |
type | String | ○ | プリンシパルオブジェクトに含めます。 次のいずれかの値を使用します。 |
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 | ○ | プリンシパルオブジェクトに含めます。 次のいずれかの値を使用します。 |
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
}
}