Namespace: microsoft.graph
Importante
As APIs na versão /beta no Microsoft Graph estão sujeitas a alterações. Não há suporte para o uso dessas APIs em aplicativos de produção. Para determinar se uma API está disponível na v1.0, use o seletor Versão.
Crie um novo objeto de permissão num driveItem.
Importante
Esta API tem as seguintes restrições:
- Para o OneDrive para trabalho ou escola e o SharePoint Online, só pode utilizar este método para criar uma nova permissão de aplicação. Se quiser criar uma nova permissão de utilizador num driveItem, consulte Convidar. Para obter mais informações sobre as permissões da aplicação, consulte Descrição geral das permissões selecionadas no OneDrive e no SharePoint.
- Para o SharePoint Embedded, só pode utilizar este método para criar uma nova permissão do sharePointGroup com acesso apenas à aplicação. Não pode criar uma permissão no item de raiz de um contentor.
Esta API está disponível nas seguintes implementações de cloud nacionais.
| Serviço global |
US Government L4 |
US Government L5 (DOD) |
China operada pela 21Vianet |
| ✅ |
✅ |
✅ |
✅ |
Permissões
Escolha a permissão ou permissões marcadas como menos privilegiadas para esta API. Utilize uma permissão ou permissões com privilégios mais elevados apenas se a sua aplicação o exigir. Para obter detalhes sobre as permissões delegadas e de aplicação, veja Tipos de permissão. Para saber mais sobre estas permissões, veja a referência de permissões.
| Tipo de permissão |
Permissões com menos privilégios |
Permissões com privilégios superiores |
| Delegado (conta corporativa ou de estudante) |
Files.ReadWrite |
Files.ReadWrite.All, Files.SelectedOperations.Selected, Sites.ReadWrite.All, Sites.FullControl.All, Sites.Manage.All, Sites.Selected, Lists.SelectedOperations.Selected, ListItems.SelectedOperations.Selected |
| Delegado (conta pessoal da Microsoft) |
Files.ReadWrite |
Files.ReadWrite.All |
| Aplicativo |
Files.ReadWrite.All |
Sites.FullControl.All, Sites.Manage.All, Sites.ReadWrite.All, Sites.Selected, Files.SelectedOperations.Selected, Lists.SelectedOperations.Selected, ListItems.SelectedOperations.Selected |
Solicitação HTTP
POST /drives/{drive-id}/items/{item-id}/permissions
POST /groups/{group-id}/drive/items/{item-id}/permissions
POST /me/drive/items/{item-id}/permissions
POST /sites/{siteId}/drive/items/{itemId}/permissions
POST /users/{userId}/drive/items/{itemId}/permissions
| Nome |
Descrição |
| Autorização |
{token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização. |
| Content-Type |
application/json. Obrigatório. |
Corpo da solicitação
No corpo do pedido, forneça uma representação JSON do objeto de permissão .
Importante
- Esta API só aceita
grantedToV2 como entrada para o objeto de permissão . Outras propriedades, como grantedToIdentitiesV2 ou as preteridas grantedTo e grantedToIdentities não são aceites.
- Para o SharePoint Embedded, ao criar uma nova permissão do sharePointGroup , o corpo do pedido tem de incluir o
id e displayName do sharePointGroup referenciado na grantedToV2.siteGroup propriedade . Veja Exemplo 2.
Resposta
Se for bem-sucedido, este método devolve um 201 Created código de resposta e um objeto de permissão no corpo da resposta.
Exemplos
Exemplo 1: Adicionar uma permissão de aplicação a um driveItem no OneDrive ou no SharePoint Online
O exemplo seguinte mostra como adicionar uma writepermissão para a aplicaçãoContoso Time Manager App identificada por 89ea5c94-7736-4e25-95ad-3fa95f62b66e, num driveItem identificado por 01V4EPHZNV2OJQJNBPWNCKDTXCQ5TSVBJU numa unidade identificada por b!s8RqPCGh0ESQS2EYnKM0IKS3lM7GxjdAviiob7oc5pXv_0LiL-62Qq3IXyrXnEop.
Solicitação
O exemplo a seguir mostra uma solicitação.
POST https://graph.microsoft.com/beta/drives/b!s8RqPCGh0ESQS2EYnKM0IKS3lM7GxjdAviiob7oc5pXv_0LiL-62Qq3IXyrXnEop/items/01V4EPHZNV2OJQJNBPWNCKDTXCQ5TSVBJU/permissions
Content-Type: application/json
{
"grantedToV2": {
"application": {
"id": "89ea5c94-7736-4e25-95ad-3fa95f62b66e"
}
},
"roles": ["write"]
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new Permission
{
GrantedToIdentitiesV2 = new SharePointIdentitySet
{
Application = new Identity
{
Id = "89ea5c94-7736-4e25-95ad-3fa95f62b66e",
DisplayName = "Contoso Time Manager App",
},
},
Roles = new List<string>
{
"write",
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Drives["{drive-id}"].Items["{driveItem-id}"].Permissions.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewPermission()
grantedToIdentitiesV2 := graph.NewSharePointIdentitySet()
application := graphmodels.NewIdentity()
id := "89ea5c94-7736-4e25-95ad-3fa95f62b66e"
application.SetId(&id)
displayName := "Contoso Time Manager App"
application.SetDisplayName(&displayName)
grantedToIdentitiesV2.SetApplication(application)
requestBody.SetGrantedToIdentitiesV2(grantedToIdentitiesV2)
roles := []string {
"write",
}
requestBody.SetRoles(roles)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
permissions, err := graphClient.Drives().ByDriveId("drive-id").Items().ByDriveItemId("driveItem-id").Permissions().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Permission permission = new Permission();
SharePointIdentitySet grantedToIdentitiesV2 = new SharePointIdentitySet();
Identity application = new Identity();
application.setId("89ea5c94-7736-4e25-95ad-3fa95f62b66e");
application.setDisplayName("Contoso Time Manager App");
grantedToIdentitiesV2.setApplication(application);
permission.setGrantedToIdentitiesV2(grantedToIdentitiesV2);
LinkedList<String> roles = new LinkedList<String>();
roles.add("write");
permission.setRoles(roles);
Permission result = graphClient.drives().byDriveId("{drive-id}").items().byDriveItemId("{driveItem-id}").permissions().post(permission);
const options = {
authProvider,
};
const client = Client.init(options);
const permission = {
grantedToIdentitiesV2: {
application: {
id: '89ea5c94-7736-4e25-95ad-3fa95f62b66e',
displayName: 'Contoso Time Manager App'
}
},
roles: ['write']
};
await client.api('/drives/b!s8RqPCGh0ESQS2EYnKM0IKS3lM7GxjdAviiob7oc5pXv_0LiL-62Qq3IXyrXnEop/items/1/permissions')
.version('beta')
.post(permission);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\Permission;
use Microsoft\Graph\Beta\Generated\Models\Identity;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new Permission();
$grantedToIdentitiesV2 = new SharePointIdentitySet();
$grantedToIdentitiesV2Application = new Identity();
$grantedToIdentitiesV2Application->setId('89ea5c94-7736-4e25-95ad-3fa95f62b66e');
$grantedToIdentitiesV2Application->setDisplayName('Contoso Time Manager App');
$grantedToIdentitiesV2->setApplication($grantedToIdentitiesV2Application);
$requestBody->setGrantedToIdentitiesV2($grantedToIdentitiesV2);
$requestBody->setRoles(['write', ]);
$result = $graphServiceClient->drives()->byDriveId('drive-id')->items()->byDriveItemId('driveItem-id')->permissions()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Files
$params = @{
grantedToIdentitiesV2 = @{
application = @{
id = "89ea5c94-7736-4e25-95ad-3fa95f62b66e"
displayName = "Contoso Time Manager App"
}
}
roles = @(
"write"
)
}
New-MgBetaDriveItemPermission -DriveId $driveId -DriveItemId $driveItemId -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.permission import Permission
from msgraph_beta.generated.models.identity import Identity
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Permission(
granted_to_identities_v2 = SharePointIdentitySet(
application = Identity(
id = "89ea5c94-7736-4e25-95ad-3fa95f62b66e",
display_name = "Contoso Time Manager App",
),
),
roles = [
"write",
],
)
result = await graph_client.drives.by_drive_id('drive-id').items.by_drive_item_id('driveItem-id').permissions.post(request_body)
Resposta
O exemplo a seguir mostra a resposta.
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "aTowaS50fG1zLnNwLmV4dHw4OWVhNWM5NC03NzM2LTRlMjUtOTVhZC0zZmE5NWY2MmI2NmVAZDljZTBmYzEtNjFkOC00YTJlLWI1ZDMtMTg3NzBkZjA2NzJj",
"roles": [
"write"
],
"grantedTo": {
"application": {
"id": "89ea5c94-7736-4e25-95ad-3fa95f62b66e",
"displayName": "Contoso Time Manager App"
}
},
"grantedToV2": {
"application": {
"id": "89ea5c94-7736-4e25-95ad-3fa95f62b66e",
"displayName": "Contoso Time Manager App"
}
}
}
Exemplo 2: Adicionar uma permissão de grupo do SharePoint a um driveItem num contentor do SharePoint Embedded
O exemplo seguinte mostra como adicionar uma writepermissão para o Internal CollaboratorssharePointGroup num driveItem identificado por 01V4EPHZNV2OJQJNBPWNCKDTXCQ5TSVBJU num ficheiro SharePoint EmbeddedStorageContainer identificado por b!s8RqPCGh0ESQS2EYnKM0IKS3lM7GxjdAviiob7oc5pXv_0LiL-62Qq3IXyrXnEop.
Solicitação
O exemplo a seguir mostra uma solicitação.
POST https://graph.microsoft.com/beta/drives/b!s8RqPCGh0ESQS2EYnKM0IKS3lM7GxjdAviiob7oc5pXv_0LiL-62Qq3IXyrXnEop/items/01V4EPHZNV2OJQJNBPWNCKDTXCQ5TSVBJU/permissions
Content-Type: application/json
{
"grantedToV2": {
"siteGroup": {
"id": "10",
"displayName": "Internal Collaborators"
}
},
"roles": ["write"]
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new Permission
{
GrantedToIdentitiesV2 = new SharePointIdentitySet
{
SiteGroup = new SharePointIdentity
{
Id = "10",
DisplayName = "Internal Collaborators",
},
},
Roles = new List<string>
{
"write",
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Drives["{drive-id}"].Items["{driveItem-id}"].Permissions.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewPermission()
grantedToIdentitiesV2 := graph.NewSharePointIdentitySet()
siteGroup := graphmodels.NewSharePointIdentity()
id := "10"
siteGroup.SetId(&id)
displayName := "Internal Collaborators"
siteGroup.SetDisplayName(&displayName)
grantedToIdentitiesV2.SetSiteGroup(siteGroup)
requestBody.SetGrantedToIdentitiesV2(grantedToIdentitiesV2)
roles := []string {
"write",
}
requestBody.SetRoles(roles)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
permissions, err := graphClient.Drives().ByDriveId("drive-id").Items().ByDriveItemId("driveItem-id").Permissions().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Permission permission = new Permission();
SharePointIdentitySet grantedToIdentitiesV2 = new SharePointIdentitySet();
SharePointIdentity siteGroup = new SharePointIdentity();
siteGroup.setId("10");
siteGroup.setDisplayName("Internal Collaborators");
grantedToIdentitiesV2.setSiteGroup(siteGroup);
permission.setGrantedToIdentitiesV2(grantedToIdentitiesV2);
LinkedList<String> roles = new LinkedList<String>();
roles.add("write");
permission.setRoles(roles);
Permission result = graphClient.drives().byDriveId("{drive-id}").items().byDriveItemId("{driveItem-id}").permissions().post(permission);
const options = {
authProvider,
};
const client = Client.init(options);
const permission = {
grantedToIdentitiesV2: {
siteGroup: {
id: '10',
displayName: 'Internal Collaborators'
}
},
roles: ['write']
};
await client.api('/drives/b!s8RqPCGh0ESQS2EYnKM0IKS3lM7GxjdAviiob7oc5pXv_0LiL-62Qq3IXyrXnEop/items/1/permissions')
.version('beta')
.post(permission);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\Permission;
use Microsoft\Graph\Beta\Generated\Models\SharePointIdentity;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new Permission();
$grantedToIdentitiesV2 = new SharePointIdentitySet();
$grantedToIdentitiesV2SiteGroup = new SharePointIdentity();
$grantedToIdentitiesV2SiteGroup->setId('10');
$grantedToIdentitiesV2SiteGroup->setDisplayName('Internal Collaborators');
$grantedToIdentitiesV2->setSiteGroup($grantedToIdentitiesV2SiteGroup);
$requestBody->setGrantedToIdentitiesV2($grantedToIdentitiesV2);
$requestBody->setRoles(['write', ]);
$result = $graphServiceClient->drives()->byDriveId('drive-id')->items()->byDriveItemId('driveItem-id')->permissions()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Files
$params = @{
grantedToIdentitiesV2 = @{
siteGroup = @{
id = "10"
displayName = "Internal Collaborators"
}
}
roles = @(
"write"
)
}
New-MgBetaDriveItemPermission -DriveId $driveId -DriveItemId $driveItemId -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.permission import Permission
from msgraph_beta.generated.models.share_point_identity import SharePointIdentity
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Permission(
granted_to_identities_v2 = SharePointIdentitySet(
site_group = SharePointIdentity(
id = "10",
display_name = "Internal Collaborators",
),
),
roles = [
"write",
],
)
result = await graph_client.drives.by_drive_id('drive-id').items.by_drive_item_id('driveItem-id').permissions.post(request_body)
Resposta
O exemplo a seguir mostra a resposta.
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "aTowaS50fG1zLnNwLmV4dHwxMEBkOWNlMGZjMS02MWQ4LTRhMmUtYjVkMy0xODc3MGRmMDY3MmM=",
"roles": [
"write"
],
"grantedToV2": {
"siteGroup": {
"id": "10",
"displayName": "Internal Collaborators"
}
},
"grantedTo": {
"siteGroup": {
"id": "10",
"displayName": "Internal Collaborators"
}
}
}