Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Namespace: microsoft.graph
Upsert (Erstellen oder Aktualisieren) von bis zu 10 Berechtigungsobjekten für einen fileStorageContainer in einer einzelnen Anforderung. Delta-Patch ermöglicht es dem Aufrufer, mehrere Vorgänge (Erstellen, Aktualisieren) für mehrere Berechtigungen mit einer einzigen Anforderung auszuführen.
Wichtig
Berechtigungen, die einem fileStorageContainer hinzugefügt werden, gelten für alle seine driveItem-Objekte , unabhängig von eindeutigen oder restriktiven Berechtigungen, die auf diese Elemente angewendet werden.
Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.
| Weltweiter Service | US Government L4 | US Government L5 (DOD) | China, betrieben von 21Vianet |
|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ |
Berechtigungen
Wählen Sie die Berechtigungen aus, die für diese API als am wenigsten privilegiert markiert sind. Verwenden Sie eine höhere Berechtigung oder Berechtigungen nur, wenn Ihre App dies erfordert. Ausführliche Informationen zu delegierten Berechtigungen und Anwendungsberechtigungen finden Sie unter Berechtigungstypen. Weitere Informationen zu diesen Berechtigungen finden Sie in der Berechtigungsreferenz.
| Berechtigungstyp | Berechtigungen mit den geringsten Berechtigungen | Berechtigungen mit höheren Berechtigungen |
|---|---|---|
| Delegiert (Geschäfts-, Schul- oder Unikonto) | FileStorageContainer.Selected | FileStorageContainer.Manage.All |
| Delegiert (persönliches Microsoft-Konto) | FileStorageContainer.Selected | Nicht verfügbar. |
| Application | FileStorageContainer.Selected | Nicht verfügbar. |
Zusätzlich zu Den Microsoft Graph-Berechtigungen muss Ihre App auch über die erforderlichen Berechtigungen auf Containertypebene verfügen, um diese API aufzurufen. Ausführliche Informationen zu Containertypen finden Sie unter Containertypen. Weitere Informationen zu Berechtigungen auf Containertypebene finden Sie unter SharePoint Embedded Authorization.
HTTP-Anforderung
PATCH /storage/fileStorage/containers/{containerId}/permissions
Anforderungsheader
| Name | Beschreibung |
|---|---|
| Authorization | Bearer {token}. Erforderlich. Erfahren Sie mehr über Authentifizierung und Autorisierung. |
| Content-Type | application/json. Erforderlich. |
Anforderungstext
Geben Sie im Anforderungstext ein JSON-Objekt mit den folgenden Eigenschaften an.
| Name | Typ | Beschreibung |
|---|---|---|
| @context | Zeichenfolge | OData-Anmerkung, die den Nutzlasttyp identifiziert. Muss auf #$delta festgelegt werden, um einen Delta-Patchvorgang zu signalisieren. Erforderlich. |
| Wert | permission collection | Eine Auflistung von bis zu 10 zu verarbeitenden Berechtigungsobjekten. Erforderlich. |
Jeder Eintrag in der Wertauflistung stellt einen Vorgang für eine Berechtigung dar. Das Vorhandensein der id-Eigenschaft bestimmt, wie der Eintrag interpretiert wird. Fügen Sie die ID einer vorhandenen Berechtigung ein, um sie zu aktualisieren, oder lassen Sie die ID aus, um eine neue Berechtigung zu erstellen.
Jeder Eintrag unterstützt die folgenden Eigenschaften und Anmerkungen:
| Name | Typ | Beschreibung |
|---|---|---|
| id | Zeichenfolge | Die ID der vorhandenen Berechtigung. Wenn die ID vorhanden ist, wird das Element als Update behandelt. Wenn die ID nicht angegeben wird, wird das Element als Erstellungsvorgang behandelt. Optional. |
| grantedToV2 | sharePointIdentitySet | Geben Sie für Benutzertypberechtigungen die Details des Benutzers für diese Berechtigung an. Erforderlich für Erstellungsvorgänge. Geben Sie nicht für Updatevorgänge an. |
| roles | Zeichenfolgenauflistung | Der Typ der zu gewährenden Berechtigung. Mögliche Werte sind: reader, writer, manager, owner. Erforderlich für Erstellungs- und Aktualisierungsvorgänge. |
| @microsoft.graph.conflictBehavior | Zeichenfolge | Ein Anmerkungsparameter, der das Verhalten steuert, wenn die Zielidentität bereits Mitglied des Containers mit einer anderen Rolle ist. Mögliche Werte sind: fail und replace. Der Standardwert ist fail. Gilt nur für Erstellungsvorgänge. Optional. |
Die @microsoft.graph.conflictBehavior-Anmerkung gilt pro Element. Der Standardwert fail führt dazu, dass das Element mit einem Antwortcode pro Element 409 Conflict fehlschlägt. Der Wert replace ersetzt die vorhandene Rolle für die Identität durch die im Element angegebene Rolle, und das Element ist erfolgreich. Jeder andere Wert führt dazu, dass das Element mit einem Antwortcode pro Element 400 Bad Request fehlschlägt.
Updateelemente dürfen keine anderen Eigenschaften als ID und Rollen enthalten. Die Roles-Eigenschaft ist erforderlich. Elemente, die gegen eine der beiden Regeln verstoßen, schlagen mit einem Antwortcode pro Element 400 Bad Request fehl.
Antwort
Wenn die Methode erfolgreich verläuft, werden der 200 OK Antwortcode und eine Auflistung von Berechtigungsobjekten im Antworttext zurückgegeben. Berechtigungen, die erfolgreich verarbeitet werden, enthalten ein Berechtigungsobjekt . Zu den fehlerhaften Elementen gehört eine @Core.DataModificationException-Anmerkung mit Fehlerdetails.
Diese API gibt möglicherweise auch die folgenden Fehlerantwortcodes für die gesamte Anforderung zurück:
| HTTP-Code | Beschreibung |
|---|---|
| 400 | Ungültige Anforderung. |
| 401 | Für die Anforderung fehlen gültige Anmeldeinformationen für die Authentifizierung. |
| 403 | Die angegebenen Anmeldeinformationen für die Authentifizierung sind gültig, reichen aber nicht aus, um den angeforderten Vorgang auszuführen. Beispielszenarien: Die aufrufende App verfügt nicht über die Berechtigung zum Verwalten von Berechtigungen für Container dieses Typs, oder der aufrufende Benutzer hat keine Berechtigungen für diesen Container instance, oder seine Rolle lässt keine Containerberechtigungsverwaltung zu. |
| 404 | Der Container ist nicht vorhanden. |
| 423 | Der Container ist gesperrt. Beispielsweise wird der Container archiviert. |
Beispiele
Anforderung
Das folgende Beispiel zeigt eine einzelne Delta-Patchanforderung, die Erstellungs- und Aktualisierungselemente in einem Aufruf kombiniert. Elemente ohne ID werden als Erstellungsvorgänge behandelt. Elemente mit einer ID werden als Aktualisierungsvorgänge behandelt. Elemente, die fehlschlagen, werden inline mit einer @Core.DataModificationException-Anmerkung gemeldet. Die verbleibenden Elemente sind weiterhin erfolgreich.
PATCH https://graph.microsoft.com/v1.0/storage/fileStorage/containers/b!ISJs1WRro0y0EWgkUYcktDa0mE8zSlFEqFzqRn70Zwp1CEtDEBZgQICPkRbil_5Z/permissions
Content-Type: application/json
{
"@context": "#$delta",
"value": [
{
"roles": ["reader"],
"grantedToV2": {
"user": {
"userPrincipalName": "alex@contoso.com"
}
}
},
{
"@microsoft.graph.conflictBehavior": "replace",
"roles": ["writer"],
"grantedToV2": {
"user": {
"userPrincipalName": "kate@contoso.com"
}
}
},
{
"roles": ["owner"],
"grantedToV2": {
"user": {
"userPrincipalName": "mike@contoso.com"
}
}
},
{
"id": "X2k6MCMuZnxtZW1iZXJzaGlwfGFsZXhAY29udG9zby5jb20",
"roles": ["manager"]
},
{
"id": "X2k6MCMuZnxtZW1iZXJzaGlwfG5vdGFmb3VuZEBjb250b3NvLmNvbQ",
"roles": ["manager"]
}
]
}
Antwort
Das folgende Beispiel zeigt die Antwort. Die ersten beiden Erstellungselemente sind erfolgreich (das zweite Element ersetzt die vorhandene Rolle für den Zielbenutzer). Das dritte Erstellungselement schlägt fehl, da die Identität bereits ein Mitglied des Containers mit einer anderen Rolle ist. Das erste Updateelement ist erfolgreich; die zweite schlägt fehl, da keine Berechtigung mit dieser ID vorhanden ist.
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#storage/fileStorage/containers('b%21ISJs1WRro0y0EWgkUYcktDa0mE8zSlFEqFzqRn70Zwp1CEtDEBZgQICPkRbil_5Z')/permissions/$delta",
"value": [
{
"id": "X2k6MCMuZnxtZW1iZXJzaGlwfGFsZXhAY29udG9zby5jb20",
"roles": [
"reader"
],
"grantedToV2": {
"user": {
"displayName": "Alex Wilson",
"id": "1a2b3c4d-1111-2222-3333-444455556666",
"userPrincipalName": "alex@contoso.com"
}
}
},
{
"id": "X2k6MCMuZnxtZW1iZXJzaGlwfGthdGVAY29udG9zby5jb20",
"roles": [
"writer"
],
"grantedToV2": {
"user": {
"displayName": "Kate Brown",
"id": "2b3c4d5e-2222-3333-4444-555566667777",
"userPrincipalName": "kate@contoso.com"
}
}
},
{
"@Core.DataModificationException": {
"@odata.type": "#Org.OData.Core.V1.DataModificationExceptionType",
"failedOperation": "Create",
"responseCode": 409,
"info": {
"code": "Conflict",
"message": "Conflict: this identity is a [Reader] member of the container and cannot be added to the [Owner] role."
}
},
"id": "00000000-0000-0000-0000-000000000000",
"roles": [
"owner"
],
"grantedToV2": {
"user": {
"userPrincipalName": "mike@contoso.com"
}
}
},
{
"id": "X2k6MCMuZnxtZW1iZXJzaGlwfGFsZXhAY29udG9zby5jb20",
"roles": [
"manager"
],
"grantedToV2": {
"user": {
"displayName": "Alex Wilson",
"id": "1a2b3c4d-1111-2222-3333-444455556666",
"userPrincipalName": "alex@contoso.com"
}
}
},
{
"@Core.DataModificationException": {
"@odata.type": "#Org.OData.Core.V1.DataModificationExceptionType",
"failedOperation": "Update",
"responseCode": 404,
"info": {
"code": "NotFound",
"message": "Item not found."
}
},
"id": "X2k6MCMuZnxtZW1iZXJzaGlwfG5vdGFmb3VuZEBjb250b3NvLmNvbQ"
}
]
}