Jede Google Drive-Datei, jeder Google Drive-Ordner und jede geteilte Google Drive-Ablage hat zugewiesene permissions
-Ressourcen. Jede Ressource identifiziert die Berechtigung für einen bestimmten type
(user
, group
, domain
, anyone
) und role
(owner
, organizer
, fileOrganizer
, writer
, commenter
, reader
). So kann eine Datei beispielsweise eine Berechtigung haben, die einem bestimmten Nutzer (type=user
) Lesezugriff (role=reader
) gewährt, während eine andere Berechtigung Mitgliedern einer bestimmten Gruppe (type=group
) die Möglichkeit gibt, einer Datei Kommentare hinzuzufügen (role=commenter
).
Eine vollständige Liste der Rollen und der zugehörigen zulässigen Vorgänge finden Sie unter Rollen und Berechtigungen.
Funktionsweise von Berechtigungen
Berechtigungslisten für einen Ordner werden nach unten weitergegeben. Alle untergeordneten Dateien und Ordner übernehmen die Berechtigungen des übergeordneten Elements. Wenn Berechtigungen oder die Hierarchie geändert werden, erfolgt die Weiterleitung rekursiv über alle verschachtelten Ordner. Wenn sich beispielsweise eine Datei in einem Ordner befindet und dieser Ordner dann in einen anderen Ordner verschoben wird, werden die Berechtigungen für den neuen Ordner auf die Datei übertragen. Wenn dem Dateinutzer im neuen Ordner eine neue Rolle wie „Schreiber“ zugewiesen wird, wird seine alte Rolle überschrieben.
Wenn eine Datei hingegen role=writer
von einem Ordner übernimmt und in einen anderen Ordner verschoben wird, der die Rolle „Leser“ bereitstellt, wird role=reader
übernommen.
Übernommene Berechtigungen können nicht aus einer Datei oder einem Ordner in einer geteilten Ablage entfernt werden. Stattdessen müssen diese Berechtigungen auf dem direkt oder indirekt übergeordneten Element angepasst werden, von dem sie übernommen wurden. Übernommene Berechtigungen können unter „Meine Ablage“ oder „Für mich freigegeben“ von Elementen entfernt werden.
Umgekehrt können übernommene Berechtigungen für eine Datei oder einen Ordner in „Mein Drive“ überschrieben werden. Wenn also eine Datei role=writer
von einem Ordner in Google Drive erbt, können Sie für die Datei role=reader
festlegen, um die Berechtigungsebene zu senken.
Dateifunktionen
Die Ressource permissions
bestimmt nicht, ob der aktuelle Nutzer Aktionen auf einer Datei oder einem Ordner ausführen kann.
Stattdessen enthält die files
-Ressource eine Sammlung boolescher capabilities
-Felder, die angeben, ob eine Aktion auf einer Datei oder einem Ordner ausgeführt werden kann. Die Google Drive API legt diese Felder basierend auf der Berechtigungsressource des aktuellen Nutzers fest, die mit der Datei oder dem Ordner verknüpft ist.
Wenn sich Alex beispielsweise in Ihrer App anmeldet und versucht, eine Datei freizugeben, wird seine Rolle auf Berechtigungen für die Datei geprüft. Wenn die Rolle die Freigabe einer Datei zulässt, werden die mit der Datei verknüpften capabilities
, z. B. canShare
, entsprechend der Rolle ausgefüllt. Wenn Alex die Datei freigeben möchte, prüft Ihre App die capabilities
, um sicherzustellen, dass canShare
auf true
gesetzt ist.
Ein Beispiel zum Abrufen der Datei capabilities
findest du unter Dateifunktionen abrufen.
Dateifunktionen abrufen
Wenn Ihre App eine Datei öffnet, sollte sie die Funktionen der Datei prüfen und die Benutzeroberfläche so rendern, dass die Berechtigungen des aktuellen Nutzers berücksichtigt werden. Wenn der Nutzer beispielsweise keine canComment
-Funktion für die Datei hat, sollte die Kommentarfunktion in der Benutzeroberfläche deaktiviert sein.
Rufen Sie zum Prüfen der Funktionen die Methode get()
für die Ressource files
mit dem Pfadparameter fileId
und dem Parameter fields
auf, der auf das Feld capabilities
gesetzt ist. Weitere Informationen zum Zurückgeben von Feldern mit dem Parameter fields
finden Sie unter Bestimmte Felder zurückgeben.
Beispiel ansehen
Im folgenden Codebeispiel wird gezeigt, wie Nutzerberechtigungen überprüft werden. Die Antwort enthält eine Liste der Funktionen, die der Nutzer für die Datei hat. Jede Funktion entspricht einer detaillierten Aktion, die ein Nutzer ausführen kann. Einige Felder werden nur für Elemente in geteilten Ablagen ausgefüllt.
Anfrage
GET https://www.googleapis.com/drive/v3/files/FILE_ID
?fields=capabilities
Antwort
{ "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 } }
Szenarien für die Freigabe von Drive-Ressourcen
Es gibt fünf verschiedene Arten von Freigabeszenarien:
Um eine Datei in „Meine Ablage“ freizugeben, muss der Nutzer
role=writer
oderrole=owner
haben.Wenn der boolesche Wert
writersCanShare
für die Datei auffalse
festgelegt ist, muss der Nutzerrole=owner
haben.Wenn der Nutzer mit
role=writer
vorübergehenden Zugriff hat, der durch ein Ablaufdatum und eine Ablaufzeit geregelt ist, kann er die Datei nicht freigeben. Weitere Informationen finden Sie unter Ablaufdatum festlegen, um den Dateizugriff einzuschränken.
Wenn ein Nutzer einen Ordner in „Meine Ablage“ freigeben möchte, benötigt er die Berechtigung
role=writer
oderrole=owner
.Wenn der boolesche Wert
writersCanShare
für die Datei auffalse
festgelegt ist, muss der Nutzer die umfassendere Berechtigungrole=owner
haben.Der vorübergehende Zugriff (geregelt durch ein Ablaufdatum und eine Ablaufzeit) ist für Ordner in „Meine Ablage“ mit
role=writer
nicht zulässig. Weitere Informationen finden Sie unter Ein Ablaufdatum festlegen, um den Dateizugriff einzuschränken.
Wenn ein Nutzer eine Datei in einer geteilten Ablage freigeben möchte, muss er die Rolle
role=writer
,role=fileOrganizer
oderrole=organizer
haben.- Die Einstellung
writersCanShare
gilt nicht für Elemente in geteilten Ablagen. Es wird so behandelt, als wäre es immer auftrue
festgelegt.
- Die Einstellung
Wenn der Nutzer einen Ordner in einer geteilten Ablage freigeben möchte, benötigt er
role=organizer
.- Wenn die
sharingFoldersRequiresOrganizerPermission
-Einschränkung für eine geteilte Ablage auffalse
festgelegt ist, können Nutzer mitrole=fileOrganizer
Ordner in dieser geteilten Ablage freigeben.
- Wenn die
Um die Mitgliedschaft in einer geteilten Ablage verwalten zu können, benötigt der Nutzer
role=organizer
. Nur Nutzer und Gruppen können Mitglieder von geteilten Ablagen sein.
Berechtigung erstellen
Die folgenden beiden Felder sind beim Erstellen einer Berechtigung erforderlich:
type
: Mittype
wird der Berechtigungsbereich (user
,group
,domain
oderanyone
) angegeben. Eine Berechtigung mittype=user
gilt für einen bestimmten Nutzer, während eine Berechtigung mittype=domain
für alle Nutzer in einer bestimmten Domain gilt.role
: Im Feldrole
werden die Vorgänge angegeben, die dietype
ausführen kann. Eine Berechtigung mittype=user
undrole=reader
gewährt beispielsweise einem bestimmten Nutzer Lesezugriff auf die Datei oder den Ordner. Mit einer Berechtigung mittype=domain
undrole=commenter
können alle Nutzer in der Domain Kommentare zu einer Datei hinzufügen. Eine vollständige Liste der Rollen und der zulässigen Vorgänge finden Sie unter Rollen und Berechtigungen.
Wenn Sie eine Berechtigung mit type=user
oder type=group
erstellen, müssen Sie auch eine emailAddress
angeben, um den jeweiligen Nutzer oder die jeweilige Gruppe mit der Berechtigung zu verknüpfen.
Wenn Sie eine Berechtigung erstellen, bei der type=domain
ist, müssen Sie auch einen domain
angeben, um eine bestimmte Domain mit der Berechtigung zu verknüpfen.
So erstellen Sie eine Berechtigung:
- Verwenden Sie die Methode
create()
mit dem PfadparameterfileId
für die zugehörige Datei oder den zugehörigen Ordner. - Geben Sie im Anfragetext
type
undrole
an. - Geben Sie bei
type=user
odertype=group
eineemailAddress
an. Wenntype=domain
, geben Sie einendomain
an.
Beispiel ansehen
Das folgende Codebeispiel zeigt, wie eine Berechtigung erstellt wird. Die Antwort gibt eine Instanz einer Permission
-Ressource zurück, einschließlich des zugewiesenen permissionId
.
Anfrage
POST https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions
{ "requests": [ { "type": "user", "role": "commenter", "emailAddress": "alex@altostrat.com" } ] }
Antwort
{
"kind": "drive#permission",
"id": "PERMISSION_ID
",
"type": "user",
"role": "commenter"
}
Zielgruppen verwenden
Zielgruppen sind Personengruppen, z. B. Abteilungen oder Teams, die Sie Nutzern zur Freigabe von Elementen empfehlen können. Sie können Nutzer dazu anregen, Elemente nicht für die gesamte Organisation, sondern für eine bestimmte Gruppe freizugeben. Mit Zielgruppen können Sie die Sicherheit und den Datenschutz Ihrer Daten verbessern und es Nutzern erleichtern, Inhalte angemessen zu teilen. Weitere Informationen finden Sie unter Zielgruppen.
So verwenden Sie Zielgruppen:
Klicken Sie in der Admin-Konsole auf das Dreistrich-Menü > Verzeichnis > Zielgruppen.
Sie müssen mit einem Konto mit Super Admin-Berechtigungen angemeldet sein, um diese Aufgabe ausführen zu können.
Klicken Sie in der Liste Zielgruppen auf den Namen der Zielgruppe. Weitere Informationen zum Erstellen einer Zielgruppe finden Sie unter Zielgruppe erstellen.
Kopieren Sie die eindeutige ID aus der URL der Zielgruppe:
https://admin.google.com/ac/targetaudiences/ID
.Erstellen Sie eine Berechtigung mit
type=domain
und legen Sie das Felddomain
aufID.audience.googledomains.com
fest.
Informationen dazu, wie Nutzer mit Zielgruppen interagieren, finden Sie unter Nutzerfreundlichkeit beim Teilen von Links.
Alle Berechtigungen auflisten
Verwenden Sie die Methode list()
für die Ressource permissions
, um alle Berechtigungen für eine Datei, einen Ordner oder eine freigegebene Festplatte abzurufen.
Beispiel ansehen
Im folgenden Codebeispiel wird gezeigt, wie alle Berechtigungen abgerufen werden. Die Antwort enthält eine Liste der Berechtigungen.
Anfrage
GET https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions
Antwort
{
"kind": "drive#permissionList",
"permissions": [
{
"id": "PERMISSION_ID
",
"type": "user",
"kind": "drive#permission",
"role": "commenter"
}
]
}
Berechtigungen aktualisieren
Wenn Sie die Berechtigungen für eine Datei oder einen Ordner aktualisieren möchten, können Sie die zugewiesene Rolle ändern. Weitere Informationen zum Ermitteln der Rollenquelle finden Sie unter Rollenquelle ermitteln.
Rufen Sie die Methode
update()
für die Ressourcepermissions
auf. Dabei muss der PfadparameterpermissionId
auf die Berechtigung zum Ändern und der PfadparameterfileId
auf die zugehörige Datei, den zugehörigen Ordner oder die zugehörige freigegebene Ablage festgelegt sein. UmpermissionId
zu finden, verwenden Sie die Methodelist()
für die Ressourcepermissions
mit dem PfadparameterfileId
.Geben Sie in der Anfrage die neue
role
an.
Sie können Berechtigungen für einzelne Dateien oder Ordner in einer geteilten Ablage gewähren, auch wenn der Nutzer oder die Gruppe bereits Mitglied ist. Alex hat beispielsweise role=commenter
als Mitglied einer geteilten Ablage. Ihre App kann Alex jedoch role=writer
für eine Datei in einer geteilten Ablage gewähren. Da die neue Rolle in diesem Fall großzügiger ist als die Rolle, die über die Mitgliedschaft gewährt wurde, wird die neue Berechtigung zur effektiven Rolle für die Datei oder den Ordner.
Beispiel ansehen
Im folgenden Codebeispiel wird gezeigt, wie die Berechtigungen für eine Datei oder einen Ordner von „Kommentar“ zu „Schreiber“ geändert werden. Die Antwort gibt eine Instanz einer permissions
-Ressource zurück.
Anfrage
PATCH https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
{ "requests": [ { "role": "writer" } ] }
Antwort
{
"kind": "drive#permission",
"id": "PERMISSION_ID
",
"type": "user",
"role": "writer"
}
Rolle ermitteln
Wenn Sie die Rolle für eine Datei oder einen Ordner ändern möchten, müssen Sie die Quelle der Rolle kennen. Bei geteilten Ablagen kann die Quelle einer Rolle auf der Mitgliedschaft in der geteilten Ablage, der Rolle für einen Ordner oder der Rolle für eine Datei basieren.
Wenn Sie die Rollenquelle für ein freigegebenes Laufwerk oder Elemente auf diesem Laufwerk ermitteln möchten, rufen Sie die Methode get()
für die Ressource permissions
mit den Pfadparametern fileId
und permissionId
auf und legen Sie den Parameter fields
auf das Feld permissionDetails
fest.
Um die permissionId
zu finden, verwenden Sie die Methode list()
für die permissions
-Ressource mit dem Pfadparameter fileId
. Wenn Sie das Feld permissionDetails
in der list
-Anfrage abrufen möchten, setzen Sie den Parameter fields
auf permissions/permissionDetails
.
In diesem Feld werden alle übernommenen und direkten Dateiberechtigungen für den Nutzer, die Gruppe oder die Domain aufgelistet.
Beispiel ansehen
Im folgenden Codebeispiel wird gezeigt, wie die Rollenquelle ermittelt wird. Die Antwort gibt die permissionDetails
einer permissions
-Ressource zurück. Das Feld inheritedFrom
enthält die ID des Elements, von dem die Berechtigung übernommen wird.
Anfrage
GET https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
?fields=permissionDetails&supportsAllDrives=true
Antwort
{
"permissionDetails": [
{
"permissionType": "member",
"role": "commenter",
"inheritedFrom": "INHERITED_FROM_ID
",
"inherited": true
},
{
"permissionType": "file",
"role": "writer",
"inherited": false
}
]
}
Mehrere Berechtigungen mit Batchanfragen aktualisieren
Wir empfehlen dringend, Batchanfragen zu verwenden, um mehrere Berechtigungen zu ändern.
Im Folgenden finden Sie ein Beispiel für die Änderung mehrerer Berechtigungen mit einer Clientbibliothek.
Java
Python
Node.js
PHP
.NET
Berechtigung löschen
Wenn Sie den Zugriff auf eine Datei oder einen Ordner widerrufen möchten, rufen Sie die Methode delete()
für die Ressource permissions
mit den Pfadparametern fileId
und permissionId
auf, um die Berechtigung zu löschen.
Bei Elementen in „Meine Ablage“ können Sie eine übernommene Berechtigung löschen. Wenn Sie eine übernommene Berechtigung löschen, wird der Zugriff auf das Element und gegebenenfalls auf untergeordnete Elemente widerrufen.
Für Elemente in einer geteilten Ablage können übernommene Berechtigungen nicht widerrufen werden. Aktualisieren oder löschen Sie stattdessen die Berechtigung für die übergeordnete Datei oder den übergeordneten Ordner.
Mit der delete()
-Methode können auch Berechtigungen gelöscht werden, die direkt auf eine Datei oder einen Ordner in einer geteilten Ablage angewendet wurden.
Beispiel ansehen
Im folgenden Codebeispiel wird gezeigt, wie der Zugriff widerrufen wird, indem eine permissionId
gelöscht wird. Wenn der Vorgang erfolgreich ist, ist der Antworttext leer. Um zu bestätigen, dass die Berechtigung entfernt wurde, verwenden Sie die Methode list()
für die Ressource permissions
mit dem Pfadparameter fileId
.
Anfrage
DELETE https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
Ablaufdatum festlegen, um den Dateizugriff einzuschränken
Wenn Sie mit anderen Personen an einem sensiblen Projekt arbeiten, möchten Sie deren Zugriff auf bestimmte Dateien in Drive möglicherweise nach einer bestimmten Zeit beschränken. Bei Dateien in „Meine Ablage“ können Sie ein Ablaufdatum festlegen, um den Zugriff auf eine Datei einzuschränken oder zu beenden.
So legen Sie das Ablaufdatum fest:
Verwenden Sie die Methode
create()
für die Ressourcepermissions
und legen Sie das FeldexpirationTime
(zusammen mit den anderen erforderlichen Feldern) fest. Weitere Informationen finden Sie unter Berechtigung erstellen.Verwenden Sie die Methode
update()
für die Ressourcepermissions
und legen Sie das FeldexpirationTime
(zusammen mit den anderen erforderlichen Feldern) fest. Weitere Informationen finden Sie unter Berechtigungen aktualisieren.
Im Feld expirationTime
wird das Ablaufdatum der Berechtigung im RFC 3339-Datum-Uhrzeit-Format angegeben. Für Ablaufzeiten gelten die folgenden Einschränkungen:
- Sie können nur für Nutzer- und Gruppenberechtigungen festgelegt werden.
- Der Zeitpunkt muss in der Zukunft liegen.
- Der Zeitpunkt darf nicht mehr als ein Jahr in der Zukunft liegen.
Weitere Informationen zum Ablaufdatum finden Sie in den folgenden Artikeln:
Weitere Informationen
- Ausstehende Zugriffsanfragen verwalten
- Eigentümerschaft für Dateien übertragen
- Dateiinhalte schützen
- Über Ressourcenschlüssel auf über einen Link freigegebene Drive-Dateien zugreifen
- Rollen und Berechtigungen