Control Granular de Acceso de Aplicaciones a Sharepoint Online
Introducción
Históricamente, las aplicaciones que necesitaban acceder a SharePoint obtenían permisos a nivel de todo el inquilino (tenant), lo que significaba que una aplicación con acceso a SharePoint podía acceder a todos los sitios dentro de ese inquilino. Esta estrategia de «todo o nada» no se alineaba con el principio de privilegio mínimo y generaba significativas preocupaciones de seguridad. Sin embargo, desde 2021, Microsoft ha introducido una solución muy esperada para un control mucho más granular: los permisos a nivel de colección de sitios. En 2025 he decidido escribir este artículo porque todavía veo permisos demasiados abiertos en las evaluaciones de seguridad de M365 que hacemos en GFS.
Presentando Sites.Selected:
La primera fase de esta solución se enfocó en un escenario específico: permitir que las aplicaciones empresariales accedieran únicamente a colecciones de sitios específicos y conocidas, en lugar de a todas las colecciones. Esta funcionalidad se implementa a través de una nueva característica en Microsoft Graph.
El corazón de esta mejora es el nuevo permiso Sites.Selected, disponible para aplicaciones bajo el conjunto de permisos de Microsoft Graph Sites. Al seleccionar este permiso para su aplicación, por defecto, la aplicación no tendrá acceso a ninguna colección de sitios de SharePoint.
¿Cómo Funciona la Asignación de Permisos?
Para otorgar acceso a una aplicación a una colección de sitios específica, un administrador debe utilizar el endpoint de permisos de sitio recientemente introducido en Microsoft Graph. Mediante este endpoint, el administrador puede conceder permisos de Lectura, Escritura, o Lectura y Escritura a una aplicación. Esto asegura que la aplicación solo pueda acceder a los sitios a los que se le ha concedido explícitamente permiso.
Un ejemplo de cómo un administrador podría conceder permiso de escritura a una aplicación llamada «Foo App» para una colección de sitios específica es el siguiente: POST https://graph.microsoft.com/v1.0/sites/{siteId}/permissions Content-Type: application/json { «roles»: [«write»], «grantedToIdentities»: [{ «application»: { «id»: «89ea5c94-7736-4e25-95ad-3fa95f62b66e», «displayName»: «Foo App» } }] }
Los roles disponibles que se pueden asignar incluyen:
• read: Acceso de solo lectura.
• write: Añade permisos de escritura y capacidades relacionadas.
• manage: Añade permisos de gestión de listas/diseñador y capacidades relacionadas.
• fullcontrol: Otorga todos los permisos.
Beneficios Clave de los Permisos a Nivel de Sitio
La adopción de permisos a nivel de sitio ofrece ventajas significativas:
• Seguridad Mejorada y Principio de Privilegio Mínimo: Elimina la necesidad de otorgar a las aplicaciones acceso amplio a todo el inquilino. Esto es crucial para la seguridad de las aplicaciones, especialmente en el contexto actual de un mayor enfoque en la seguridad.
• Control de Acceso Granular: Permite a las organizaciones definir con precisión a qué datos puede acceder una aplicación, lo que es vital para proteger información sensible. Por ejemplo, asegura que una aplicación de clientes no acceda a datos de Recursos Humanos o finanzas.
• Escenarios Empresariales: Está diseñado específicamente para escenarios de desarrollo empresarial donde los departamentos de TI y desarrollo interno colaboran en la creación de aplicaciones de línea de negocio.
Mayor información sobre esto en:
- https://devblogs.microsoft.com/microsoft365dev/controlling-app-access-on-specific-sharepoint-site-collections/
- https://learn.microsoft.com/en-us/sharepoint/dev/sp-add-ins-modernize/understanding-rsc-for-msgraph-and-sharepoint-online
Llega la autenticación delegada
Inicialmente, la capacidad de Sites.Selected solo estaba disponible para escenarios de autenticación solo de aplicación (application-only authentication). Sin embargo, a partir de febrero de 2024, Microsoft ha introducido soporte para escenarios de autenticación delegada con Sites.Selected.
Cuando una aplicación cuenta con el consentimiento para el ámbito delegado de Sites.Selected, el proceso de «selección» de sitios sigue siendo el mismo: una solicitud POST al endpoint /permissions del sitio. Si una aplicación tiene consentimiento tanto para el ámbito delegado como para el de solo aplicación de Sites.Selected, ambos funcionan. La distinción se realiza cuando la aplicación solicita el token de acceso, determinando si el token es de solo aplicación o delegado. Para asegurar que un usuario esté siempre presente cuando una aplicación accede a un sitio, se recomienda consentir solo la opción delegada de Sites.Selected, lo que bloqueará las llamadas de solo aplicación.
Mayor información en:
Conclusión
La introducción de los permisos Sites.Selected marca un paso importante para la seguridad y la gestión de aplicaciones en SharePoint. Al permitir un control de acceso granular y alinearse con los principios de seguridad modernos, esta característica ayuda a las organizaciones a construir aplicaciones más seguras y confiables que interactúan con sus datos de SharePoint.
En el servicio de Evaluación de Seguridad de M365 de GFS revisamos este y muchos otros parámetros. Contáctanos para que te podamos ayudar a mejorar la seguridad de tu entorno M365 y Sharepoint Online específicamente.