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:

  1. Als Erstes codieren Sie die URL mithilfe von Base64.
  2. 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.
  3. 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.