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.
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.
- 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. - 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. - 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. - 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.
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.
- Instalar SharePoint Online Management Shell
Abra PowerShell como administrador. EjecuteInstall-Module -Name Microsoft.Online.SharePoint.PowerShell. Si se le solicita acerca de NuGet, seleccione Sí. - Conectar a SharePoint Online
EjecuteConnect-SPOService -Url https://yourtenant-admin.sharepoint.com. Ingrese sus credenciales de administrador global o administrador de SharePoint. - Ejecutar el script de escaneo de permisos
Copie y pegue el siguiente script en PowerShell. Reemplacehttps://yourtenant.sharepoint.com/sites/yoursitecon 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.
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.