Puntos clave
- Esta guía te muestra cómo usar la API de Microsoft Graph para extraer datos de cumplimiento de Microsoft 365 de varios tenants desde un único endpoint.
- Cada tenant de Azure AD necesita su propio registro de aplicación con los permisos Reports.Read.All, AuditLog.Read.All, SecurityEvents.Read.All y Directory.Read.All, además del consentimiento del administrador, para que las llamadas a la API de Graph funcionen.
- El SDK de Microsoft Graph para PowerShell se autentica con el ID de cliente, el ID de tenant y el secreto de una aplicación registrada, y después envía solicitudes a la API de Graph para obtener registros de inicio de sesión, alertas de seguridad y etiquetas de retención.
- Si guardas las credenciales de los tenants en un archivo JSON y recorres cada uno en un bucle, los equipos de TI pueden extraer y exportar datos de cumplimiento de todos los tenants gestionados de forma periódica, sin iniciar sesión manualmente.
- Los secretos de cliente caducados y los límites de velocidad de Microsoft Graph son los puntos de fallo más habituales, así que las alertas proactivas de rotación de secretos y la lógica de reintentos importan tanto como la configuración inicial.
- Las plataformas de automatización que permiten ejecutar scripts de PowerShell en los endpoints gestionados ayudan a programar estas extracciones con la API de Graph y a añadir contexto a nivel de dispositivo.
Las herramientas de seguridad y cumplimiento de la API de Microsoft Graph son imprescindibles en cualquier entorno empresarial. Te ofrecen un endpoint unificado desde el que puedes acceder a todos los registros de auditoría, informes de DLP, incidencias de alertas y políticas de retención de las cuentas de Microsoft 365 de tu organización.
Usar esta herramienta tiene varias ventajas claras: ayuda a mantener la visibilidad del cumplimiento entre tenants, automatiza los informes sin depender del acceso al portal, aporta un método de autenticación seguro basado en aplicaciones y facilita la integración con SIEM y dashboards personalizados.
Guía para acceder a los informes de cumplimiento con Microsoft Graph
Antes de empezar, tienes que configurar la aplicación en el portal de Azure AD y comprobar que tiene los permisos necesarios. Después podrás conectar tu cuenta a Microsoft Graph mediante Windows PowerShell y generar los informes automáticamente. También tienes la opción de automatizar el proceso con un archivo .JSON.
Los GPO sirven para reforzar tus procedimientos de seguridad. Puedes usar el Registro de Windows para asegurarte de que todas las políticas se aplican de forma coherente en todos tus dispositivos gestionados. Y, si se produce algún error, puedes recurrir a CMD para solucionar problemas.
Requisitos previos:
- Registro de aplicación en Azure AD para cada tenant (o usar Microsoft Lighthouse, necesario para el acceso delegado)
- Necesitas el consentimiento del administrador para los ámbitos de API requeridos.
- Se requiere el complemento Microsoft 365 E5 Compliance para los informes avanzados.
- Debes tener Windows PowerShell con el SDK de Microsoft Graph instalado.
- Opcional/recomendable: acceso a Intune, GPO y el Registro de Windows para validar las políticas en los endpoints
El vídeo muestra en pantalla cómo usar la API de Microsoft Graph para extraer informes de cumplimiento de varios tenants: una referencia útil antes de empezar a navegar y configurar opciones.
Paso 1: registra una aplicación en Azure para acceder a Graph
- Abre el portal de Azure AD en tu navegador.
- Ve a App Registrations > New Registration.
- Asigna un nombre a la aplicación que quieres registrar.
- Define el tipo de cuenta con acceso en Accounts in this organizational directory only (Contoso only – Single tenant).
- Cuando termines, modifica los permisos de la aplicación haciendo clic en Add a permission. Esto te llevará a Microsoft Graph.
- Concede los siguientes permisos:
- Reports.Read.All
- AuditLog.Read.All
- SecurityEvents.Read.All
- Directory.Read.All
- Haz clic en Add Permissions.
- Haz clic en el botón Grant admin consent. A partir de ahí, la aplicación ya puede leer todos los perfiles de usuario a los que le has dado acceso.
- Ve a Certificates & secrets.
- Selecciona Client Secrets > New Client secret.
- Rellena la información y sigue las indicaciones. Esto hará de contraseña de la aplicación.
- Anota el ID de aplicación (cliente), el ID de directorio (tenant) y el valor del secreto. Con esos datos podrás acceder de nuevo a la aplicación en el futuro.
Repite o automatiza este proceso en cada tenant que lo necesite.
Paso 2: conéctate a Microsoft Graph desde PowerShell
- Abre el menú Inicio y busca Windows PowerShell.
- Haz clic derecho en Windows PowerShell > Ejecutar como administrador.
- Para instalar Microsoft Graph, escribe el siguiente comando y pulsa Intro:
Install-Module Microsoft.Graph -Scope CurrentUser
Import-Module Microsoft.Graph
- Para conectarte con las credenciales de tu aplicación, escribe el siguiente comando y pulsa Intro:
Connect-MgGraph -ClientId "APP_ID" -TenantId "TENANT_ID" -ClientSecret (ConvertTo-SecureString "SECRET" -AsPlainText -Force)
Cambia «APP_ID» por el ID de cliente, «TENANT_ID» por el ID de tenant y «SECRET» por el valor del secreto que has generado.
- Para seleccionar el ámbito, escribe
Select-MgProfile -Name "beta"y pulsa Intro.
Ya estás conectado a Microsoft Graph.
Paso 3: extrae los informes de cumplimiento con la API de Microsoft Graph
Una vez que hayas iniciado sesión en Microsoft Graph desde Windows PowerShell, sigue estos pasos:
- Para obtener los registros de auditoría, escribe este comando y pulsa Intro:
$logs = Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/beta/auditLogs/signIns"
- Para listar las alertas de DLP, escribe este comando y pulsa Intro:
$alerts = Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/beta/security/alerts"
- Para listar las políticas de retención, escribe este comando y pulsa Intro:
$policies = Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/beta/security/retentionLabels"
- Para exportar los datos a un archivo .CSV, escribe este comando y pulsa Intro:
$logs.value | Export-Csv -Path ".\Tenant_AuditLogs.csv" -NoTypeInformation
Repite el proceso en cada tenant e inicia sesión con sus credenciales específicas.
Opcional: automatiza los informes entre tenants
Los administradores de TI pueden guardar las credenciales de todos los tenants en un archivo JSON. Al ejecutar ese archivo, recorren cada tenant cuando lo necesiten para conectarse a todos ellos y consolidar los datos. También pueden ejecutarlo automáticamente de forma periódica con el Programador de tareas, desde su herramienta de gestión de endpoints.
Este es un ejemplo de estructura de bucle por tenant:
foreach ($tenant in $tenantList) {Connect-MgGraph -ClientId $tenant.ClientId -TenantId $tenant.TenantId -ClientSecret $tenant.Secret$auditData = Invoke-MgGraphRequest -Uri "https://graph.microsoft.com/beta/auditLogs/signIns"$auditData.value | Export-Csv -Path ".\$($tenant.Name)_Audit.csv" -Append}
Opcional: usa el Registro para aportar contexto de informes en los endpoints
Caso de uso: las claves del Registro sirven para garantizar que el etiquetado de dispositivos y las etiquetas de informes se aplican de forma coherente en todos tus dispositivos. Para ello, sigue estos pasos:
- Abre el menú Inicio y busca Editor del Registro para abrir el programa.
- Localiza la clave del Registro correspondiente a la aplicación que quieres comprobar. Como referencia, esta es una ruta de Registro de ejemplo con los valores relevantes que contiene:
HKEY_LOCAL_MACHINE\SOFTWARE\Contoso\Compliance
- TenantTag (String): el valor debe ser «ClientA».
- LastAuditSync (String): el valor debe ser «[Fecha de la última sincronización de auditoría]».
Nota: puedes usar scripts que lean estas etiquetas para incluir metadatos de los endpoints en los informes generados con Graph.
Opcional: usa directivas de grupo para el estado de cumplimiento de los endpoints
Caso de uso: las directivas de grupo ayudan a aplicar y garantizar el cumplimiento en los endpoints, sobre todo para la puntuación de cumplimiento y los informes de sensibilidad de los datos.
- Abre el menú Inicio y busca Editar directiva de grupo para abrir el programa.
- Ve a esta ubicación: Configuración del equipo > Plantillas administrativas > Componentes de Windows > Recopilación de datos.
- Habilita las siguientes políticas:
- Permitir telemetría: conviene configurarla también como Mejorada o Completa.
- Configurar el ID comercial para la agrupación de dispositivos
Opcional: usa CMD para validar permisos y conectividad
Caso de uso: resulta útil en entornos on-premise o híbridos en los que los endpoints necesitan alinearse con el cumplimiento.
- Abre el menú Inicio y busca Símbolo del sistema.
- Haz clic derecho en Símbolo del sistema > Ejecutar como administrador.
- Para comprobar el acceso a Internet y al endpoint de Graph, escribe este comando y pulsa Intro:
nslookup graph.microsoft.com
ping graph.microsoft.com
Para validar el estado de sincronización del agente local, escribe este comando y pulsa Intro:
dsregcmd /status
Para asegurarte de que las políticas de GPO se han aplicado, escribe esto y pulsa Intro:
gpresult /h gpo.html
Guía de inicio rápido
NinjaOne te ayuda a usar la API de Microsoft Graph para extraer informes de cumplimiento de varios tenants. La plataforma de NinjaOne está pensada para simplificar el trabajo con los ecosistemas de Microsoft 365, incluidos escenarios complejos como los informes de cumplimiento multitenant, y cuenta con funciones específicas para gestionar y automatizar estos procesos.
- Informes de cumplimiento: extrae informes de seguridad y cumplimiento de todas las cuentas gestionadas.
- Automatización: automatiza la generación de informes y los procesos de recopilación de datos.
- Integración: se conecta sin fricciones con Microsoft Graph para acceder a los datos en tiempo real.
- Escalabilidad: diseñada para supervisar el cumplimiento a gran escala en toda la organización.
Aspectos a tener en cuenta
| Problema/riesgo | Posibles consecuencias | Solución/reversión |
| Te aparece un error de «Acceso denegado». | No puedes acceder a los datos que buscas. | Comprueba que el consentimiento del administrador y los ámbitos de API necesarios estén correctamente asignados. |
| Recibes una respuesta vacía. | No obtienes los datos que buscas. | Asegúrate de que el tenant tenga las licencias adecuadas y el registro de actividad habilitado. |
| El secreto de cliente ha caducado. | No podrás acceder a los datos en Microsoft Graph. | Configura una alerta en tu herramienta de gestión de endpoints que te avise cuando los secretos estén a punto de caducar y así evitar el problema. |
| Hay un error en el script. | No podrás extraer los informes. | Usa bloques Try/Catch y registro detallado para rastrear los errores. |
Otras consideraciones al usar Microsoft Graph para extraer informes de cumplimiento
- Ten en cuenta los límites de velocidad y la limitación (throttling) de Microsoft Graph. En algunos casos tendrás que reintentar acciones, sobre todo si extraes muchos datos.
- Puedes reducir la complejidad con Azure Lighthouse o modelos de acceso entre tenants.
- Usa Azure Key Vault o una solución de almacenamiento cifrado para guardar tus secretos de cliente.
- Asegúrate de que solo el personal autorizado tenga acceso a los informes que contienen datos de usuarios concretos.
Servicios de NinjaOne
NinjaOne potencia la automatización del cumplimiento basada en Graph gracias a:
- Ejecución entre tenants: puedes programar y desplegar scripts de informes de PowerShell en todos los tenants gestionados con la herramienta de PowerShell remoto de NinjaOne.
- Gestión centralizada de credenciales: guarda las credenciales de la API de Graph de forma segura e invócalas por tenant en una solución de almacenamiento cifrado y protegido.
- Alertas y dashboards de cumplimiento: integra los resultados de los informes en dashboards personalizados y recibe notificaciones cuando se superen los umbrales de riesgo.
- Contexto a nivel de endpoint: extrae datos del Registro y de GPO de cada dispositivo para enriquecer los informes de cumplimiento con la herramienta de gestión de endpoints de NinjaOne.
- Gestión de tickets automatizada: configura alertas para cuando se detecten determinadas condiciones de cumplimiento (por ejemplo, inactividad en las auditorías o falta de una política de retención).
Saca partido a Microsoft Graph en tus informes de cumplimiento
Microsoft Graph es una herramienta potente para automatizar los informes de cumplimiento en un entorno empresarial. Ofrece a los administradores de TI una visibilidad escalable de la actividad de los tenants, la protección de datos y la postura de gobernanza.
Temas relacionados:
- ¿Qué es una auditoría de cumplimiento? Definición e importancia
- ¿Qué es la gestión del cumplimiento? Definición e importancia
- ¿Qué es la gestión de secretos? Buenas prácticas de seguridad TI
- ¿Qué es la gestión de API? Visión general y buenas prácticas
- Cómo programar comprobaciones con la API de Graph para licencias caducadas y usuarios inactivos
- [Video Guide] Cómo programar comprobaciones con la API de Graph para licencias caducadas y usuarios inactivos

