Google ドライブのすべてのファイル、フォルダ、共有ドライブが
permissions リソースが含まれています。各リソース
特定の type
(ユーザー、グループ、ドメイン、全員)の権限を識別します。
および role
(「commenter」など)入力しますたとえば、ファイルに
特定のユーザー(type=user
)に読み取り専用アクセス権を付与する権限
(role=reader
)で、別の権限は特定のグループのメンバーに付与します
(type=group
)ファイルにコメントを追加する機能(role=commenter
)。
ロールと各ロールで許可される操作の完全なリストについては、 役割と権限。
ドライブ リソースの共有シナリオ
共有のシナリオには次の 5 種類があります。
マイドライブ内のファイルを共有するには、
role=writer
またはrole=owner
。writersCanShare
ブール値が ファイルがFalse
に設定されている場合は、role=owner
が必要です。role=writer
を持つユーザーに、 ファイルを共有することはできません。詳細情報 詳しくは、有効期限を設定してファイルへのアクセスを アクセス。
マイドライブ内のフォルダを共有するには、
role=writer
またはrole=owner
。ファイルの
writersCanShare
ブール値がFalse
に設定されている場合、 より制限の緩いrole=owner
を使用する必要があります。一時的なアクセス(有効期限の日時で管理)は許可されません マイドライブ フォルダに
role=writer
が含まれています。詳細情報 詳しくは、 有効期限を設定してファイルへのアクセスを制限する
共有ドライブ内のファイルを共有するには、
role=writer
role=fileOrganizer
またはrole=organizer
。writersCanShare
の設定は、共有ドライブ内のアイテムには適用されません。 常にTrue
に設定されているものとして扱われます。
共有ドライブ内のフォルダを共有するには、
role=organizer
が必要です。- 特定の属性に
sharingFoldersRequiresOrganizerPermission
制限が設定されている場合、 共有ドライブがFalse
に設定されている場合、role=fileOrganizer
のユーザーができること その共有ドライブ内のフォルダを共有できます。
- 特定の属性に
共有ドライブのメンバーを管理するには、このユーザーは
role=organizer
を持っている必要があります。単独 ユーザーとグループは共有ドライブのメンバーになることができます。
有効期限を設定してファイルへのアクセスを制限する
機密性の高いプロジェクトで同僚と作業するときは、 ドライブ内の特定のファイルへのアクセスを、一定期間後に制限する あります。マイドライブ内のファイルについては、有効期限を そのファイルへのアクセスを制限または削除できます。
有効期限を設定するには:
permissions.create
を使用する メソッドを呼び出し、permissions.expirationTime
フィールド(他の必須フィールドとともに)が表示されます。詳細については、次をご覧ください: 権限を作成します。permissions.update
を使用する メソッドを実行し、permissions.expirationTime
フィールド( 必須項目です)。詳細については、 権限。
expirationTime
フィールドは、RFC 3339 を使用して権限の有効期限を示します。
日時
をタップします。有効期限には次の制限があります。
- ユーザーとグループの権限に対してのみ設定できます。
- 時刻には将来の時刻を指定してください。
- 1 年以内の日時は指定できません。
有効期限の詳細については、次の記事をご覧ください。
- ファイル アクセスの有効期限を設定する
- 有効期限を追加する をタップします。
権限の伝播
フォルダの権限リストは下位に伝播され、すべての子ファイルと フォルダの権限は親から継承されます。権限や API 呼び出しが 変更されると、伝播は、すべてのネストされた できます。たとえば、フォルダ内にファイルが存在し、そのフォルダを移動する場合です。 その新しいフォルダの権限がファイルに反映されます。 新しいフォルダでファイルのユーザーに「writer」などの新しいロールが付与される場合、 古いロールがオーバーライドされます
逆に、ファイルがフォルダから role=writer
を継承し、別のフォルダに移動された場合
「リーダー」機能を備えた別のフォルダをロールが付与されていない場合、ファイルは
role=reader
。
継承された権限を共有ドライブ内のファイルやフォルダから削除することはできません。 代わりに、直接的または間接的な親に対してこれらの権限を調整する必要があります。 継承されます。継承された権限は、 マイドライブまたは [共有アイテム] を選択します。
逆に、継承された権限は、[マイページ] 内のファイルまたはフォルダでオーバーライドできます。
。たとえば、ファイルが Myrole=writer
ファイルに対して role=reader
を設定すると、
権限レベルを指定できます。
機能
Permissions リソースは、
現在のユーザーがファイルやフォルダに対して実行できる操作を確認する。
代わりに、Files リソースには、
アクションの実行を許可するかどうかを示すブール値の capabilities
フィールド
実行することもできます。Google Drive API は、これらのフィールドを
ファイルまたはフォルダに関連付けられている現在のユーザーの権限リソース。
たとえば、Alex がアプリにログインし、ファイルを共有しようとすると、Alex の役割は
チェックされます。ファイル共有が許可されるロールでは、
ファイルに関連する capabilities
(canShare
など)が入力されます。
決定しますAlex がファイルを共有したい場合は、
capabilities
: canShare
が true
に設定されていることを確認します。
ファイル capabilities
を取得する例については、ユーザーの確認をご覧ください。
権限。
権限を作成する
権限を作成する際は、次の 2 つのフィールドが必要です。
type
-type
権限の範囲(user
、group
、domain
、またはanyone
)。type=user
の権限は特定のユーザーに適用されますが、type=domain
を使用する権限は、特定のドメイン内のすべてのユーザーに適用されます。role
-role
フィールドtype
が実行できるオペレーションを識別します。たとえば、type=user
およびrole=reader
により、特定のユーザーに そのファイルまたはフォルダに対する読み取り専用権限を 付与する必要がありますまたは、type=domain
の権限role=commenter
では、ドメイン内のすべてのユーザーがファイルにコメントを追加できます。対象 ロールとそれぞれで許可されるオペレーションの完全なリストについては、 役割と権限。
type=user
または type=group
の権限を作成する場合は、
関連付ける emailAddress
を指定
特定のユーザーまたはグループに権限を付与できます。
type=domain
の権限を作成する場合は、
domain
: 特定のドメインを関連付けます
追加できます。
権限を作成するには:
permissions.create
メソッドを使用する 関連するファイルまたはフォルダのfileId
に置き換えます。- リクエストの本文で、
type
とrole
を指定します。 type=user
またはtype=group
の場合は、emailAddress
を指定します。type=domain
の場合、domain
を指定します。
例を表示
次のコードサンプルは、権限の作成方法を示しています。レスポンスは、割り当てられた permissionId
を含む Permission
リソースのインスタンスを返します。
リクエスト
POST https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions
{ "requests": [ { "type": "user", "role": "commenter", "emailAddress": "alex@altostrat.com" } ] }
レスポンス
{
"kind": "drive#permission",
"id": "PERMISSION_ID
",
"type": "user",
"role": "commenter"
}
対象グループを使用する
対象グループとは、部門やチームなどのグループ単位で、 ユーザーにアイテムの共有先としておすすめします。ユーザーに共有を促すことで、 オーディエンス全体ではなく、より限定的または限定的なオーディエンスに できます。対象グループを使用すると、Google Chat のセキュリティとプライバシーを強化でき、 ユーザーが簡単に適切に共有できるようになります。詳細情報 詳しくは、ターゲットについて オーディエンス をタップします。
対象グループを使用するには:
Google 管理コンソールで、メニュー アイコン > ディレクトリ > [対象グループ] をタップします。
このタスクを行うには、特権管理者権限を持つアカウントでログインする必要があります。
[対象グループのリスト] で、対象グループの名前をクリックします。宛先 対象グループを作成するには、ターゲットを作成する オーディエンス
対象グループの URL から一意の ID(
https://admin.google.com/ac/targetaudiences/ID
)をコピーします。type=domain
で権限を作成し、domain
フィールドをID.audience.googledomains.com
に設定します。
ユーザーが対象グループとどのようにやり取りしているかを確認するには、リンクのユーザー エクスペリエンスをご覧ください。 共有 をタップします。
ファイル、フォルダ、共有ドライブのすべての権限を取得する
permissions.list
メソッドを使用して、以下を行います。
ファイル、フォルダ、共有ドライブのすべての権限を取得する。
例を表示
次のコードサンプルは、すべての権限を取得する方法を示しています。レスポンスで権限のリストが返されます。
リクエスト
GET https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions
レスポンス
{
"kind": "drive#permissionList",
"permissions": [
{
"id": "PERMISSION_ID
",
"type": "user",
"kind": "drive#permission",
"role": "commenter"
}
]
}
ユーザー権限を確認する
アプリでファイルを開くと、ファイルの機能をチェックして、ファイルをレンダリング
現在のユーザーの権限を反映します。たとえば、ユーザーが
そのファイルに対する canComment
機能がないが、コメントは
UI で無効にする必要があります
capabilities
の詳細については、機能をご覧ください。
ご覧ください。
機能を確認するには、次のように files.get
を呼び出します。
fileId
と fields
パラメータを capabilities
フィールドに設定。対象
fields
パラメータを使用してフィールドを返す方法の詳細については、以下をご覧ください。
ファイルの特定のフィールドを返す。
例を表示
次のコードサンプルは、ユーザー権限を確認する方法を示しています。レスポンスでは、ユーザーがファイルに対して持っている機能のリストが返されます。各ケーパビリティは、ユーザーが実行できるきめ細かいアクションに対応しています。一部のフィールドは共有ドライブ内のアイテムに対してのみ入力されます。
リクエスト
GET https://www.googleapis.com/drive/v3/files/FILE_ID
?fields=capabilities
レスポンス
{ "capabilities": { "canAcceptOwnership": false, "canAddChildren": false, "canAddMyDriveParent": false, "canChangeCopyRequiresWriterPermission": true, "canChangeSecurityUpdateEnabled": false, "canComment": true, "canCopy": true, "canDelete": true, "canDownload": true, "canEdit": true, "canListChildren": false, "canModifyContent": true, "canModifyContentRestriction": true, "canModifyLabels": true, "canMoveChildrenWithinDrive": false, "canMoveItemOutOfDrive": true, "canMoveItemWithinDrive": true, "canReadLabels": true, "canReadRevisions": true, "canRemoveChildren": false, "canRemoveMyDriveParent": true, "canRename": true, "canShare": true, "canTrash": true, "canUntrash": true } }
共有ドライブのファイルに対するロールのソースを特定するフォルダ
ファイルまたはフォルダのロールを変更するには、ロールのソースを把握している必要があります。 共有ドライブの場合、ロールのソースは共有ドライブのメンバーシップに基づいて フォルダに対するロール、ファイルに対するロールです。
共有ドライブまたは共有ドライブ内のアイテムに対するロールの参照元を特定する
場合、permissions.get
を
fileId
、permissionId
、fields
パラメータを
permissionDetails
フィールド。permissionId
を見つけるには、次のコマンドを使用します。
permissions.list
を fileId
に置き換えます。宛先
permissions.list
リクエストの permissionDetails
フィールドを取得し、
fields
パラメータを permissions/permissionDetails
に追加します。
このフィールドには、そのユーザーのすべての継承された直接ファイル権限と、 グループ、ドメインです。
例を表示
次のコードサンプルは、ロールのソースを確認する方法を示しています。レスポンスは、Permission
リソースの permissionDetails
を返します。inheritedFrom
フィールドには権限の継承元となるアイテムの ID を指定します。
リクエスト
GET https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
?fields=permissionDetails&supportsAllDrives=true
レスポンス
{
"permissionDetails": [
{
"permissionType": "member",
"role": "commenter",
"inheritedFrom": "INHERITED_FROM_ID
",
"inherited": true
},
{
"permissionType": "file",
"role": "writer",
"inherited": false
}
]
}
権限を変更
ファイルまたはフォルダの権限を変更するには、割り当てられているロールを変更します。
次で
permissions.update
を呼び出します。 変更する権限のpermissionId
と、変更する権限のfileId
ファイルやフォルダ、共有ドライブを削除します。permissionId
を見つけるには、次のコマンドを使用します。permissions.list
をfileId
に置き換えます。リクエスト内で、新しい
role
を特定します。
共有ドライブ内の個々のファイルまたはフォルダに対して権限を付与できます。
ユーザーまたはグループがすでにメンバーになっている場合。たとえば、Alex には role=commenter
があります。
そのメンバーが共有ドライブのメンバーとして移動します。ただし、アプリは Alex に
共有ドライブのファイルに対する role=writer
。今回の場合、新しいロールには
付与されているロールよりも制限が緩やかな場合、新しい
その権限が、ファイルまたはフォルダの有効なロールになります。
例を表示
次のコードサンプルは、ファイルまたはフォルダの権限をコメント投稿者からライターに変更する方法を示しています。レスポンスは Permission
リソースのインスタンスを返します。
リクエスト
PATCH https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
{ "requests": [ { "role": "writer" } ] }
レスポンス
{
"kind": "drive#permission",
"id": "PERMISSION_ID
",
"type": "user",
"role": "writer"
}
ファイルまたはフォルダへのアクセス権を取り消す
ファイルまたはフォルダへのアクセス権を取り消すには、
delete
は、fileId
と
permissionId
で権限を削除します。
[マイドライブ] 内のアイテムについては、継承された 付与します。継承された権限を削除すると、そのアイテムへのアクセス権が取り消され、 子アイテム(存在する場合)を返します。
共有ドライブ内のアイテムについては、継承された権限を取り消すことはできません。更新または 親ファイルまたは親フォルダの権限を取り消すこともできます。
delete
オペレーションは、サービスに直接適用された権限を削除するためにも使用されます。
共有ドライブのファイルまたはフォルダです。
例を表示
次のコードサンプルは、permissionId
を削除してアクセス権を取り消す方法を示しています。成功すると、レスポンスの本文は空になります。権限が削除されたことを確認するには、fileId
で permissions.list
を使用します。
リクエスト
DELETE https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
ファイルのオーナー権限を同じ組織内の別の Google Workspace アカウントに譲渡する
[マイドライブ] にあるファイルのオーナー権限移行元のマシンから 1 つの Google Workspace アカウント 同じ組織内の別のアカウントに 移行する場合です共有バケットを所有する組織は ドライブ内のファイルを所有しますそのため、所有権の移転はサポートされていません。 共有ドライブ内のファイルとフォルダに対する共有ドライブの主催者は 自分の [マイドライブ] に移動できます。 所有権が譲渡されます。
[マイドライブ] 内のファイルのオーナー権限を譲渡するには、次のいずれかの操作を行います。 次のとおりです。
特定のユーザーに付与するファイル権限を作成する (
type=user
)オーナー権限(role=owner
)。role=owner
で既存のファイルの権限を更新し、転送する 指定したユーザー(transferOwnership=true
)にオーナー権限が譲渡されます。
ある一般ユーザー向けアカウントから別のアカウントにファイルのオーナー権限を移行する
ファイルの所有権は、ある一般ユーザー向けアカウント間で譲渡できます。 ただし、ドライブ間でファイルのオーナー権限が移管されることはありません。 消費者 アカウント 新しいオーナー候補が譲渡に明示的に同意するまでは、所有権が譲渡されません。移行方法 ある一般ユーザー向けアカウントから別の一般ユーザー向けアカウントのファイル所有権。
現在の所有者は、ファイルを作成または更新することで、所有権の譲渡を開始します。 新しいオーナーになりたいユーザーのファイル権限。この権限には、
role=writer
、type=user
、pendingOwner=true
です。もし 新しい所有者が所有者候補の権限を作成する場合、メール 新しいオーナー候補に、新しいオーナーである ファイルのオーナーになるよう求められます。新しいオーナーがオーナー権限の譲渡リクエストを承諾するには、新しいオーナーを作成または 付与できます。この権限には、次の設定を含める必要があります。
role=owner
とtransferOwnership=true
。新しいオーナーが 新しい権限を許可すると、以前の所有者にメール通知が送信されます 所有権が譲渡されたことを示します。
ファイルを転送すると、以前のオーナーのロールは writer
にダウングレードされます。
バッチ リクエストで複数の権限を変更する
使用することを強く推奨します バッチ リクエストを使用して複数のリクエストを変更する 付与できます。
次の例は、コマンドを使用して権限の一括変更を行う クライアント ライブラリを使用します。