Drive および Photo Service(PDS)では、PDS が提供するデフォルトのクライアントで権限を管理できます。 また、このトピックで説明されている API 操作を呼び出して、権限を管理することもできます。
基本概念
次の図とリストは、権限管理に関連するいくつかの基本概念を示しています。

ユーザー ツリーは、ユーザーとグループ間の関係に基づいて生成されます。 ユーザー ツリーには複数のレベルがあります。 ユーザーは複数のグループのメンバーになることができますが、グループは 1 つのグループのメンバーにしかなりません。
ファイル ツリーは、ファイルとフォルダ間の関係に基づいて生成されます。 ファイル ツリーには複数のレベルがあります。
ファイルの権限付与とは、ユーザーまたはグループにフォルダに対する特定の操作権限を付与することです。 現在、PDS ではフォルダに対する権限のみを付与できます。
ファイルの権限付与は、ロールを使用して行われます。 PDS は、権限付与のための一連のデフォルト ロールを提供します。 次の表に、ロールの一覧を示します。
各ロールには権限リストがあります。 権限リストは、ロールの操作権限を示します。
グループ権限の継承とは、子グループのユーザーが親グループに付与された権限を継承できることを意味します。 たとえば、前の図に示すように、「R&D 部門」に「R&D ドライブ」に対する権限を付与し、権限継承機能が無効になっている場合、「ユーザー 4」は「R&D 部門」の直接のメンバーであるため、この権限を使用できますが、「ユーザー 2」と「ユーザー 3」には権限がありません。
ファイル権限の継承とは、すべての子ファイルとフォルダが親フォルダに付与された権限を継承できることを意味します。
権限の上書きとは、ユーザーがリソースに対して複数の使用可能な権限を持っている場合、権限が互いに上書きされることを意味します。 前の図では、「ユーザー 4」は「プロジェクト資料」フォルダに対するプレビュー権限と編集権限の両方を持っています。 プレビュー権限は親グループに付与され、「ユーザー 4」によって継承されます。 編集権限は「ユーザー 4」自体に付与されます。 ユーザーに付与された 2 つの異なる権限の場合、ユーザーに近い権限がユーザーから遠い権限を上書きします。 したがって、この例では、編集権限がプレビュー権限を上書きし、「ユーザー 4」が「プロジェクト資料」フォルダにアクセスするために使用されます。 ユーザーが属する複数のグループに異なる権限が付与されている特別な場合、ユーザーは権限の和集合を取得します。
次の表に、デフォルト ロールの権限を示します。


API 呼び出しの例
1. ユーザーまたはチームとフォルダを共有する
API 操作: FileAddPermission
共有権限付与には、個人スペースでのファイル共有とチームスペースでのファイル権限付与の 2 つのシナリオがあります。
個人スペースでのファイル共有とは、ワークスペース内のフォルダへのパスを保持せずに、フォルダをトップレベル フォルダとして共有することです。 フォルダを共有されたユーザーは、共有フォルダとそのサブフォルダのリストを表示できます。
チーム スペースでのファイル権限付与とは、フォルダに対する対応する権限を付与し、すべての親フォルダをレベルごとに表示レベルとして設定することです。 権限を付与されたユーザーは、承認されたワークスペースのリストを表示でき、承認された各フォルダへの完全なパスが保持されます。 これにより、チーム内でのコラボレーションが容易になります。 チーム全体を承認する場合は、file_id パラメーターを root に設定します。
リソースを共有するときに、共有者がリソースにアクセスするために使用できるロールを選択できます。 選択できる定義済みロールは 12 個あります。 詳細については、「FilePermissionMember」の role_id パラメーターの説明をご参照ください。
一度に複数のユーザーまたはグループを承認できます。 member_list パラメーターは、各項目が個別の承認レコードであるリストです。 一度に複数のユーザーまたはグループを承認するには、member_list に項目を追加するだけです。
各ワークスペースに 5,000 件以下の承認レコードを作成し、各フォルダに 500 件以下の承認レコードを作成することをお勧めします。 また、チーム スペースでファイル権限付与を使用して、個々のユーザーの同一の承認レコードの数を減らすこともお勧めします。 ビジネス シナリオでより高いクォータが必要な場合は、お気軽にお問い合わせください。
リクエストの例
{
"drive_id": "testDriveId", // ドライブID
"file_id": "testFileId", // ファイルID
"member_list": [{ // メンバーリスト
"identity": { // ID
"identity_type": "IT_User", // IDの種類
"identity_id": "testIdentityId" // ID
},
"expire_time": 1677599999999, // 有効期限
"role_id": "SystemFileViewer" // ロールID
}]
}レスポンスの例
204 NoContent
2. フォルダの共有権限付与をキャンセルする
API 操作: FileRemovePermission
操作を呼び出すときに、member_list パラメーターを使用して、一度に複数のユーザーまたはグループの共有権限付与をキャンセルできます。
リクエストの例
{
"drive_id": "testDriveId", // ドライブID
"file_id": "testFileId", // ファイルID
"member_list": [{ // メンバーリスト
"identity": { // ID
"identity_type": "IT_User", // IDの種類
"identity_id": "testIdentityId" // ID
},
"role_id": "SystemFileViewer" // ロールID
}]
}レスポンスの例
204 NoContent
3. フォルダの共有権限付与レコードを一覧表示する
API 操作: FileListPermission
操作を呼び出して、フォルダの既存の共有権限付与レコードを一覧表示できます。
リクエストの例
{
"drive_id": "testDriveId", // ドライブID
"file_id": "testFileId" // ファイルID
}レスポンスの例
[{
"identity": { // ID
"identity_type": "IT_User", // IDの種類
"identity_id": "testIdentityId", // ID
"identity_name": "testIdentityName" // ID名
},
"role_id": "SystemFileViewer", // ロールID
"expire_time": 1677599999999, // 有効期限
"disinherit_sub_group": true // サブグループの継承を無効にする
}]4. 個人スペース内の共有フォルダを一覧表示する
API 操作: ListReceivedFile
リクエストの例
{
"limit": 100, // 制限
"marker": "" // マーカー
}レスポンスの例
{
"items": [{ // 項目
"drive_id": "testDriveId", // ドライブID
"domain_id": "testDomainId", // ドメインID
"file_id": "testFileId", // ファイルID
"name": "testName", // 名前
"type": "folder", // 種類
"created_at": "2023-02-26T03:28:03.744Z", // 作成日時
"updated_at": "2023-02-26T03:28:03.747Z", // 更新日時
"hidden": false, // 非表示
"starred": false, // スター付き
"status": "available", // ステータス
"parent_file_id": "root", // 親ファイルID
"encrypt_mode": "none", // 暗号化モード
"creator_type": "User", // 作成者タイプ
"creator_id": "superadmin", // 作成者ID
"creator_name": "superadmin", // 作成者名
"last_modifier_type": "User", // 最終更新者タイプ
"last_modifier_id": "superadmin", // 最終更新者ID
"last_modifier_name": "superadmin", // 最終更新者名
"action_list": ["FILE.LIST", "FILE.VISIBLE", "FILE.PREVIEW"] // アクションリスト
}],
"next_marker": "" // 次のマーカー
}5. アクセス権限を持つチーム スペースを一覧表示する
API 操作: ListMyGroupDrive
リクエストの例
{
"limit": 100, // 制限
"marker": "" // マーカー
}レスポンスの例
{
"items": [{ // 項目
"domain_id": "testDomainId", // ドメインID
"drive_id": "testDriveId", // ドライブID
"drive_name": "testDriveName", // ドライブ名
"description": "", // 説明
"creator": "superadmin", // 作成者
"owner": "testOwner", // 所有者
"owner_type": "group", // 所有者の種類
"drive_type": "normal", // ドライブの種類
"status": "enabled", // ステータス
"used_size": 0, // 使用済みサイズ
"total_size": -1, // 合計サイズ
"store_id": "testStoreId", // ストアID
"action_list": ["FILE.VISIBLE", "FILE.LIST"], // アクションリスト
"created_at": "2023-02-26T03:28:40.875Z", // 作成日時
"updated_at": "2023-02-26T03:28:40.877Z", // 更新日時
"category": "" // カテゴリ
}],
"next_marker": "" // 次のマーカー
}6. ユーザーをグループ管理者として割り当てる
API 操作: AssignRole
操作を呼び出して権限を設定できます。 設定対象のエンティティはユーザー、設定対象のロールはグループ管理者、管理対象のサブジェクトはグループです。
リクエストの例
{
"role_id": "SystemGroupAdmin", // ロールID
"identity": { // ID
"identity_type": "IT_User", // IDの種類
"identity_id": "testIdentityId" // ID
},
"is_sub_group_inheritable": true, // サブグループの継承を有効にする
"manage_resource_type": "RT_Group", // 管理対象リソースの種類
"manage_resource_id": "testManageResourceId" // 管理対象リソースID
}レスポンスの例
204 NoContent
7. ユーザーからグループ管理者権限を取り消す
API 操作: CancelAssignRole
操作を呼び出して、既存の承認レコードを削除できます。これは、ユーザーのグループ管理者ロールをキャンセルすることです。
リクエストの例
{
"role_id": "SystemGroupAdmin", // ロールID
"identity": { // ID
"identity_type": "IT_User", // IDの種類
"identity_id": "testIdentityId" // ID
},
"is_sub_group_inheritable": false, // サブグループの継承を無効にする
"manage_resource_type": "RT_Group", // 管理対象リソースの種類
"manage_resource_id": "testManageResourceId" // 管理対象リソースID
}レスポンスの例
204 NoContent
8. グループ管理者を一覧表示する
API 操作: ListAssignment
操作を呼び出して、指定された種類と ID のサブジェクトに対する管理権限を持つすべてのユーザーを一覧表示できます。 たとえば、グループの ID に基づいてすべてのグループ管理者承認レコードを取得できます。
リクエストの例
{
"manage_resource_type": "RT_Group", // 管理対象リソースの種類
"manage_resource_id": "testManageResourceId", // 管理対象リソースID
"marker": "", // マーカー
"limit": 100 // 制限
}レスポンスの例
{
"assignment_list": [ // 割り当てリスト
{
"domain_id": "testDomainId", // ドメインID
"identity": { // ID
"identity_type": "IT_User", // IDの種類
"identity_id": "testIdentityId" // ID
},
"role_id": "SystemGroupAdmin", // ロールID
"manage_resource_type": "RT_Group", // 管理対象リソースの種類
"manage_resource_id": "testManageResourceId", // 管理対象リソースID
"creator": "testCreator", // 作成者
"created_at": 1622682267564 // 作成日時
},
{
"domain_id": "testDomainId", // ドメインID
"identity": { // ID
"identity_type": "IT_User", // IDの種類
"identity_id": "testIdentityId" // ID
},
"role_id": "SystemGroupAdmin", // ロールID
"manage_resource_type": "RT_Group", // 管理対象リソースの種類
"manage_resource_id": "testManageResourceId", // 管理対象リソースID
"creator": "testCreator", // 作成者
"created_at": 1622682267564 // 作成日時
}
],
"next_marker": "NWQ1Yjk4YmI1ZDRlYmU1Y2E0YWE0NmJhYWJmODBhNDQ2NzhlMTRhMg" // 次のマーカー
}