Cómo auditar permisos únicos en un sitio de SharePoint
🔍 WiseChecker

Cómo auditar permisos únicos en un sitio de SharePoint

Cuando interrumpe la herencia de permisos en un sitio, biblioteca, lista o elemento de SharePoint, crea permisos únicos que ya no son administrados por el elemento primario. Con el tiempo, estos permisos interrumpidos pueden acumularse y volverse difíciles de rastrear. Esto puede provocar brechas de seguridad donde los usuarios tienen acceso que no deberían tener o donde el acceso se elimina accidentalmente. Este artículo explica cómo identificar todas las ubicaciones con permisos únicos en un sitio de SharePoint usando herramientas integradas y PowerShell, sin software de terceros.

Puntos clave: Auditoría de permisos únicos en SharePoint

  • Configuración del sitio > Permisos del sitio: Muestra el estado actual de la herencia de permisos para el sitio raíz y le permite verificar los subsitios.
  • SharePoint Management Shell (PowerShell): La forma más eficiente de escanear todos los subsitios, listas, bibliotecas y elementos en busca de herencia interrumpida.
  • Exportación de resultados a CSV: Le permite revisar y archivar la auditoría completa de permisos en una hoja de cálculo legible.

ADVERTISEMENT

Qué causa los permisos únicos y por qué auditarlos

SharePoint usa la herencia de permisos de forma predeterminada. Un nuevo subsitio hereda los permisos de su colección de sitios primaria. Una biblioteca hereda del sitio, y una carpeta o elemento hereda de la biblioteca. Cuando interrumpe esta herencia, crea permisos únicos para ese objeto específico. Esto se hace a menudo para otorgar acceso a un grupo específico a una sola biblioteca de documentos sin afectar el resto del sitio.

El problema es que los permisos únicos no son visibles automáticamente en la página de permisos del sitio predeterminada. Debe verificar cada subsitio, biblioteca, lista y elemento individualmente. Con el tiempo, los permisos únicos huérfanos pueden permanecer después de que finaliza un proyecto o un usuario deja la organización. Auditar los permisos únicos le ayuda a encontrar estos objetos, revisar quién tiene acceso y decidir si restaurar la herencia o actualizar los permisos.

Pasos para auditar permisos únicos usando la interfaz del navegador

El método del navegador funciona para sitios pequeños con pocos subsitios y bibliotecas. Para sitios grandes, use el método de PowerShell en la siguiente sección.

  1. Abrir Permisos del sitio
    Vaya a su sitio de SharePoint. Seleccione el engranaje de Configuración > Permisos del sitio. En la página Permisos, observe la parte superior de la cinta. Si ve Administrar primario, el sitio hereda permisos de su primario. Si ve Eliminar permisos únicos, el sitio tiene permisos únicos.
  2. Verificar cada subsitio
    Navegue a cada subsitio. Repita el paso 1. Anote el nombre del subsitio y si tiene permisos únicos. Debe hacer esto manualmente para cada subsitio.
  3. Verificar listas y bibliotecas
    Abra una biblioteca. Seleccione el engranaje de Configuración > Configuración de la biblioteca. En Permisos y administración, seleccione Permisos para esta biblioteca de documentos. La cinta muestra Administrar primario (heredado) o Eliminar permisos únicos (único). Repita para cada lista y biblioteca.
  4. Verificar carpetas y elementos
    Abra una biblioteca. Seleccione una carpeta o elemento. Seleccione los tres puntos > Administrar acceso. El panel muestra permisos heredados o únicos. Repita para cada carpeta y elemento que sospeche que tiene herencia interrumpida.

ADVERTISEMENT

Pasos para auditar permisos únicos usando PowerShell

PowerShell escanea todos los objetos de una colección de sitios y exporta los resultados a un archivo CSV. Este método funciona para sitios con muchos subsitios, bibliotecas y elementos.

  1. Instalar SharePoint Online Management Shell
    Abra PowerShell como administrador. Ejecute Install-Module -Name Microsoft.Online.SharePoint.PowerShell. Si se le solicita acerca de NuGet, seleccione Sí.
  2. Conectar a SharePoint Online
    Ejecute Connect-SPOService -Url https://yourtenant-admin.sharepoint.com. Ingrese sus credenciales de administrador global o administrador de SharePoint.
  3. Ejecutar el script de escaneo de permisos
    Copie y pegue el siguiente script en PowerShell. Reemplace https://yourtenant.sharepoint.com/sites/yoursite con la URL de su colección de sitios. El script verifica todos los webs, listas, carpetas y elementos en busca de herencia interrumpida y exporta los resultados a un archivo CSV en su escritorio.
$SiteUrl = "https://yourtenant.sharepoint.com/sites/yoursite"
$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()

    # Check web unique permissions
    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 "Audit complete. File saved to $OutputFile"

El script verifica solo el web raíz y sus webs secundarios inmediatos. Para escanear todos los subsitios de forma recursiva, necesita un script más avanzado que recorra el WebCollection de cada web. El CSV de salida contiene tres columnas: ObjectType (Web, List, Library, Folder o Item), Title, Url y HasUniquePermissions (True o False).

Problemas comunes al auditar permisos únicos

El script de PowerShell no devuelve resultados para listas o bibliotecas

El script anterior carga solo la propiedad Lists de cada web. Si una lista o biblioteca está oculta en la interfaz de usuario, aún aparece en los resultados. Si no ve listas, verifique que la URL de la colección de sitios sea correcta y que tenga derechos de administrador de la colección de sitios. Ejecute Get-SPOSite -Identity $SiteUrl para confirmar que el sitio existe.

La interfaz del navegador no muestra permisos únicos pero PowerShell muestra muchos

La interfaz del navegador solo verifica el web o la lista actual. PowerShell escanea todos los objetos. Si nunca ha interrumpido la herencia en el sitio pero los usuarios informan problemas de acceso, verifique los permisos de la colección de sitios primaria. Una colección de sitios puede heredar del nivel de inquilino, y los cambios en el nivel de inquilino pueden no aparecer en la página de permisos del sitio.

No puede restaurar la herencia después de la auditoría

Para restaurar la herencia, vaya al objeto con permisos únicos. Seleccione Configuración > Permisos del sitio o Configuración de la biblioteca > Permisos para esta biblioteca de documentos. En la cinta, seleccione Eliminar permisos únicos. Esto elimina los permisos únicos y el objeto vuelve a heredar de su primario. Todas las asignaciones de permisos únicos actuales se pierden. Asegúrese de tener un registro de los permisos actuales antes de eliminarlos.

ADVERTISEMENT

Método del navegador vs método de PowerShell: diferencias clave

Elemento Interfaz del navegador PowerShell
Configuración requerida Ninguna Instalar SharePoint Online Management Shell
Alcance del escaneo Un web, lista o elemento a la vez Todos los webs, listas, bibliotecas, carpetas y elementos de una colección de sitios
Formato de salida Botones visuales de la cinta Exportación de archivo CSV
Ideal para Sitios con menos de 5 subsitios y 10 bibliotecas Sitios con muchos subsitios, bibliotecas o elementos
Detalles de permisos incluidos No, solo muestra el estado de herencia No, solo muestra el estado de herencia (se puede ampliar con código adicional)

Después de completar la auditoría, revise el archivo CSV y decida qué objetos necesitan cambios de permisos. Para los objetos que ya no requieren acceso único, restaure la herencia. Para los objetos que necesitan permisos diferentes, actualice las asignaciones de roles directamente. Use el botón Comprobar permisos en la cinta para verificar los permisos efectivos de un usuario específico antes de realizar cambios.

ADVERTISEMENT