Compartilhar via


Registrar permissões de aplicativo de tipo de contêiner de armazenamento de arquivos

Para que um aplicativo Do SharePoint Embedded interaja com contêineres em um locatário consumidor, o tipo de contêiner deve primeiro ser registrado no locatário consumidor. O registro de tipo de contêiner acontece quando o aplicativo proprietário invoca a API de registro para especificar quais permissões podem ser executadas em relação ao seu tipo de contêiner. A API de registro também concede acesso a outros Aplicativos Convidados para interagir com os contêineres do aplicativo proprietário. Por exemplo, um aplicativo Do SharePoint Embedded pode conceder permissões a outro aplicativo — um aplicativo convidado para que o Aplicativo Convidado possa executar operações de backup em seus contêineres.

Como a API de registro controla as permissões que um aplicativo Do SharePoint Embedded pode executar em relação ao contêiner no locatário consumidor, essa chamada deve ser uma das primeiras APIs invocadas. A falha ao fazer isso resulta em erros negados de acesso ao invocar outras APIs no contêiner e/ou no conteúdo nos contêineres.

Não há restrições sobre quantas vezes a API de registro pode ser invocada. Com que frequência a API de registro é invocada e quando é invocada depende do aplicativo SharePoint Embedded. No entanto, a última chamada bem-sucedida para a API de registro determina as configurações usadas no locatário consumidor.

Observação

Somente o aplicativo proprietário do tipo de contêiner pode invocar a API de registro no locatário consumidor.

A API de registro NÃO é uma API do Graph e só pode ser invocada usando um AppOnly e um token de acesso baseado em certificação. Saiba mais sobre autenticação.

Permissões de tipo de contêiner

A API de registro determina quais permissões um aplicativo Do SharePoint Embedded pode executar em contêineres e conteúdo em contêineres para o tipo de contêiner especificado.

Permissão Descrição
Nenhum Não tem permissões para nenhum contêiner ou conteúdo desse tipo de contêiner.
ReadContent Pode ler o conteúdo de contêineres desse tipo de contêiner.
WriteContent Pode gravar conteúdo em contêineres para esse tipo de contêiner. Essa permissão não pode ser concedida sem a permissão ReadContent.
Criar Pode criar contêineres desse tipo de contêiner.
Excluir Pode excluir contêineres desse tipo de contêiner.
Leitura Pode ler os metadados de contêineres desse tipo de contêiner.
Gravar Pode atualizar os metadados de contêineres desse tipo de contêiner.
EnumeratePermissions Pode enumerar os membros de um contêiner e suas funções para contêineres desse tipo de contêiner.
AddPermissions Pode adicionar membros ao contêiner para contêineres desse tipo de contêiner.
UpdatePermissions Pode atualizar (alterar funções de) associações existentes no contêiner para contêineres desse tipo de contêiner.
DeletePermissions Pode excluir outros membros (mas não auto) do contêiner para contêineres desse tipo de contêiner.
DeleteOwnPermissions Pode remover a própria associação do contêiner para contêineres desse tipo de contêiner.
ManagePermissions Pode adicionar, remover (incluindo auto) ou atualizar membros nas funções de contêiner para contêineres desse tipo de contêiner.
Inteiro Tem todas as permissões para contêineres desse tipo de contêiner.

Solicitação HTTP

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

Observação

Este não é um API do Graph

{RootSiteURL} é a URL do SharePoint do locatário consumidor. Por exemplo, https://contoso.sharepoint.com.

Corpo da solicitação

No corpo da solicitação, forneça uma representação JSON das permissões de tipo de contêiner para os aplicativos Do SharePoint Embedded.

Resposta

Se for bem-sucedido, esse método retornará um 200 OK código de resposta e as permissões de tipo de contêiner configuradas para os aplicativos Do SharePoint Embedded no corpo da resposta.

Código HTTP Descrição
400 Solicitação incorreta.
401 A solicitação carece de credenciais de autenticação válidas.
403 As credenciais de autenticação fornecidas são válidas, mas insuficientes para executar a operação solicitada. Exemplos: o aplicativo de chamada não é o aplicativo proprietário do tipo de contêiner.
404 O tipo de contêiner não existe.

Exemplos

Registrar o tipo de contêiner em um locatário consumidor

Registre o tipo de contêiner no locatário consumidor e conceda permissões completas ao Aplicativo de Propriedade (AppId 71392b2f-1765-406e-86af-5907d9bdbdb2ab) 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"]
    }
  ]
}

Registrar o tipo de contêiner em um locatário consumidor com permissões para um aplicativo convidado

Registre o tipo de contêiner no locatário consumidor e conceda permissões completas ao Aplicativo de Propriedade (AppId 71392b2f-1765-406e-86af-5907d9bdbdb2ab) para chamadas Delegadas e AppOnly. Além disso, conceda um aplicativo convidado (AppId 89ea5c94-7736-4e25-95ad-3fa95f62b6) permissões de leitura e gravação 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"]
    }
  ]
}