Compartilhar via


Registar permissões de aplicação do tipo contentor de armazenamento de ficheiros

Para que uma aplicação Do SharePoint Embedded interaja com contentores num inquilino consumidor, o tipo de contentor tem primeiro de ser registado no inquilino que consome. O registo do tipo de contentor ocorre quando a aplicação proprietária invoca a API de registo para especificar as permissões que podem ser efetuadas no respetivo tipo de contentor. A API de registo também concede acesso a outras Aplicações Convidadas para interagir com os contentores da aplicação proprietária. Por exemplo, uma aplicação Do SharePoint Embedded pode conceder permissões a outra aplicação – uma Aplicação Convidada para que a Aplicação Convidada possa realizar operações de cópia de segurança nos respetivos contentores.

Uma vez que a API de registo controla as permissões que uma aplicação Do SharePoint Embedded pode executar no contentor no inquilino que consome, esta chamada deve ser uma das primeiras APIs invocadas. Se não o fizer, ocorrem erros de acesso negado ao invocar outras APIs contra o contentor e/ou o conteúdo nos contentores.

Não existem restrições sobre quantas vezes a API de registo pode ser invocada. A frequência com que a API de registo é invocada e quando é invocada depende da aplicação SharePoint Embedded. No entanto, a última chamada bem-sucedida à API de registo determina as definições utilizadas no inquilino que está a consumir.

Observação

Apenas a aplicação proprietária do tipo de contentor pode invocar a API de registo no inquilino que está a consumir.

A API de registo NÃO é uma API do Graph e só pode ser invocada através de um token de acesso baseado em certificado e appOnly. Saiba mais sobre a autenticação.

Permissões do tipo de contentor

A API de registo determina as permissões que uma aplicação Do SharePoint Embedded pode executar em contentores e conteúdos em contentores para o tipo de contentor especificado.

Permissão Descrição
Nenhum Não tem permissões para quaisquer contentores ou conteúdos deste tipo de contentor.
ReadContent Pode ler o conteúdo de contentores deste tipo de contentor.
WriteContent Pode escrever conteúdo em contentores para este tipo de contentor. Esta permissão não pode ser concedida sem a permissão ReadContent.
Criar Pode criar contentores deste tipo de contentor.
Excluir Pode eliminar contentores deste tipo de contentor.
Leitura Pode ler os metadados dos contentores deste tipo de contentor.
Gravar Pode atualizar os metadados dos contentores deste tipo de contentor.
EnumeratePermissions Pode enumerar os membros de um contentor e as respetivas funções para contentores deste tipo de contentor.
AddPermissions Pode adicionar membros ao contentor para contentores deste tipo de contentor.
UpdatePermissions Pode atualizar (alterar funções de) associações existentes no contentor para contentores deste tipo de contentor.
DeletePermissions Pode eliminar outros membros (mas não o próprio) do contentor para contentores deste tipo de contentor.
DeleteOwnPermissions Pode remover a associação própria do contentor para contentores deste tipo de contentor.
ManagePermissions Pode adicionar, remover (incluindo o próprio) ou atualizar membros nas funções de contentor para contentores deste tipo de contentor.
Inteiro Tem todas as permissões para contentores deste tipo de contentor.

Solicitação HTTP

PUT {RootSiteUrl}/_api/v2.1/storageContainerTypes/{containerTypeId}/applicationPermissions

Observação

Esta não é uma API do Graph

{RootSiteURL} é o URL do SharePoint do inquilino que está a consumir. Por exemplo, https://contoso.sharepoint.com.

Corpo da solicitação

No corpo do pedido, forneça uma representação JSON das permissões do tipo de contentor para as aplicações Do SharePoint Embedded.

Resposta

Se for bem-sucedido, este método devolve um 200 OK código de resposta e as permissões de tipo de contentor configuradas para as aplicações Do SharePoint Embedded no corpo da resposta.

Código HTTP Descrição
400 Solicitação incorreta.
401 O pedido não tem credenciais de autenticação válidas.
403 As credenciais de autenticação fornecidas são válidas, mas insuficientes para efetuar a operação pedida. Exemplos: a aplicação de chamada não é a aplicação proprietária do tipo de contentor.
404 O tipo de contentor não existe.

Exemplos

Registar o tipo de contentor num inquilino que está a consumir

Registe o tipo de contentor no inquilino que está a consumir e conceda permissões completas à Aplicação Proprietária (AppId 71392b2f-1765-406e-86af-5907d9bdb2ab) para chamadas Delegadas e AppOnly.

Solicitação

PUT {RootSiteUrl}/_api/v2.1/storageContainerTypes/{containerTypeId}/applicationPermissions
Content-Type: application/json

{
  "value": [
    {
      "appId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
      "delegated": ["full"],
      "appOnly": ["full"]
    }
  ]
}

Resposta

HTTP/1.1 200 OK
Content-type: application/json

{
  "value": [
    {
      "appId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
      "delegated": ["full"],
      "appOnly": ["full"]
    }
  ]
}

Registar o tipo de contentor num inquilino consumidor com permissões para uma Aplicação Convidada

Registe o tipo de contentor no inquilino que está a consumir e conceda permissões completas à Aplicação Proprietária (AppId 71392b2f-1765-406e-86af-5907d9bdb2ab) para chamadas Delegadas e AppOnly. Além disso, conceda a uma Aplicação Convidada (AppId 89ea5c94-7736-4e25-95ad-3fa95f62b6) permissões de leitura e escrita apenas para chamadas delegadas.

Solicitação

PUT /storagecontainerTypes/{containerTypeId}/applicationPermissions
Content-Type: application/json

{
  "value": [
    {
      "appId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
      "delegated": ["full"],
      "appOnly": ["full"]
    },
    {
      "appId": "89ea5c94-7736-4e25-95ad-3fa95f62b6",
      "delegated": ["read", "write"],
      "appOnly": ["none"]
    }
  ]
}

Resposta

HTTP/1.1 200 OK
Content-type: application/json

{
  "value": [
    {
      "appId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
      "delegated": ["full"],
      "appOnly": ["read"]
    },
    {
      "appId": "89ea5c94-7736-4e25-95ad-3fa95f62b6",
      "delegated": ["read", "write"],
      "appOnly": ["none"]
    }
  ]
}