Como Auditar Permissões Exclusivas em um Site do SharePoint
🔍 WiseChecker

Como Auditar Permissões Exclusivas em um Site do SharePoint

Ao quebrar a herança de permissões em um site, biblioteca, lista ou item do SharePoint, você cria permissões exclusivas que não são mais gerenciadas pelo pai. Com o tempo, essas permissões quebradas podem se acumular e se tornar difíceis de rastrear. Isso pode levar a lacunas de segurança onde usuários têm acesso que não deveriam ou onde o acesso é removido acidentalmente. Este artigo explica como identificar todos os locais com permissões exclusivas em um site do SharePoint usando ferramentas nativas e PowerShell, sem software de terceiros.

Principais Conclusões: Auditoria de Permissões Exclusivas no SharePoint

  • Configurações do Site > Permissões do Site: Mostra o status atual de herança de permissões para o site raiz e permite verificar subsites.
  • SharePoint Management Shell (PowerShell): A maneira mais eficiente de verificar todos os subsites, listas, bibliotecas e itens quanto à herança quebrada.
  • Exportação dos resultados para CSV: Permite revisar e arquivar a auditoria completa de permissões em uma planilha legível.

ADVERTISEMENT

O que causa permissões exclusivas e por que auditá-las

O SharePoint usa herança de permissões por padrão. Um novo subsite herda permissões do conjunto de sites pai. Uma biblioteca herda do site, e uma pasta ou item herda da biblioteca. Quando você quebra essa herança, cria permissões exclusivas para aquele objeto específico. Isso é feito frequentemente para conceder acesso a um grupo específico a uma única biblioteca de documentos sem afetar o resto do site.

O problema é que permissões exclusivas não são automaticamente visíveis na página de permissões padrão do site. Você precisa verificar cada subsite, biblioteca, lista e item individualmente. Com o tempo, permissões exclusivas órfãs podem permanecer após o término de um projeto ou a saída de um usuário da organização. Auditar permissões exclusivas ajuda a encontrar esses objetos, revisar quem tem acesso e decidir se deve restaurar a herança ou atualizar as permissões.

Passos para auditar permissões exclusivas usando a interface do navegador

O método do navegador funciona para sites pequenos com poucos subsites e bibliotecas. Para sites grandes, use o método PowerShell na próxima seção.

  1. Abra Permissões do Site
    Acesse seu site do SharePoint. Selecione o ícone de engrenagem Configurações > Permissões do site. Na página Permissões, observe a parte superior da faixa de opções. Se você vir Gerenciar pai, o site herda permissões do pai. Se vir Excluir permissões exclusivas, o site tem permissões exclusivas.
  2. Verifique cada subsite
    Navegue até cada subsite. Repita o passo 1. Anote o nome do subsite e se ele tem permissões exclusivas. Você precisa fazer isso manualmente para cada subsite.
  3. Verifique listas e bibliotecas
    Abra uma biblioteca. Selecione o ícone de engrenagem Configurações > Configurações da biblioteca. Em Permissões e Gerenciamento, selecione Permissões para esta biblioteca de documentos. A faixa de opções mostra Gerenciar pai (herdado) ou Excluir permissões exclusivas (exclusivo). Repita para cada lista e biblioteca.
  4. Verifique pastas e itens
    Abra uma biblioteca. Selecione uma pasta ou item. Selecione os três pontos > Gerenciar acesso. O painel mostra permissões herdadas ou exclusivas. Repita para cada pasta e item que você suspeita ter herança quebrada.

ADVERTISEMENT

Passos para auditar permissões exclusivas usando PowerShell

O PowerShell verifica todos os objetos em um conjunto de sites e exporta os resultados para um arquivo CSV. Este método funciona para sites com muitos subsites, bibliotecas e itens.

  1. Instale o SharePoint Online Management Shell
    Abra o PowerShell como administrador. Execute Install-Module -Name Microsoft.Online.SharePoint.PowerShell. Se for solicitado sobre NuGet, selecione Sim.
  2. Conecte-se ao SharePoint Online
    Execute Connect-SPOService -Url https://seutenant-admin.sharepoint.com. Insira suas credenciais de administrador global ou administrador do SharePoint.
  3. Execute o script de verificação de permissões
    Copie e cole o script a seguir no PowerShell. Substitua https://seutenant.sharepoint.com/sites/seustie pela URL do seu conjunto de sites. O script verifica todos os webs, listas, pastas e itens quanto à herança quebrada e exporta os resultados para um arquivo CSV em sua área de trabalho.
$SiteUrl = "https://seutenant.sharepoint.com/sites/seustie"
$OutputFile = "$env:USERPROFILE\Desktop\UniquePermissionsAudit.csv"

$Results = @()

$Webs = Get-SPOSite -Identity $SiteUrl | Get-SPOSite -Limit All | ForEach-Object { Get-SPOWeb -Site $_.Url }

foreach ($Web in $Webs) {
    $WebCtx = $Web.Context
    $WebCtx.Load($Web)
    $WebCtx.Load($Web.Webs)
    $WebCtx.Load($Web.Lists)
    $WebCtx.ExecuteQuery()

    # Verificar permissões exclusivas do web
    if (-not $Web.HasUniqueRoleAssignments) {
        $Results += [PSCustomObject]@{
            ObjectType = "Web"
            Title = $Web.Title
            Url = $Web.Url
            HasUniquePermissions = $false
        }
    } else {
        $Results += [PSCustomObject]@{
            ObjectType = "Web"
            Title = $Web.Title
            Url = $Web.Url
            HasUniquePermissions = $true
        }
    }

    foreach ($List in $Web.Lists) {
        if (-not $List.HasUniqueRoleAssignments) {
            $Results += [PSCustomObject]@{
                ObjectType = "List"
                Title = $List.Title
                Url = $List.ParentWeb.Url + "/" + $List.Title
                HasUniquePermissions = $false
            }
        } else {
            $Results += [PSCustomObject]@{
                ObjectType = "List"
                Title = $List.Title
                Url = $List.ParentWeb.Url + "/" + $List.Title
                HasUniquePermissions = $true
            }
        }
    }
}

$Results | Export-Csv -Path $OutputFile -NoTypeInformation
Write-Host "Auditoria concluída. Arquivo salvo em $OutputFile"

O script verifica apenas o web raiz e seus webs filhos imediatos. Para verificar todos os subsites recursivamente, você precisa de um script mais avançado que percorra a WebCollection de cada web. O CSV de saída contém três colunas: ObjectType (Web, List, Library, Folder ou Item), Title, Url e HasUniquePermissions (True ou False).

Problemas comuns ao auditar permissões exclusivas

O script PowerShell não retorna resultados para listas ou bibliotecas

O script acima carrega apenas a propriedade Lists de cada web. Se uma lista ou biblioteca estiver oculta na interface, ela ainda aparece nos resultados. Se você não vir listas, verifique se a URL do conjunto de sites está correta e se você tem direitos de Administrador do Conjunto de Sites. Execute Get-SPOSite -Identity $SiteUrl para confirmar que o site existe.

A interface do navegador não mostra permissões exclusivas, mas o PowerShell mostra muitas

A interface do navegador verifica apenas o web ou lista atual. O PowerShell verifica todos os objetos. Se você nunca quebrou a herança no site, mas os usuários relatam problemas de acesso, verifique as permissões do conjunto de sites pai. Um conjunto de sites pode herdar do nível do tenant, e alterações no nível do tenant podem não aparecer na página de permissões do site.

Você não consegue restaurar a herança após a auditoria

Para restaurar a herança, vá até o objeto com permissões exclusivas. Selecione Configurações > Permissões do site ou Configurações da biblioteca > Permissões para esta biblioteca de documentos. Na faixa de opções, selecione Excluir permissões exclusivas. Isso remove as permissões exclusivas e o objeto passa a herdar do pai novamente. Todas as atribuições de permissões exclusivas atuais são perdidas. Certifique-se de ter um registro das permissões atuais antes de excluí-las.

ADVERTISEMENT

Método do navegador vs Método PowerShell: Principais diferenças

Item Interface do Navegador PowerShell
Configuração necessária Nenhuma Instalar SharePoint Online Management Shell
Escopo da verificação Um web, lista ou item por vez Todos os webs, listas, bibliotecas, pastas e itens em um conjunto de sites
Formato de saída Botões visuais na faixa de opções Exportação para arquivo CSV
Melhor para Sites com menos de 5 subsites e 10 bibliotecas Sites com muitos subsites, bibliotecas ou itens
Detalhes de permissão incluídos Não, mostra apenas o status da herança Não, mostra apenas o status da herança (pode ser estendido com código adicional)

Após concluir a auditoria, revise o arquivo CSV e decida quais objetos precisam de alterações de permissão. Para objetos que não exigem mais acesso exclusivo, restaure a herança. Para objetos que precisam de permissões diferentes, atualize as atribuições de função diretamente. Use o botão Verificar Permissões na faixa de opções para verificar as permissões efetivas de um usuário específico antes de fazer alterações.

ADVERTISEMENT