Permissões de Pasta Não se Aplicam a Arquivos Recém-Carregados: Causa e Solução
🔍 WiseChecker

Permissões de Pasta Não se Aplicam a Arquivos Recém-Carregados: Causa e Solução

Ao carregar um novo arquivo em uma pasta de biblioteca de documentos do SharePoint, o arquivo pode não herdar as permissões exclusivas da pasta. Em vez disso, o arquivo herda permissões da biblioteca ou site pai. Isso quebra o controle de acesso pretendido e pode expor dados confidenciais a usuários errados. A causa raiz é como o SharePoint lida com herança de permissões em nível de pasta e item. Este artigo explica por que isso acontece e fornece uma correção confiável usando Power Automate.

Principais Conclusões: Quebrando a Herança de Permissões para Novos Arquivos

  • Modelo de herança de permissões do SharePoint: Os arquivos herdam permissões da biblioteca pai, não da pasta, a menos que a pasta tenha permissões exclusivas.
  • Gatilho do Power Automate: Use o gatilho “Quando um arquivo é criado em uma pasta” para detectar novos uploads em uma pasta específica.
  • Ação Enviar solicitação HTTP para o SharePoint: Use esta ação para quebrar a herança de permissões no novo arquivo e aplicar as permissões da pasta.

ADVERTISEMENT

Por que as Permissões de Pasta Não se Aplicam a Novos Arquivos

O SharePoint usa um modelo hierárquico de herança de permissões. Por padrão, cada item em uma biblioteca de documentos herda permissões da própria biblioteca. Quando você quebra a herança de permissões em uma pasta e atribui permissões exclusivas a ela, essas permissões se aplicam apenas ao objeto da pasta. Qualquer novo arquivo carregado nessa pasta não herda automaticamente as permissões exclusivas da pasta. Em vez disso, o novo arquivo herda permissões da biblioteca pai. Isso é proposital. O SharePoint não propaga permissões de nível de pasta para itens filhos, a menos que você quebre explicitamente a herança em cada item.

O termo técnico para esse comportamento é “herança quebrada no nível do item”. A pasta tem permissões exclusivas, mas os arquivos recém-criados dentro dela não. Para aplicar as permissões da pasta nos novos arquivos, você deve quebrar a herança de permissões em cada arquivo e copiar as atribuições de permissão da pasta para o arquivo. Isso não é possível pela interface do usuário do SharePoint em massa. Você deve usar um fluxo do Power Automate ou um script do PowerShell para automatizar o processo.

Como Corrigir Novos Arquivos que Não Herdam Permissões de Pasta

As etapas a seguir criam um fluxo do Power Automate que é acionado quando um arquivo é adicionado a uma pasta específica. O fluxo quebra a herança de permissões no novo arquivo e aplica as mesmas permissões existentes na pasta.

  1. Acesse o Power Automate e crie um fluxo de nuvem automatizado
    Faça login no Power Automate em make.powerautomate.com. Selecione Criar no menu esquerdo e escolha Fluxo de nuvem automatizado. Dê um nome ao fluxo, como “Aplicar Permissões de Pasta a Novos Arquivos”.
  2. Adicione o gatilho do SharePoint “Quando um arquivo é criado em uma pasta”
    Pesquise o gatilho Quando um arquivo é criado em uma pasta e selecione-o. Defina o Endereço do Site para o seu site do SharePoint. Defina a Pasta para a pasta específica que tem permissões exclusivas. Esse gatilho é executado sempre que um arquivo é adicionado a essa pasta.
  3. Adicione uma etapa para obter as atribuições de permissão da pasta
    Clique em Nova etapa e pesquise a ação Enviar uma solicitação HTTP para o SharePoint. Defina o Endereço do Site para o seu site. Defina o Método como GET. No campo Uri, insira:
    _api/web/lists/getbytitle('Documentos')/items({ID_da_Pasta})/roleassignments
    Substitua {ID_da_Pasta} pelo ID da pasta. Use o conteúdo dinâmico ID do gatilho, se disponível. Caso contrário, use uma ação separada para recuperar o ID da pasta pelo caminho.
  4. Analise a resposta JSON da solicitação de permissões da pasta
    Adicione uma ação Analisar JSON. Defina o Conteúdo como o corpo da resposta da solicitação HTTP. Use este esquema para extrair as atribuições de função:
    {"type":"object","properties":{"value":{"type":"array","items":{"type":"object","properties":{"PrincipalId":{"type":"string"},"RoleDefinitionBinding":{"type":"string"}}}}}}
    Este esquema pode precisar de ajustes com base no seu ambiente. O objetivo é capturar cada ID de principal e definição de função.
  5. Quebre a herança de permissões no novo arquivo
    Adicione outra ação Enviar uma solicitação HTTP para o SharePoint. Defina o Método como POST. No campo Uri, insira:
    _api/web/lists/getbytitle('Documentos')/items({ID_do_Item})/breakroleinheritance(copyRoleAssignments=false, clearSubscopes=true)
    Substitua {ID_do_Item} pelo conteúdo dinâmico ID do gatilho. Defina os Cabeçalhos para incluir Content-Type: application/json;odata=verbose. Defina o Corpo como vazio ou {}.
  6. Aplique as permissões da pasta ao novo arquivo
    Adicione um controle Aplicar a cada. Em Selecionar uma saída das etapas anteriores, escolha a matriz value do JSON analisado. Dentro do loop, adicione uma terceira ação Enviar uma solicitação HTTP para o SharePoint. Defina o Método como POST. No campo Uri, insira:
    _api/web/lists/getbytitle('Documentos')/items({ID_do_Item})/roleassignments/addroleassignment(principalid={PrincipalId}, roledefid={RoleDefinitionId})
    Substitua {ID_do_Item} pelo ID do arquivo, {PrincipalId} pelo PrincipalId do item atual e {RoleDefinitionId} pelo ID da definição de função do JSON analisado.
  7. Salve e teste o fluxo
    Clique em Salvar no topo. Carregue um arquivo de teste na pasta de destino. Verifique o histórico de execução do fluxo para confirmar que foi executado com sucesso. Verifique as permissões do novo arquivo no SharePoint selecionando o arquivo, clicando no ícone de informações e depois em Gerenciar acesso.

ADVERTISEMENT

Se o Fluxo Não Funcionar ou Você Precisar de uma Alternativa

Fluxo do Power Automate falha com 403 Proibido

A conta do fluxo deve ter pelo menos permissões de Edição na biblioteca de documentos e na pasta de destino. Se a conta não tiver permissões para quebrar a herança em itens, a solicitação HTTP retornará um erro 403. Conceda ao proprietário do fluxo controle total na biblioteca ou use uma conta de serviço com permissões adequadas.

A herança de permissões é quebrada, mas as permissões ficam vazias

Se a pasta em si não tiver atribuições de função explícitas após quebrar a herança, a pasta ainda pode herdar do pai. Verifique se a pasta tem permissões exclusivas com pelo menos um usuário ou grupo atribuído. Se a matriz de atribuições de função da pasta estiver vazia, o fluxo não copiará nada. Atribua pelo menos uma permissão à pasta primeiro.

Você precisa aplicar permissões a arquivos em todas as subpastas

O gatilho neste fluxo monitora uma única pasta. Para cobrir todas as subpastas, crie um fluxo separado para cada subpasta ou use um script do PowerShell com PnP PowerShell. O script pode iterar por todas as pastas com herança quebrada e aplicar permissões a novos arquivos recursivamente.

Correção Manual vs. Automatizada: Comparação

Item Correção Manual Fluxo do Power Automate
Esforço por arquivo Alto — requer navegar pelas permissões de cada arquivo Nenhum após a criação do fluxo
Escalabilidade Não escalável além de alguns arquivos Lida com centenas de arquivos automaticamente
Risco de erro Alto — fácil perder um arquivo ou atribuir permissões erradas Baixo — o fluxo aplica exatamente as mesmas permissões da pasta
Manutenção Nenhuma Requer monitoramento das execuções do fluxo e atualização se as permissões da pasta mudarem

Agora você entende por que as permissões de pasta não se aplicam a arquivos recém-carregados no SharePoint. A correção exige quebrar a herança de permissões em cada novo arquivo e copiar as atribuições de função da pasta. Use o fluxo do Power Automate neste artigo para automatizar esse processo. Para uma alternativa mais rápida, considere usar PnP PowerShell com um runbook agendado do Azure Automation para verificar e corrigir permissões diariamente.

ADVERTISEMENT