permission: grant
Namespace: microsoft.graph
Gewähren Sie Benutzern Zugriff auf einen Link, der durch eine Berechtigung dargestellt wird.
Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.
Globaler Dienst | US Government L4 | US Government L5 (DOD) | China, betrieben von 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
Berechtigungen
Wählen Sie für diese API die Als am wenigsten privilegierten Berechtigungen gekennzeichneten Berechtigungen aus. Verwenden Sie nur dann eine Berechtigung mit höheren Berechtigungen , wenn dies für Ihre App erforderlich ist. 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) | Files.ReadWrite | Files.ReadWrite.All, Sites.ReadWrite.All |
Delegiert (persönliches Microsoft-Konto) | Nicht unterstützt | Nicht unterstützt |
Anwendung | Files.ReadWrite.All | Sites.ReadWrite.All |
HTTP-Anforderung
POST /shares/{encoded-sharing-url}/permission/grant
Pfadparameter
Parametername | Wert | Beschreibung |
---|---|---|
encoded-sharing-url | string |
Erforderlich. Eine ordnungsgemäß codierte Freigabe-URL. |
Codieren von Freigabe-URLs
Verwenden Sie zum Codieren einer Freigabe-URL die folgende Logik:
- Als Erstes codieren Sie die URL mithilfe von Base64.
- Konvertieren Sie das Base64-codierte Ergebnis in das base64url-Format ohne Füllzeichen, indem Sie
=
-Zeichen vom Ende des Werts entfernen und/
durch_
sowie+
durch-
ersetzen. - Fügen Sie
u!
an den Anfang der Zeichenfolge an.
Beispiel für die Codierung einer URL in C#:
string sharingUrl = "https://onedrive.live.com/redir?resid=1231244193912!12&authKey=1201919!12921!1";
string base64Value = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(sharingUrl));
string encodedUrl = "u!" + base64Value.TrimEnd('=').Replace('/','_').Replace('+','-');
Anforderungsheader
Name | Beschreibung |
---|---|
Authorization | Bearer {token}. Erforderlich. Erfahren Sie mehr über die Authentifizierung und Autorisierung. |
Anforderungstext
Geben Sie im Anforderungstext ein JSON-Objekt mit den folgenden Parametern an.
{
"recipients": [
{ "@odata.type": "microsoft.graph.driveRecipient" }
],
"roles": [ "read | write"]
}
Parameter | Typ | Beschreibung |
---|---|---|
recipients | Collection(driveRecipient) | Eine Sammlung von Empfängern, die Zugriff erhalten. |
roles | Collection(String) | Wenn der Link ein "vorhandener Zugriffslink" ist, gibt rollen an, die den Benutzern gewährt werden sollen. Andernfalls muss die Rolle des Links übereinstimmen. |
Eine Liste der verfügbaren Rollen finden Sie unter Rolleneigenschaftenwerte.
Antwort
Wenn die Methode erfolgreich verläuft, werden der 200 OK
Antwortcode und eine Berechtigungsauflistung im Antworttext zurückgegeben.
Bei Erfolg wird im Resultset immer eine Berechtigung zurückgegeben, die den aktualisierten Link darstellt. Der aktualisierte Link kann durch das Vorhandensein eines "Link"-Facets identifiziert werden, das die Eigenschaft "scope" enthält. In einigen Fällen kann es möglich sein, dass der aktualisierte Link eine andere URL als der ursprüngliche Link hat. In diesem Fall sollte die neue URL verwendet werden.
Weitere Informationen dazu, wie Fehler zurückgegeben werden, finden Sie im Thema Fehlerantworten.
Beispiel
In diesem Beispiel wird den Benutzern john@contoso.com und ryan@external.com Zugriff auf einen Freigabelink gewährt, ohne andere vorhandene Berechtigungen für den Link zu ändern.
Anforderung
POST https://graph.microsoft.com/v1.0/shares/{encoded-sharing-url}/permission/grant
Content-type: application/json
{
"recipients": [
{
"email": "john@contoso.com"
},
{
"email": "ryan@external.com"
}
],
"roles": ["read"]
}
Antwort
HTTP/1.1 200 OK
Content-type: application/json
{
"value": [
{
"hasPassword": false,
"id": "5fab944a-47ec-48d0-a9b5-5178a926d00f",
"link": {
"preventsDownload": false,
"scope": "users",
"type": "view",
"webUrl": "https://contoso.sharepoint.com/:t:/g/design/EZexPoDjW4dMtKFUfAl6BK4BvIUuss52hLYzihBfx-PD6Q"
},
"roles": [
"read"
]
}
]
}
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.
Wenn es sich bei dem Link um einen vorhandenen Zugriffslink handelt, werden zusätzliche Berechtigungen zurückgegeben, die Folgendes darstellen:
- Benutzertypberechtigungen, die Empfänger darstellen, denen der Zugriff erfolgreich gewährt wurde. Diese können durch das Vorhandensein der grantedTo-Eigenschaft identifiziert werden.
- Linktypberechtigungen, die Einladungen darstellen, die an unbekannte externe Benutzer gesendet werden müssen, damit diese Zugriff erhalten. Diese können durch das Vorhandensein eines Einladungsfacets identifiziert werden. Diese Einträge enthalten einen Link mit der Einladungs-URL, und die grantedToIdentities-Sammlung gibt die Benutzer an, an die der Link gesendet werden soll.
HTTP/1.1 200 OK
Content-type: application/json
{
"value": [
{
"hasPassword": false,
"id": "00000000-0000-0000-0000-000000000000",
"link": {
"preventsDownload": false,
"scope": "existingAccess",
"type": "view",
"webUrl": "https://contoso.sharepoint.com/teams/design/shareddocs/Document.docx"
},
"roles": [
"read"
]
},
{
"grantedTo": {
"user": {
"displayName": "John Smith",
"email": "john@contoso.com",
"id": "47aecee2-d061-4730-8ecb-4c61360441ae"
}
},
"id": "aTowIy5mfG1lbWJlcnNoaXB8bGltaXRlZDJAa2xhbW9kYi5vbm1pY3Jvc29mdC5jb20",
"roles": [
"read"
]
},
{
"grantedToIdentities": [
{
"user": {
"email": "ryan@external.com"
}
}
],
"invitation": {
"signInRequired": true
},
"roles": [
"read"
],
"link": {
"type": "view",
"webUrl": "https://contoso.sharepoint.com/:t:/g/teams/design/EZexPoDjW4dMtKFUfAl6BK4Bw_F7gFH63O310A7lDtK0mQ"
}
}
]
}
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.