Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O SharePoint e o OneDrive têm um modelo de permissões há muito estabelecido que não se enquadra exatamente no modelo de âmbitos. Por exemplo, não existe um âmbito global que forneça acesso ReadWrite a uma única lista no seu inquilino. Em vez disso, os Âmbitos selecionados suportam estes cenários. Inicialmente, Sites.Selected existia para restringir o acesso de uma aplicação a uma única coleção de sites. Agora, as listas, itens de lista, pastas e ficheiros também são suportados e todos os Âmbitos selecionados suportam agora modos delegados e de aplicação.
Observação
Devido à evolução dos requisitos de nomenclatura de âmbito, os âmbitos mais recentes são listados como uma cadeia de identificação *.SelectedOperations.Selectedcompleta. Não existe nenhuma diferença funcional entre este formato e o Sites.Selected formato.
Scopes
A tabela seguinte lista os âmbitos de permissão Selecionados.
| Scopes | Descrição |
|---|---|
| Sites.Selecionados | Gere o acesso à aplicação ao nível da coleção de sites, fornecendo acesso a uma coleção de sites específica |
| Listas. SelectedOperations.Selected | Gere o acesso à aplicação ao nível da lista, fornecendo acesso a uma lista específica |
| ListItems.SelectedOperations.Selected | Gere o acesso à aplicação ao nível dos ficheiros, item de lista ou pasta, fornecendo acesso a um ou mais itens de lista |
| Files.SelectedOperations.Selected | Gere o acesso à aplicação ao nível da pasta de ficheiros ou bibliotecas, fornecendo acesso a um ou mais ficheiros |
Como funcionam os Âmbitos selecionados com as permissões do SharePoint e do OneDrive
Quando um administrador consente os Âmbitos selecionados de uma aplicação, está a delegar a gestão de permissões de recursos aos proprietários desse recurso na carga de trabalho. Para outros âmbitos, como Files.Read.All, assim que o âmbito for consentido, a aplicação pode aceder aos recursos que representa. Os âmbitos selecionados requerem uma ação de atribuição explícita; uma aplicação consentida para Listas. SelectedOperations.Selected inicialmente não teria acesso.
Os âmbitos selecionados requerem uma série de passos para funcionar, o que fornece vários meios de controlo para os administradores. O exemplo seguinte utiliza o Lists.SelectedOperations.Selected âmbito, mas os passos aplicam-se a todos *. Âmbitos selecionados.
- A aplicação tem de ser consentida no Entra ID para ter a aplicação ou o âmbito delegado
Lists.SelectedOperations.Selected. - A aplicação tem de ter permissões para uma lista através de uma chamada para
POST /sites/{siteid}/lists/{listid}/permissionscom uma função específica. - A aplicação tem de adquirir um token válido que contenha o
Lists.SelectedOperations.Selectedâmbito das chamadas para a lista de permissões.
Se algum dos três passos não for apresentado, a aplicação não tem acesso. Administradores com dois pontos de controlo:
- Remova as permissões numa lista específica através de uma chamada para
DELETE /sites/{siteid}/lists/{listid}/permissions/{id}, que remove o acesso à lista dessa aplicação. - Revogar o consentimento do
Lists.SelectedOperations.Selectedâmbito no Entra ID, o que bloqueia o acesso da aplicação a qualquer lista à qual lhe foram concedidas permissões anteriormente.
Com base nisto, pode dar consentimento a uma aplicação Lists.SelectedOperations.Selected no âmbito no Entra ID, mas não conceder permissões a nenhuma lista, o que significa que a aplicação não tem acesso. Da mesma forma, pode chamar POST /sites/{siteid}/lists/{listid}/permissions qualquer aplicação, mas sem os âmbitos adequados aparecerem no token, a aplicação não tem acesso. Os três passos têm de ser concluídos para garantir o acesso esperado. Isto também se aplica ao outro *. Âmbitos selecionados e respetivos níveis.
Observação
Atribuir permissões de aplicação a listas, itens de lista, pastas ou ficheiros interrompe a herança no recurso atribuído, por isso tenha em atenção os limites de serviço para obter permissões exclusivas na estrutura da solução. As permissões ao nível da coleção de sites não interrompem a herança porque esta é a raiz da herança de permissões.
É apresentado um exemplo de definição de permissões para sites; a lógica é semelhante para listas, itens de lista, ficheiros ou pastas.
Qual é a diferença entre os ficheiros e os âmbitos listItems?
No SharePoint, todos os ficheiros são itens de lista, mas todos os itens de lista não são ficheiros. Como resultado, as aplicações com o ListItems.SelectedOperations.Selected âmbito podem aceder e operar em todos os itens de lista e ficheiros até à respetiva função permitida. As aplicações com Files.SelectedOperations.Selected só podem operar em ficheiros (itens de lista) em bibliotecas de documentos ou noutras listas marcadas como contendo documentos. Isto imita o comportamento Files.Read.All e Files.ReadWrite.All que existe atualmente, mas isolado num único ficheiro. Este comportamento não é alterado com base no caminho do Microsoft Graph utilizado, como com /drives/{driveid}/items/{itemid} e /sites/{siteid}/lists/{listid}/items/{itemid}; em vez disso, o destino a ser acedido controla o comportamento.
Funções
A tabela seguinte lista as quatro funções que podem ser atribuídas a uma aplicação para um determinado recurso.
| Função | Descrição |
|---|---|
| leitura | Leia os metadados e os conteúdos do recurso. |
| gravação | Leia e modifique os metadados e os conteúdos do recurso. |
| owner | Representa a função de proprietário. |
| controlo total | Representa o controlo total do recurso. |
Solicitação
POST https://graph.microsoft.com/v1.0/sites/{siteId}/permissions
Content-Type: application/json
{
"roles": ["write"],
"grantedTo": {
"application": {
"id": "89ea5c94-7736-4e25-95ad-3fa95f62b66e"
}
}
}
Cabeçalhos de solicitação
| Nome | Descrição |
|---|---|
| Autorização | {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização. |
| Content-Type | application/json. Obrigatório. |
Resposta
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "1",
"@deprecated.GrantedToIdentities": "GrantedToIdentities has been deprecated. Refer to GrantedToIdentitiesV2",
"roles": ["write"],
"grantedToIdentities": [{
"application": {
"id": "89ea5c94-7736-4e25-95ad-3fa95f62b66e",
"displayName": "Contoso Time Manager App"
}
}],
"grantedToIdentitiesV2": [{
"application": {
"id": "89ea5c94-7736-4e25-95ad-3fa95f62b66e",
"displayName": "Contoso Time Manager App"
}
}]
}
Para obter exemplos que mostram como gerir permissões, veja os tópicos da /permissions API para site, lista, listItem e driveItem.
De que permissões preciso para gerir as permissões?
Os requisitos de permissão variam consoante o nível. Em todos os casos delegados, o utilizador atual também precisa de permissões suficientes para gerir o acesso ao chamar a API. A tabela seguinte inclui âmbitos e âmbitos + funções atribuídas ao recurso principal. Por exemplo, se tiver a função Sites.Selected scope AND FullControl (Sites.Selected+FullControl), pode gerir recursos nessa coleção de sites.
| Recurso | Permissões de recursos necessárias | Notas |
|---|---|---|
| site | Sites.FullControl.All | Uma vez que pode conceder permissões de controlo total a uma coleção de sites através de Sites.Selected, este requisito é necessariamente elevado. |
| list | Sites.FullControl.All, Sites.Selected+FullControl, Sites.Selected+Owner | |
| listItem | Sites.FullControl.All, Sites.Selected+FullControl, Sites.Selected+Owner, Listas. SelectedOperations.Selected+FullControl, Listas. SelectedOperations.Selected+Owner | |
| file | Sites.FullControl.All, Sites.Selected+FullControl, Sites.Selected+Owner, Listas. SelectedOperations.Selected+FullControl, Listas. SelectedOperations.Selected+Owner |
Como o acesso é calculado
Existem dois tipos de tokens: apenas aplicação e delegados. Os cenários apenas da aplicação não têm nenhum utilizador presente e são considerados de maior risco. Com a delegação, a aplicação nunca pode exceder as permissões existentes do utilizador atual e pode ser considerada de menor risco para muitos cenários. A opção Delegada é preferencial sempre que possível, mas ambos os modos estão disponíveis para satisfazer as suas necessidades.
É armazenada uma cadeia de identificação do ID da aplicação, do ID do recurso e da função. Como tal, a [aplicação] tem acesso [de função] ao [recurso]. Especifica a aplicação e a função quando é criada uma permissão através da API e o caminho resolvido dá-lhe o recurso. Por exemplo, a aplicação Z tem acesso de leitura à lista em /sites/dev/lists/list1.
Para calcular o acesso, utilize os valores fornecidos no token para seguir aproximadamente este fluxo:
Reveja o tipo de token (aplicação ou delegado).
Localize o registo da aplicação para o ID da aplicação fornecido no recurso ou um elemento principal hierárquico com segurança (herança).
Ocorre uma das seguintes situações:
- Para o acesso à aplicação, se for encontrado um registo para a aplicação e a função permitir a operação pedida (ler um item, atualizar uma lista), é concedido acesso.
- No cenário delegado, as permissões da aplicação e do utilizador são calculadas e, em seguida, interseccionadas, o que significa que a aplicação nunca pode exceder as permissões do utilizador e o utilizador nunca pode exceder (através da aplicação) as permissões de aplicação consentidas.
Notas de comportamento de consentimento
As notas seguintes aplicam-se ao comportamento de consentimento:
- As aplicações podem ter vários Consentimentos selecionados e esses consentimentos podem ser aplicados a vários níveis em todo o inquilino.
- O acesso à aplicação é perdido assim que um âmbito é revogado. Se uma aplicação tiver Listas.* e Sites.* e tiver acesso a uma coleção de sites e a uma lista específica nessa coleção de sites e, em seguida, o consentimento sites.* for revogado, a aplicação mantém o acesso à lista à qual lhe foi concedido acesso específico através do consentimento Listas.* e da chamada anterior para
list/permissions. - Se uma aplicação tiver permissões para uma lista através de uma chamada para
list/permissionse o acesso for removido através de uma chamada paraDELETE lists/permissions/id, perderá o acesso a essa lista e a todos os itens nessa lista, independentemente de quaisquer permissões explícitas definidas nesses itens de lista. Posteriormente, pode regrar permissões de itens específicas, se necessário. - Os âmbitos de nível superior, como Sites.* podem ser utilizados para conceder permissões específicas de ficheiros, mas os âmbitos inferiores nunca podem fornecer acesso a recursos de nível superior. Isto permite que as aplicações tenham acesso a um nível específico.
- O consentimento é um conceito externo, consumido pelo OneDrive e pelo SharePoint através do token fornecido e todos os âmbitos apresentados no token são respeitados.