A gestÀo de permissÀµes granulares para aplicaçÀµes que necessitam de aceder a sites especÀficos do SharePoint é um requisito comum em implementaçÀµes empresariais. Este artigo apresenta uma abordagem detalhada sobre como configurar e atribuir permissÀµes programaticamente a uma Service Principal para aceder a sites SharePoint utilizando o Microsoft Graph API e Postman.
Contexto
Nas organizaçÀµes que utilizam o SharePoint como plataforma de colaboraçÀo e gestÀo documental, é frequentemente necessÀ¡rio permitir que aplicaçÀµes de terceiros ou sistemas internos acedam a conteÀºdos especÀficos. A utilizaçÀo de permissÀµes granulares é essencial para garantir o princÀpio do mÀnimo privilégio, permitindo apenas o acesso necessÀ¡rio e suficiente para o funcionamento da aplicaçÀo.
Neste guia, vamos explorar como:
- Criar registos de aplicaçÀµes no Microsoft Entra ID (anteriormente Azure AD)
- Configurar diferentes nÀveis de permissÀµes para acesso ao SharePoint
- Utilizar o Postman para obter tokens de autenticaçÀo
- Atribuir permissÀµes granulares a uma Service Principal para sites especÀficos
Pré-requisitos
- Conta de administrador global ou de administrador de aplicaçÀµes no Microsoft Entra ID
- Postman instalado no seu ambiente
- Conhecimentos bÀ¡sicos de REST APIs e JSON
- Site(s) SharePoint Online jÀ¡ criado(s) e configurado(s)
CriaçÀo e ConfiguraçÀo de AplicaçÀµes no Microsoft Entra ID
Começaremos por criar duas aplicaçÀµes distintas no Microsoft Entra ID, cada uma com diferentes nÀveis de permissÀo para aceder ao SharePoint:
API 1: AplicaçÀo com Acesso Total ao SharePoint
Esta aplicaçÀo terÀ¡ permissÀµes para aceder a todos os sites SharePoint na organizaçÀo.
- Aceda ao portal do Microsoft Entra ID
- Navegue para GestÀo de Identidades > AplicaçÀµes > Registos de aplicaçÀµes
- Clique em Novo registo
- Preencha os seguintes detalhes:
- Nome:
SP-AllSites-FullControl
- Tipos de conta suportados: Contas apenas neste diretório organizacional
- URI de redirecionamento: (Deixe em branco para este cenÀ¡rio)
- Nome:
- Clique em Registar
Após o registo da aplicaçÀo, proceda À configuraçÀo das permissÀµes:
- No menu lateral da aplicaçÀo, aceda a PermissÀµes API
- Clique em Adicionar uma permissÀo
- Selecione Microsoft Graph
- Escolha PermissÀµes de aplicaçÀo
- Procure e selecione
Sites.FullControl.All
- Clique em Adicionar permiss˵es
- Importante: Clique no botÀo Conceder consentimento de administrador para esta permissÀo
Agora configure um segredo para a aplicaçÀo:
- No menu lateral, aceda a Certificados e segredos
- Em Segredos do cliente, clique em Novo segredo do cliente
- Forneça uma descriçÀo como “Chave para acesso via Graph API”
- Selecione a validade adequada (por exemplo, 1 ano)
- Clique em Adicionar
- IMPORTANTE: Copie e guarde o valor do segredo num local seguro, pois nÀo serÀ¡ possÀvel visualizÀ¡-lo novamente
API 2: AplicaçÀo com Acesso Limitado a Sites EspecÀficos
Esta aplicaçÀo terÀ¡ permissÀµes apenas para aceder a sites SharePoint previamente configurados.
- Aceda ao portal do Microsoft Entra ID
- Navegue para GestÀo de Identidades > AplicaçÀµes > Registos de aplicaçÀµes
- Clique em Novo registo
- Preencha os seguintes detalhes:
- Nome:
SP-SelectedSites-Access
- Tipos de conta suportados: Contas apenas neste diretório organizacional
- URI de redirecionamento: (Deixe em branco para este cenÀ¡rio)
- Nome:
- Clique em Registar
Após o registo da aplicaçÀo, proceda À configuraçÀo das permissÀµes:
- No menu lateral da aplicaçÀo, aceda a PermissÀµes API
- Clique em Adicionar uma permissÀo
- Selecione Microsoft Graph
- Escolha PermissÀµes de aplicaçÀo
- Procure e selecione
Sites.Selected
- Clique em Adicionar permiss˵es
- Importante: Clique no botÀo Conceder consentimento de administrador para esta permissÀo
Agora configure um segredo para a aplicaçÀo:
- No menu lateral, aceda a Certificados e segredos
- Em Segredos do cliente, clique em Novo segredo do cliente
- Forneça uma descriçÀo como “Chave para acesso via Graph API”
- Selecione a validade adequada (por exemplo, 1 ano)
- Clique em Adicionar
- IMPORTANTE: Copie e guarde o valor do segredo num local seguro, pois nÀo serÀ¡ possÀvel visualizÀ¡-lo novamente
AtribuiçÀo de PermissÀµes Utilizando o Postman
Agora que temos as aplicaçÀµes criadas e configuradas no Microsoft Entra ID, vamos utilizar o Postman para obter tokens de acesso e atribuir permissÀµes granulares.
1. Obter Token de Acesso para a API 1
Primeiro, precisamos obter um token de acesso para a aplicaçÀo com permissÀo total:
- Abra o Postman e crie uma nova requisiçÀo POST
- Introduza o URL:
https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token
- Substitua
{tenant-id}
pelo ID do seu tenant (pode ser encontrado no portal do Entra ID)
- Substitua
- Na secçÀo Body, selecione x-www-form-urlencoded
- Adicione os seguintes parâmetros:
Key | Value |
---|---|
grant_type | client_credentials |
client_id | [ID da aplicaçÀo SP-AllSites-FullControl] |
client_secret | [Segredo da aplicaçÀo] |
scope | https://graph.microsoft.com/.default |
- Clique em Send
- No corpo da resposta, copie o valor do campo
access_token
para utilizaçÀo nas próximas etapas
âš ï¸ Aviso de Segurança
Os tokens de acesso sÀo credenciais sensÀveis. NÀo os partilhe ou armazene em locais nÀo seguros.
2. Obter o ID do Site SharePoint
Antes de atribuir permiss˵es, precisamos obter o ID do site SharePoint para o qual queremos conceder acesso:
- No Postman, crie uma nova requisiçÀo GET
- Introduza o URL:
https://graph.microsoft.com/v1.0/sites/{siteurl}
- Substitua
{siteurl}
por uma das seguintes opçÀµes:root
(para o site raiz)contoso.sharepoint.com:/sites/contoso
(formato hostname:path)
- Substitua
- Na secçÀo Headers, adicione:
- Key:
Authorization
- Value:
Bearer {access_token}
(substitua pelo token obtido anteriormente)
- Key:
- Clique em Send
- Na resposta, localize e guarde o valor do campo
id
- este é o identificador Àºnico do site SharePoint
3. Atribuir PermissÀµes Granulares À API 2
Com o token de acesso e o ID do site, agora podemos atribuir permissÀµes granulares À nossa segunda aplicaçÀo:
- No Postman, crie uma nova requisiçÀo POST
- Introduza o URL:
https://graph.microsoft.com/v1.0/sites/{site-id}/permissions
- Substitua
{site-id}
pelo ID do site obtido no passo anterior
- Substitua
- Na secçÀo Headers, adicione:
- Key:
Authorization
- Value:
Bearer {access_token}
(substitua pelo token obtido anteriormente) - Key:
Content-Type
- Value:
application/json
- Key:
- Na secçÀo Body, selecione raw e escolha JSON
- Adicione o seguinte JSON, substituindo o ID da aplicaçÀo pelo ID da API 2 (SP-SelectedSites-Access):
{
"roles": ["read", "write"],
"grantedToIdentities": [{
"application": {
"id": "e9d55f72-aba1-41a0-97ee-f27b8a39957b",
"displayName": "SP-SelectedSites-Access"
}
}]
}
Nota: O JSON acima concede permissÀµes de leitura e escrita. Ajuste conforme necessÀ¡rio:
- Para acesso somente leitura, utilize apenas
["read"]
- Para acesso total, utilize
["read", "write", "manage"]
- Clique em Send
- Verifique a resposta para confirmar que a permissÀo foi atribuÀda com sucesso
VerificaçÀo das PermissÀµes
Para confirmar que as permissÀµes foram atribuÀdas corretamente:
- No Postman, crie uma nova requisiçÀo GET
- Introduza o URL:
https://graph.microsoft.com/v1.0/sites/{site-id}/permissions
- Substitua
{site-id}
pelo ID do site
- Substitua
- Na secçÀo Headers, adicione:
- Key:
Authorization
- Value:
Bearer {access_token}
- Key:
- Clique em Send
- Verifique na resposta se a aplicaçÀo aparece na lista de permissÀµes do site
UtilizaçÀo da API 2 para Aceder ao SharePoint
Agora que a API 2 tem permissÀµes especÀficas para o site, pode obter um token para esta aplicaçÀo e utilizar os recursos do SharePoint:
- Obtenha um token de acesso para a API 2 (similarmente ao processo para a API 1)
- Utilize esse token para aceder aos recursos do site SharePoint através do Microsoft Graph API
Por exemplo, para listar itens numa biblioteca de documentos:
GET https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/items
Authorization: Bearer {access_token-api2}
ConsideraçÀµes de Segurança
Ao implementar este tipo de integraçÀo, considere as seguintes prÀ¡ticas recomendadas de segurança:
- Utilize sempre o princÀpio do mÀnimo privilégio ao atribuir permissÀµes
- Configure a expiraçÀo de segredos de aplicaçÀµes para perÀodos adequados ao contexto
- Implemente uma soluçÀo segura para armazenamento e gestÀo de segredos
- Monitorize regularmente as permissÀµes atribuÀdas À s aplicaçÀµes
- Considere a utilizaçÀo de certificados em vez de segredos para autenticaçÀo em ambientes de produçÀo
- Implemente um processo de revisÀo periódica de permissÀµes
ConclusÀo
A atribuiçÀo de permissÀµes granulares a aplicaçÀµes para aceder a sites especÀficos do SharePoint é uma capacidade poderosa que permite desenvolver integraçÀµes seguras e eficazes. Utilizando o Microsoft Graph API, é possÀvel automatizar este processo e gerir programaticamente as permissÀµes, facilitando a implementaçÀo de soluçÀµes empresariais que necessitam de interagir com o SharePoint.
Esta abordagem garante que as aplicaçÀµes tenham apenas o nÀvel de acesso necessÀ¡rio para o seu funcionamento, reforçando a segurança global do ambiente Microsoft 365 da sua organizaçÀo.