Office 365 discovery
Este documento describe la funcionalidad Office 365 de de PandoraFMS, compuesta por el plugin de discovery.
- Introducción
- Prerrequisitos
- Parámetros
- Ejecución manual
- Discovery
- Agentes y módulos generados por el plugin
Introducción
Este plugin tiene como finalidad monitorizar el estado de los servicios y licencias de Microsoft 365, incluyendo incidencias activas, mensajes del sistema y detalles de suscripciones.
El plugin se conecta a la API de Microsoft Graph para obtener información sobre la salud de los servicios, mensajes de mantenimiento y datos de licenciamiento, generando módulos de monitorización compatibles con Pandora FMS.
Prerrequisitos
- El plugin es un compilado que contiene todas las dependencias necesarias para su uso, por lo que solo requiere tener una aplicación en Microsoft Entra ID configurada con los permisos necesarios para poder autenticar a través de un clientID, tenandID y un secret. El proceso de creación y otorgación de permisos viene explicado a continuación:
Registro de una aplicación en Microsoft Entra ID
Las API de administración de Office 365 requieren autenticación mediante Microsoft Entra ID. lo que garantiza un acceso seguro a los datos del inquilino. Para poder usar estas API, es necesario registrar previamente la aplicación dentro de Microsoft Entra ID y definir los permisos que dicha aplicación necesitará para interactuar con los recursos de Office 365.
Antes de comenzar, asegúrate de disponer de una suscripción a Office 365 y una suscripción a Azure vinculadas entre sí dentro del mismo inquilino.
Registro de la aplicación en el portal de Azure
Una vez dispongas del entorno configurado, puedes proceder al registro de la aplicación desde el portal de Azure siguiendo estos pasos:
1. Accede al portal de Azure (https://portal.azure.com) iniciando sesión con una cuenta del inquilino de Microsoft que tenga la suscripción de Office 365 que vayas a utilizar. También puedes abrir el portal desde el Centro de administración de Microsoft 365, donde suele haber un acceso directo al panel de Azure.
2. En el menú lateral izquierdo del portal, selecciona Microsoft Entra ID.
3. En la página de Microsoft Entra ID, entra en la sección Registros de aplicaciones y pulsa en Nuevo registro.
4. Se abrirá el asistente para crear un nuevo registro de aplicación. Completa los siguientes campos:
- Nombre: asigna un nombre descriptivo a tu aplicación.
- Tipo de acceso: indica quién podrá utilizar la aplicación (solo cuentas de tu organización o también de otros inquilinos).
- URI de redirección: especifica una dirección URL a la que se redirigirá al usuario una vez completada la autenticación (opcional según el tipo de aplicación).5. Finalmente, haz clic en Registrar para completar el proceso.
Configurar las propiedades de la aplicación en Microsoft Entra ID
Una vez registrada la aplicación, es necesario definir algunas propiedades clave que determinan cómo se comportará dentro de Microsoft Entra ID y de qué forma los administradores de los inquilinos podrán otorgar los permisos necesarios para que la aplicación acceda a los datos a través de las API de administración de Office 365.
Principales propiedades que debes revisar:
- Identificador del cliente (Client ID): este valor se genera automáticamente en Microsoft Entra ID. La aplicación lo utilizará al solicitar consentimiento a los administradores del inquilino y al pedir tokens de acceso de tipo “solo aplicación”.
- Aplicación multitenant: esta opción debe establecerse en “Sí” para permitir que administradores de otros inquilinos concedan acceso a tu aplicación mediante las API de administración de Office 365. Si se deja en “No”, la aplicación solo podrá trabajar con los datos del inquilino en el que fue registrada.
- URL de respuesta (Reply URL): es la dirección a la que será redirigido un administrador del inquilino después de otorgar el consentimiento. Puedes definir varias URL de respuesta si lo necesitas. De forma predeterminada, Azure usa la misma URL de inicio de sesión que se indicó al crear la aplicación, aunque este valor puede modificarse en cualquier momento.
Recuerda guardar los cambios una vez que ajustes cualquiera de estas propiedades.
Generar una nueva clave para la aplicación
Sigue estos pasos para crear un nuevo secreto de cliente:
1. En el portal de Azure, accede a la sección Microsoft Entra ID. Dentro de ella, selecciona Registros de aplicaciones y luego elige la aplicación que registraste previamente.
2. Una vez en la página de la aplicación, haz clic en Certificados y secretos en el menú lateral izquierdo. Desde allí podrás cargar certificados o crear nuevos secretos de cliente.
3. En la pestaña Certificados y secretos, selecciona la opción Nuevo secreto de cliente. Indica una descripción para identificarlo fácilmente, define su periodo de validez y luego pulsa en Agregar.
4. Una vez creado el secreto, su valor aparecerá en el apartado Secretos del cliente. Copia este valor utilizando el icono del portapapeles y guárdalo en un lugar seguro.
Azure solo muestra el valor secreto del cliente en el momento en que lo genera inicialmente. No puede volver a esta página y recuperar el valor secreto del cliente más tarde. Asegúrese de copiarlo y guardarlo en una ubicación segura para que pueda usarlo más tarde.
Aparte del secret, necesitaremos el tenant id y el client id para autenticar, estos se pueden obtener desde el menú general de la aplicación:
Definir los permisos que necesita tu aplicación para acceder a las API de administración de Office 365
El último paso consiste en indicar con precisión qué permisos requerirá tu aplicación para poder utilizar las API de administración de Office 365. Para ello, debes añadir el acceso a dichas API y luego establecer los permisos necesarios.
1. En el portal de Azure, dirígete a Microsoft Entra ID > Registros de aplicaciones > Todas las aplicaciones.
Selecciona la aplicación correspondiente y, en el menú lateral izquierdo, haz clic en Permisos de API.
A continuación, pulsa en Agregar un permiso para abrir la ventana donde se configuran los permisos.
2. En la pestaña API de Microsoft, selecciona la opción API de administración de Office 365.
3. Se mostrará un panel lateral donde podrás elegir los tipos de permisos que tu aplicación necesita.
Una vez seleccionados, haz clic en Agregar permisos para confirmarlos.
Los permisos que necesita el plugin son los siguientes :
Finalmente, selecciona “Otorgar consentimiento de administrador para <nombre del inquilino>” para aprobar los permisos que has asignado a la aplicación.
Parámetros
| --conf | Ruta al archivo de configuración |
agents_group_name= Grupo para los agentes creados
interval= Intervalo de creación del agente
transfer_mode= modo de transferencia (local o tentacle)
client_id= Cliente ID de la cuenta office
tenant_id= Tenant ID de la cuenta office
secret= Secreto de la cuenta office
tentacle_ip= Direccion de tentacle
tentacle_port= Puerto de tentacle
logs = Activar con 1 para la creación de módulos de log
utf8= Activar con 1, para codificar el valor del módulo issues
no_data= Si se activa con 1, solo se crearan módulos de logs
prefix_licensing= Prefijo para el agente de licencias y sus modulos.
prefix = Prefijo para el agente general y sus módulos
agent_name= Nombre para el agente general
agent_name_licensing= Nombre para el agente de licencias
licensing= Activar con 1 para habilitar la creación de un agente para licencias y sus módulos
Ejemplo
agents_group_name = applications
interval = 300
transfer_mode = tentacle
secret = kxT8Q~wM87V2E~S3FAHF4FF4FovBMQzSAFA4Uqc.I
client_id = 4355g5g5fb-7cac-450a-8ba9-ef3edhadna3
tenant_id = 540v7f7sv8s-345d-43ec-b511-d1cfdbdvbf43e4
tentacle_ip = 172.42.42.101
tentacle_port = 41121
logs = 1
utf8 = 1
no_data = 1
prefix_licensing = REQ
prefix = REQ
agent_name = Office_status
agent_name_licensing = Office_licensing
licensing = 1
Ejecución manual
El formato de la ejecución del plugin es el siguiente:
./pandora_o365 --conf < ruta al fichero de configuración >
Por ejemplo:
./pandora_o365 --conf /usr/share/pandora_server/util/plugin/office365.conf
La ejecución devolverá una salida en formato JSON con información sobre la ejecución, y generará un fichero XML para cada agente monitorizado que enviará al servidor de Pandora FMS por el método de transferencia indicado en la configuración.
Discovery
Este plugin puede integrarse con el Discovery de Pandora FMS.
Para ello se debe cargar el paquete ".disco" que puede descargar desde la librería de Pandora FMS:
https://marketplace.pandorafms.com/
Una vez cargado, se podrán monitorizar cuentas de Office 365 creando tareas de Discovery desde la sección Management > Discovery > App
Para cada tarea se solicitarán los siguientes datos mínimos:
- Client ID: Client id de la cuenta de office 365.
- Tenant ID: Tenant id de la cuenta de office 365.
- Secret: Secret de la cuenta de office 365.
- Tentacle IP: Dirección de tentacle
- Tentacle port: Puerto de tentacle
En la siguiente página se nos requerirán los siguientes :
- Max Threads: Número de threads
- Agent Name: Nombre para el agente principal
- Prefix: Prefijo para el agente principal y sus módulos
- Logs: Activar para habilitar la creación de módulos de logs
- Utf8: Activar para habilitar la codificación de los modulos de Issue
- Not data: Activar para deshabilitar la monitorización de los módulos del agente general (exceptuando módulos de log)
- Activate licensing monitoring: Activar para habilitar la monitorización de los módulos de licencia
- Licensing agent name: Nombre del agente de licencias
- Prefix for licensing data: Prefijo para el agente de licencias y sus módulos
Las tareas completadas con éxito tendrán un resumen de ejecución con la siguiente información:
- Total agents : Número total de agentes generados por la tarea.
- Total modules: Número total de módulos generados por la tarea.
Agentes y módulos generados por el plugin
El plugin creará un agente con el nombre que nosotros configuremos con el nombre que usemos con el parametro "agent_name", dispondrá de un módulo de status y otro de active issues por cada servicio. Por defecto : "Pandora_O365_" .
Por ejemplo :
| O365_Bookings_active_issues |
| O365_Bookings_status |
| O365_cloudappsecurity_active_issues |
| O365_cloudappsecurity_status |
| O365_DynamicsAX_active_issues |
| O365_DynamicsAX_status |
| O365_DynamicsCRM_active_issues |
| O365_DynamicsCRM_status |
| O365_Exchange_active_issues |
| O365_Exchange_status |
| O365_Forms_active_issues |
| O365_Forms_status |
| O365_Intune_active_issues |
| O365_Intune_status |
| O365_kaizalamessagingservices_active_issues |
| O365_kaizalamessagingservices_status |
| O365_Lync_active_issues |
| O365_Lync_status |
| O365_MicrosoftFlowM365_active_issues |
| O365_MicrosoftFlowM365_status |
| O365_MicrosoftFlow_active_issues |
| O365_MicrosoftFlow_status |
| O365_microsoftteams_active_issues |
| O365_microsoftteams_status |
| O365_MobileDeviceManagement_active_issues |
| O365_MobileDeviceManagement_status |
| O365_O365Client_active_issues |
| O365_O365Client_status |
| O365_officeonline_active_issues |
| O365_officeonline_status |
| O365_OneDriveForBusiness_active_issues |
| O365_OneDriveForBusiness_status |
| O365_OrgLiveID_active_issues |
| O365_OrgLiveID_status |
| O365_OSDPPlatform_active_issues |
| O365_OSDPPlatform_status |
| O365_Planner_active_issues |
| O365_Planner_status |
| O365_PowerAppsM365_active_issues |
| O365_PowerAppsM365_status |
| O365_PowerApps_active_issues |
| O365_PowerApps_status |
| O365_ProjectForTheWeb_active_issues |
| O365_ProjectForTheWeb_status |
| O365_ProjectOnline_active_issues |
| O365_ProjectOnline_status |
| O365_RMS_active_issues |
| O365_RMS_status |
| O365_SharePoint_active_issues |
| O365_SharePoint_status |
| O365_StaffHub_active_issues |
| O365_StaffHub_status |
| O365_Stream_active_issues |
| O365_Stream_status |
| O365_SwayEnterprise_active_issues |
| O365_SwayEnterprise_status |
| O365_Viva_active_issues |
| O365_Viva_status |
| O365_yammer_active_issues |
| O365_yammer_status |
El plugin creará un agente con el nombre que nosotros configuremos con el nombre que usemos con el parametro "agent_name_licensing". Por defecto : "Pandora_O365_licensing" . Tendra los siguientes módulos :
| <skuPartNumber> |
| <skuPartNumber> consumedUnits |
| <skuPartNumber> Units enabled |
| <skuPartNumber> Units lockedOut |
| <skuPartNumber> Units suspended |
| <skuPartNumber> Units warning |
| <skuPartNumber> Consumed Units % |
| <skuPartNumber> Units Available |