Registrieren von Anwendungsberechtigungen vom Typ "Dateispeichercontainer"
Damit eine SharePoint Embedded-Anwendung mit Containern in einem nutzenden Mandanten interagieren kann, muss der Containertyp zuerst im nutzenden Mandanten registriert werden. Die Containertypregistrierung erfolgt, wenn die besitzende Anwendung die Registrierungs-API aufruft, um anzugeben, welche Berechtigungen für ihren Containertyp ausgeführt werden können. Die Registrierungs-API gewährt auch Zugriff auf andere Gast-Apps, um mit den Containern der besitzenden Anwendung zu interagieren. Eine SharePoint Embedded-Anwendung kann z. B. Berechtigungen für eine andere Anwendung erteilen– einer Gast-App, damit die Gast-App Sicherungsvorgänge für ihre Container ausführen kann.
Da die Registrierungs-API die Berechtigungen steuert, die eine SharePoint Embedded-Anwendung für den Container im nutzenden Mandanten ausführen kann, sollte dieser Aufruf eine der ersten aufgerufenen APIs sein. Wenn dies nicht der Vorgang ist, führt dies zu Fehlern beim Aufrufen anderer APIs für den Container und/oder den Inhalt in den Containern.
Es gibt keine Einschränkungen, wie oft die Registrierungs-API aufgerufen werden kann. Wie oft die Registrierungs-API aufgerufen wird und wann sie aufgerufen wird, hängt von der SharePoint Embedded-Anwendung ab. Der letzte erfolgreiche Aufruf der Registrierungs-API bestimmt jedoch die Einstellungen, die im nutzenden Mandanten verwendet werden.
Hinweis
Nur die besitzende Anwendung des Containertyps kann die Registrierungs-API im nutzenden Mandanten aufrufen.
Die Registrierungs-API ist KEIN Graph-API und kann nur mit einer AppOnly und einem zertifikatbasierten Zugriffstoken aufgerufen werden. Erfahren Sie mehr über die Authentifizierung.
Containertypberechtigungen
Die Registrierungs-API bestimmt, welche Berechtigungen eine SharePoint Embedded-Anwendung für Container und Inhalte in Containern für den angegebenen Containertyp ausführen kann.
Berechtigung | Beschreibung |
---|---|
Keine | Verfügt über keine Berechtigungen für Container oder Inhalte dieses Containertyps. |
ReadContent | Kann Den Inhalt von Containern dieses Containertyps lesen. |
WriteContent | Kann Inhalte für diesen Containertyp in Container schreiben. Diese Berechtigung kann ohne die ReadContent-Berechtigung nicht erteilt werden. |
Erstellen | Kann Container dieses Containertyps erstellen. |
Löschen | Kann Container dieses Containertyps löschen. |
Lesen | Kann die Metadaten von Containern dieses Containertyps lesen. |
Schreiben | Kann die Metadaten von Containern dieses Containertyps aktualisieren. |
EnumeratePermissions | Kann die Member eines Containers und deren Rollen für Container dieses Containertyps auflisten. |
AddPermissions | Kann dem Container für Container dieses Containertyps Member hinzufügen. |
UpdatePermissions | Kann vorhandene Mitgliedschaften im Container für Container dieses Containertyps aktualisieren (ändern). |
DeletePermissions | Kann andere Member (aber nicht selbst) aus dem Container für Container dieses Containertyps löschen. |
DeleteOwnPermissions | Kann die eigene Mitgliedschaft aus dem Container für Container dieses Containertyps entfernen. |
ManagePermissions | Kann Mitglieder in den Containerrollen für Container dieses Containertyps hinzufügen, entfernen (einschließlich selbst) oder aktualisieren. |
Vollständig | Verfügt über alle Berechtigungen für Container dieses Containertyps. |
HTTP-Anforderung
PUT {RootSiteUrl}/_api/v2.1/storageContainerTypes/{containerTypeId}/applicationPermissions
Hinweis
Dies ist KEIN Graph-API
{RootSiteURL}
ist die SharePoint-URL des Nutzens des Mandanten. Beispiel: https://contoso.sharepoint.com.
Anforderungstext
Geben Sie im Anforderungstext eine JSON-Darstellung der Containertypberechtigungen für die SharePoint Embedded-Anwendungen an.
Antwort
Bei erfolgreicher Ausführung gibt die Methode einen 200 OK
Antwortcode und die Containertypberechtigungen zurück, die für die SharePoint Embedded-Anwendungen im Antworttext konfiguriert sind.
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. Beispiele: Die aufrufende App ist nicht die besitzereigene App des Containertyps. |
404 | Der Containertyp ist nicht vorhanden. |
Beispiele
Registrieren des Containertyps in einem verbrauchenden Mandanten
Registrieren Sie den Containertyp im nutzenden Mandanten, und gewähren Sie der besitzenden Anwendung (AppId 71392b2f-1765-406e-86af-5907d9bdb2ab) vollständige Berechtigungen für delegierte und AppOnly-Aufrufe.
Anforderung
PUT {RootSiteUrl}/_api/v2.1/storageContainerTypes/{containerTypeId}/applicationPermissions
Content-Type: application/json
{
"value": [
{
"appId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
"delegated": ["full"],
"appOnly": ["full"]
}
]
}
Antwort
HTTP/1.1 200 OK
Content-type: application/json
{
"value": [
{
"appId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
"delegated": ["full"],
"appOnly": ["full"]
}
]
}
Registrieren des Containertyps in einem Nutzen-Mandanten mit Berechtigungen für eine Gast-App
Registrieren Sie den Containertyp im nutzenden Mandanten, und gewähren Sie der besitzenden Anwendung (AppId 71392b2f-1765-406e-86af-5907d9bdb2ab) vollständige Berechtigungen für delegierte und AppOnly-Aufrufe. Darüber hinaus gewähren Sie einer Gast-App (AppId 89ea5c94-7736-4e25-95ad-3fa95f62b6) Lese- und Schreibberechtigungen nur für delegierte Aufrufe.
Anforderung
PUT /storagecontainerTypes/{containerTypeId}/applicationPermissions
Content-Type: application/json
{
"value": [
{
"appId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
"delegated": ["full"],
"appOnly": ["full"]
},
{
"appId": "89ea5c94-7736-4e25-95ad-3fa95f62b6",
"delegated": [read", "write"],
"appOnly": ["none"]
}
]
}
Antwort
HTTP/1.1 200 OK
Content-type: application/json
{
"value": [
{
"appId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
"delegated": ["full"],
"appOnly": ["read"]
},
{
"appId": "89ea5c94-7736-4e25-95ad-3fa95f62b6",
"delegated": ["read", "write"],
"appOnly": ["none"]
}
]
}