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 :
- Tout d’abord, utilisez base 64 pour encoder l’URL.
- 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-
. - 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é.