Alle Dateien, Ordner und geteilten Ablagen in Google Drive sind mit Berechtigungen verknüpft. Jede Ressource identifiziert die Berechtigung für eine bestimmte type
(Nutzer, Gruppe, Domain, alle) und role
, z. B. „Kommentator“ oder „Leser“. Beispielsweise kann eine Datei 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 gewährt, einer Datei Kommentare hinzuzufügen (role=commenter
).
Eine vollständige Liste der Rollen und der jeweils zulässigen Vorgänge finden Sie unter Rollen und Berechtigungen.
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
gesetzt ist, muss der Nutzerrole=owner
haben.Wenn der Nutzer mit
role=writer
temporären Zugriff hat, der einem Ablaufdatum und einer Ablaufzeit unterliegt, kann er die Datei nicht freigeben. Weitere Informationen finden Sie unter Ablaufdatum zur Einschränkung des Dateizugriffs festlegen.
Um einen Ordner in „Meine Ablage“ freizugeben, muss der Nutzer
role=writer
oderrole=owner
haben.Wenn der boolesche Wert
writersCanShare
für die Datei aufFalse
gesetzt ist, muss der Nutzer die moderatererole=owner
verwenden.Temporärer Zugriff (gesteuert durch ein Ablaufdatum und eine Ablaufzeit) ist auf Ordner in „Meine Ablage“ mit
role=writer
nicht zulässig. Weitere Informationen finden Sie unter Ablaufdatum zur Einschränkung des Dateizugriffs festlegen.
Um eine Datei in einer geteilten Ablage freizugeben, muss der Nutzer
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 „
Um einen Ordner in einer geteilten Ablage freizugeben, benötigt der Nutzer
role=organizer
.- Wenn die Einschränkung
sharingFoldersRequiresOrganizerPermission
für eine geteilte Ablage aufFalse
gesetzt ist, können Nutzer mitrole=fileOrganizer
Ordner in dieser geteilten Ablage freigeben.
- Wenn die Einschränkung
Um die Mitgliedschaft in geteilten Ablagen verwalten zu können, muss der Nutzer
role=organizer
haben. Nur Nutzer und Gruppen können Mitglieder von geteilten Ablagen sein.
Ablaufdatum festlegen, um den Dateizugriff einzuschränken
Wenn Sie mit Personen an einem vertraulichen Projekt arbeiten, kann es sinnvoll sein, deren Zugriff auf bestimmte Dateien in Drive nach einer bestimmten Zeit einzuschränken. Für Dateien in „Meine Ablage“ können Sie ein Ablaufdatum festlegen, um den Zugriff auf diese Datei einzuschränken oder zu entfernen.
So legen Sie das Ablaufdatum fest:
- Verwenden Sie die Methode
permissions.create
und legen Sie das Feldpermissions.expirationTime
(zusammen mit den anderen Pflichtfeldern) fest. Weitere Informationen finden Sie unter Berechtigung erstellen. - Verwenden Sie die Methode
permissions.update
und legen Sie das Feldpermissions.expirationTime
(zusammen mit den anderen Pflichtfeldern) fest. Weitere Informationen finden Sie unter Berechtigungen ändern.
Das Feld expirationTime
gibt an, wann die Berechtigung gemäß RFC 3339-Datum/Uhrzeit abläuft. Für Ablaufzeiten gelten die folgenden Einschränkungen:
- Sie können nur für Nutzer- und Gruppenberechtigungen festgelegt werden.
- Die Zeit 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:
Berechtigungsverteilung
Berechtigungslisten für einen Ordner werden nach unten angewendet und alle untergeordneten Dateien und Ordner erben die Berechtigungen des übergeordneten Ordners. Immer wenn Berechtigungen oder die Hierarchie geändert werden, erfolgt die Weitergabe rekursiv für alle verschachtelten Ordner. Wenn beispielsweise eine Datei in einem Ordner vorhanden ist und dieser Ordner dann in einen anderen Ordner verschoben wird, gelten die Berechtigungen für den neuen Ordner für die Datei. Wenn der neue Ordner dem Nutzer der Datei eine neue Rolle zuweist, z. B. „Writer“, wird die alte Rolle überschrieben.
Wenn hingegen eine Datei die role=writer
von einem Ordner übernimmt und in einen anderen Ordner mit der Rolle „Leser“ verschoben wird, übernimmt die Datei jetzt role=reader
.
Übernommene Berechtigungen können nicht für eine Datei oder einen Ordner in einer geteilten Ablage entfernt werden. Stattdessen müssen diese Berechtigungen für das direkte oder indirekte übergeordnete Element angepasst werden, von dem sie übernommen wurden. Übernommene Berechtigungen können für Elemente in "Meine Ablage" oder "Für mich freigegeben" entfernt werden.
Umgekehrt können übernommene Berechtigungen für eine Datei oder einen Ordner in „Meine Ablage“ überschrieben werden. Wenn eine Datei also role=writer
von einem Ordner in „Meine Ablage“ übernimmt, können Sie für die Datei role=reader
festlegen, dass ihre Berechtigungsstufe gesenkt wird.
Leistungsspektrum
Die Ressource Permissions bestimmt nicht, ob der aktuelle Nutzer Aktionen für eine Datei oder einen Ordner ausführen kann.
Stattdessen enthält eine Ressource vom Typ Files eine Sammlung boolescher capabilities
-Felder, mit denen angegeben wird, ob eine Aktion für eine Datei oder einen Ordner ausgeführt werden kann. Die Google Drive API legt diese Felder basierend auf der Berechtigungsressource des aktuellen Nutzers fest, die der Datei oder dem Ordner zugeordnet ist.
Wenn sich Alex beispielsweise in Ihrer App anmeldet und versucht, eine Datei freizugeben, wird die Rolle von Alex auf Berechtigungen für die Datei geprüft. Wenn die Rolle die Freigabe einer Datei zulässt, werden die capabilities
für die Datei, z. B. canShare
, relativ zur Rolle ausgefüllt. Wenn Alex die Datei freigeben möchte, prüft Ihre App capabilities
, um sicherzustellen, dass canShare
auf true
gesetzt ist.
Ein Beispiel für das Abrufen der Datei capabilities
finden Sie unter Nutzerberechtigungen überprüfen.
Berechtigung erstellen
Die folgenden beiden Felder sind für das Erstellen einer Berechtigung erforderlich:
type
:type
gibt den Umfang der Berechtigung an (user
,group
,domain
oderanyone
). Eine Berechtigung mittype=user
gilt für einen bestimmten Nutzer, während eine Berechtigung mittype=domain
für alle in einer bestimmten Domain gilt.role
: Das Feldrole
gibt die Vorgänge an, die dertype
ausführen kann. Eine Berechtigung mittype=user
undrole=reader
gewährt beispielsweise einem bestimmten Nutzer Lesezugriff auf die Datei oder den Ordner. Eine Berechtigung mittype=domain
undrole=commenter
ermöglicht es allen Nutzern in der Domain, einer Datei Kommentare hinzuzufügen. Eine vollständige Liste der Rollen und der jeweils 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 einen emailAddress
angeben, um den jeweiligen Nutzer oder die Gruppe mit der Berechtigung zu verknüpfen.
Wenn Sie eine Berechtigung mit type=domain
erstellen, müssen Sie auch ein domain
angeben, um eine bestimmte Domain mit der Berechtigung zu verknüpfen.
So erstellen Sie eine Berechtigung:
- Verwenden Sie die Methode
permissions.create
mit derfileId
für die verknüpfte Datei oder den verknüpften Ordner. - Geben Sie im Anfragetext
type
undrole
an. - Wenn
type=user
odertype=group
, geben Sie 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 wie Abteilungen oder Teams, die Sie Nutzern zur Freigabe ihrer Elemente empfehlen können. Sie können Nutzer dazu ermutigen, Elemente für eine spezifischere oder begrenzte Zielgruppe statt für Ihre gesamte Organisation freizugeben. Mit Zielgruppen können Sie die Sicherheit und den Datenschutz Ihrer Daten verbessern und Nutzern die angemessene Freigabe erleichtern. Weitere Informationen finden Sie unter Zielgruppen.
So verwenden Sie Zielgruppen:
Gehen Sie in der Admin-Konsole zu „Menü“ > Verzeichnis > Zielgruppen.
Für diese Aufgabe müssen Sie mit einem Konto mit Poweruser-Berechtigungen angemeldet sein.
Klicken Sie in der Zielgruppenlisten auf den Namen der Zielgruppe. Informationen zum Erstellen einer Zielgruppe finden Sie unter Zielgruppe erstellen.
Kopieren Sie die eindeutige ID aus der Zielgruppen-URL:
https://admin.google.com/ac/targetaudiences/ID
.Erstellen Sie eine Berechtigung mit
type=domain
und setzen Sie das Felddomain
aufID.audience.googledomains.com
.
Informationen dazu, wie Nutzer mit Zielgruppen interagieren, finden Sie unter Nutzererfahrung bei der Linkfreigabe.
Alle Berechtigungen für eine Datei, einen Ordner oder eine geteilte Ablage abrufen
Verwenden Sie die Methode permissions.list
, um alle Berechtigungen für eine Datei, einen Ordner oder eine geteilte Ablage abzurufen.
Beispiel ansehen
Das folgende Codebeispiel zeigt, wie Sie alle Berechtigungen abrufen. In der Antwort wird eine Liste der Berechtigungen zurückgegeben.
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"
}
]
}
Nutzerberechtigungen überprüfen
Wenn Ihre App eine Datei öffnet, sollte sie die Funktionen der Datei prüfen und die UI so rendern, dass die Berechtigungen des aktuellen Nutzers widergespiegelt werden. Wenn der Nutzer beispielsweise keine canComment
-Funktion für die Datei hat, sollte die Kommentarfunktion in der UI deaktiviert werden.
Weitere Informationen zu capabilities
finden Sie oben im Abschnitt Funktionen.
Rufen Sie zum Prüfen der Funktionen files.get
auf, wobei fileId
und der Parameter fields
auf das Feld capabilities
festgelegt sind. Weitere Informationen zum Zurückgeben von Feldern mit dem Parameter fields
finden Sie unter Bestimmte Felder für eine Datei zurückgeben.
Beispiel ansehen
Das folgende Codebeispiel zeigt, wie Nutzerberechtigungen geprüft werden. In der Antwort wird eine Liste der Funktionen zurückgegeben, die der Nutzer mit der 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 } }
Quelle der Rolle für Dateien und Ordner in geteilten Ablagen 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 in einem Ordner oder der Rolle in einer Datei basieren.
Wenn Sie die Quelle der Rolle für eine geteilte Ablage oder Elemente in dieser Ablage ermitteln möchten, rufen Sie permissions.get
auf. Legen Sie dabei fileId
, permissionId
und fields
auf das Feld permissionDetails
fest. Verwenden Sie permissions.list
mit fileId
, um permissionId
zu finden. Wenn Sie das Feld permissionDetails
in der permissions.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
Das folgende Codebeispiel zeigt, wie Sie die Rollenquelle ermitteln. Die Antwort gibt den permissionDetails
einer Permission
-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
}
]
}
Berechtigungen ändern
Wenn Sie die Berechtigungen für eine Datei oder einen Ordner ändern möchten, können Sie die zugewiesene Rolle ändern:
Rufen Sie
permissions.update
mit derpermissionId
der Berechtigung zum Ändern und derfileId
für die zugehörige Datei, den Ordner oder die geteilte Ablage auf. Verwenden Siepermissions.list
mitfileId
, umpermissionId
zu finden.Geben Sie in der Anfrage den neuen
role
an.
Sie können Berechtigungen für einzelne Dateien oder Ordner in einer geteilten Ablage erteilen, auch wenn der Nutzer oder die Gruppe bereits Mitglied ist. Beispiel: Alex hat role=commenter
als Teil der Mitgliedschaft in einer geteilten Ablage. Ihre App kann Alex jedoch role=writer
für eine Datei in einer geteilten Ablage zuweisen. Da die neue Rolle umfangreicher ist als die durch ihre Mitgliedschaft gewährte Rolle, wird die neue Berechtigung zur effektiven Rolle für die Datei oder den Ordner.
Beispiel ansehen
Das folgende Codebeispiel zeigt, wie Sie die Berechtigungen für eine Datei oder einen Ordner von „Kommentator“ zu „Autor“ ändern. Die Antwort gibt eine Instanz einer Permission
-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"
}
Zugriff auf Dateien oder Ordner widerrufen
Wenn Sie den Zugriff auf eine Datei oder einen Ordner widerrufen möchten, rufen Sie delete
mit fileId
und permissionId
auf, um die Berechtigung zu löschen.
Für Elemente in "Meine Ablage" kann eine übernommene Berechtigung gelöscht werden. Durch das Löschen einer übernommenen Berechtigung wird der Zugriff auf das Element und gegebenenfalls auf untergeordnete Elemente entzogen.
Übernommene Berechtigungen können für Elemente in geteilten Ablagen nicht aufgehoben werden. Aktualisieren oder widerrufen Sie stattdessen die Berechtigung für die übergeordnete Datei oder den übergeordneten Ordner.
Mit dem Vorgang delete
werden auch Berechtigungen gelöscht, die direkt auf eine Datei oder einen Ordner in einer geteilten Ablage angewendet wurden.
Beispiel ansehen
Das folgende Codebeispiel zeigt, wie Sie den Zugriff durch Löschen einer permissionId
widerrufen. Wenn der Vorgang erfolgreich ist, ist der Antworttext leer. Um zu bestätigen, dass die Berechtigung entfernt wird, verwenden Sie permissions.list
mit der fileId
.
Anfrage
DELETE https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
Eigentümerschaft einer Datei auf ein anderes Google Workspace-Konto in derselben Organisation übertragen
Die Eigentümerschaft von Dateien in „Meine Ablage“ kann von einem Google Workspace-Konto auf ein anderes Konto in derselben Organisation übertragen werden. Eine Organisation, der eine geteilte Ablage gehört, sind Eigentümer der darin enthaltenen Dateien. Daher wird die Übertragung der Eigentümerschaft für Dateien und Ordner in geteilten Ablagen nicht unterstützt. Organisatoren einer geteilten Ablage können Elemente aus dieser geteilten Ablage in ihre eigene „Meine Ablage“ verschieben, wodurch die Eigentümerschaft auf sie übertragen wird.
Sie haben folgende Möglichkeiten, die Eigentümerschaft einer Datei in „Meine Ablage“ zu übertragen:
Erstellen Sie eine Dateiberechtigung, mit der einem bestimmten Nutzer (
type=user
) Inhaberzugriff (role=owner
) gewährt wird.Aktualisieren Sie die Berechtigung einer vorhandenen Datei mit
role=owner
und übertragen Sie die Eigentümerschaft auf den angegebenen Nutzer (transferOwnership=true
).
Eigentümerschaft einer Datei von einem Privatnutzerkonto auf ein anderes übertragen
Die Eigentümerschaft an Dateien kann von einem Privatnutzerkonto auf ein anderes übertragen werden. Die Eigentümerschaft einer Datei wird von Drive jedoch erst auf zwei Privatnutzerkonten übertragen, wenn der potenzielle neue Eigentümer der Übertragung ausdrücklich zustimmt. So übertragen Sie die Eigentümerschaft einer Datei von einem Privatnutzerkonto auf ein anderes:
Der aktuelle Inhaber initiiert eine Übertragung der Eigentümerschaft, indem er die Dateiberechtigung des potenziellen neuen Inhabers erstellt oder aktualisiert. Die Berechtigung muss die folgenden Einstellungen enthalten:
role=writer
,type=user
undpendingOwner=true
. Wenn der neue Inhaber eine Berechtigung für den potenziellen Inhaber erstellt, wird der potenzielle neue Inhaber per E-Mail darüber benachrichtigt, dass er die Inhaberschaft der Datei übernehmen soll.Der neue Inhaber akzeptiert die Anfrage zur Übertragung der Eigentümerschaft, indem er eine Dateiberechtigung erstellt oder aktualisiert. Die Berechtigung muss die folgenden Einstellungen enthalten:
role=owner
undtransferOwnership=true
. Wenn der neue Inhaber eine neue Berechtigung erstellt, wird der vorherige Inhaber per E-Mail darüber benachrichtigt, dass die Inhaberschaft übertragen wurde.
Bei der Übertragung einer Datei wird die Rolle des vorherigen Eigentümers auf „writer
“ herabgestuft.
Mehrere Berechtigungen mit Batchanfragen ändern
Wir empfehlen dringend, Batchanfragen zu verwenden, um mehrere Berechtigungen zu ändern.
Im Folgenden finden Sie ein Beispiel für eine Batch-Änderung von Berechtigungen mit einer Clientbibliothek.