Partager via


autorisation : accorder

Espace de noms: microsoft.graph

Accordez aux utilisateurs l’accès à un lien représenté par une autorisation.

Cette API est disponible dans les déploiements de cloud national suivants.

Service global Gouvernement des États-Unis L4 Us Government L5 (DOD) Chine gérée par 21Vianet

Autorisations

Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations.

Type d’autorisation Autorisations avec privilèges minimum Autorisations privilégiées plus élevées
Déléguée (compte professionnel ou scolaire) Files.ReadWrite Files.ReadWrite.All, Sites.ReadWrite.All
Déléguée (compte Microsoft personnel) Non prise en charge. Non prise en charge.
Application Files.ReadWrite.All Sites.ReadWrite.All

Requête HTTP

POST /shares/{encoded-sharing-url}/permission/grant

Paramètres du chemin d’accès

Nom de paramètre Valeur Description
encoded-sharing-url string Obligatoire. URL de partage correctement codée.

Codage des URL de partage

Pour coder une URL de partage, suivez la logique suivante :

  1. Tout d’abord, utilisez base 64 pour encoder l’URL.
  2. Convertissez le résultat encodé en base 64 au format base64url non complété : supprimez les caractères = de la fin de la valeur, remplacez / par _ et + par -.
  3. Ajoutez u! au début de la chaîne.

Par exemple, pour coder une URL en 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('+','-');

En-têtes de demande

Nom Description
Autorisation Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation.

Corps de la demande

Dans le corps de la demande, indiquez un objet JSON avec les paramètres suivants.

{
  "recipients": [
    { "@odata.type": "microsoft.graph.driveRecipient" }
  ],
  "roles": [ "read | write"]
}
Paramètre Type Description
destinataires Collection(driveRecipient) Collection de destinataires qui recevront l’accès.
roles Collection(String) Si le lien est un lien « accès existant », spécifie les rôles à accorder aux utilisateurs. Sinon, doit correspondre au rôle du lien.

Pour obtenir la liste des rôles disponibles, consultez Valeurs des propriétés de rôles.

Réponse

Si elle réussit, cette méthode renvoie un 200 OK code de réponse et une collection d’autorisations dans le corps de la réponse.

Une autorisation représentant le lien mis à jour est toujours retournée dans le jeu de résultats en cas de réussite. Le lien mis à jour peut être identifié par la présence d’une facette « link » contenant la propriété « scope ». Dans certains cas, il peut être possible que le lien mis à jour ait une URL différente de celle du lien d’origine, auquel cas la nouvelle URL doit être utilisée.

Pour plus d’informations sur la façon dont les erreurs sont renvoyées, consultez Réponses d’erreur.

Exemple

Cet exemple accorde aux utilisateurs john@contoso.com et ryan@external.com l’accès à un lien de partage sans modifier d’autres autorisations existantes sur le lien.

Demande

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"]
}

Réponse

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"
      ]
    }
  ]
}

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

Si le lien est un lien d’accès existant , des autorisations supplémentaires sont retournées représentant les éléments suivants :

  • Autorisations de type utilisateur représentant les destinataires auxquels l’accès a été correctement accordé. Ceux-ci peuvent être identifiés par la présence de la propriété grantedTo .
  • Autorisations de type lien représentant des invitations qui doivent être envoyées à des utilisateurs externes non reconnus pour qu’ils puissent y accéder. Ceux-ci peuvent être identifiés par la présence d’une facette d’invitation . Ces entrées contiennent un lien avec l’URL de l’invitation, et la collection grantedToIdentities indique les utilisateurs auxquels le lien doit être envoyé.
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"
      }
    }
  ]
}

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.