Descripción general
El conector de Microsoft 365 proporciona la funcionalidad para obtener datos de los servicios de Microsoft 365 (OneDrive, OneNote, Teams, SharePoint) y registrarlos en el índice de Fess.
Esta funcionalidad requiere el plugin fess-ds-microsoft365.
Servicios compatibles
OneDrive: Unidades de usuario, unidades de grupo, documentos compartidos
OneNote: Cuadernos (sitio, usuario, grupo)
Teams: Canales, mensajes, chats
SharePoint Document Libraries: Metadatos de bibliotecas de documentos
SharePoint Lists: Listas y elementos de lista
SharePoint Pages: Páginas del sitio, artículos de noticias
Requisitos previos
Se requiere la instalación del plugin
Se requiere el registro de la aplicación en Azure AD
Se requieren la configuración de permisos de Microsoft Graph API y el consentimiento del administrador
Java 21 o superior, Fess 15.2.0 o superior
Instalación del plugin
Método 1: Colocar el archivo JAR directamente
Método 2: Compilar desde el código fuente
Después de la instalación, reinicie Fess.
Método de configuración
Configure desde la pantalla de administración en «Rastreador» -> «Almacén de datos» -> «Nuevo».
Configuración básica
| Elemento | Ejemplo de configuración |
|---|---|
| Nombre | Microsoft 365 OneDrive |
| Nombre del manejador | OneDriveDataStore / OneNoteDataStore / TeamsDataStore / SharePointDocLibDataStore / SharePointListDataStore / SharePointPageDataStore |
| Habilitado | Activado |
Configuración de parámetros (común)
Lista de parámetros comunes
| Parámetro | Requerido | Descripción |
|---|---|---|
tenant | Sí | ID de tenant de Azure AD |
client_id | Sí | ID de cliente del registro de aplicación |
client_secret | Sí | Secreto de cliente del registro de aplicación |
number_of_threads | No | Número de hilos para procesamiento paralelo (predeterminado: 1) |
ignore_error | No | Continuar procesando en caso de error (predeterminado: false) |
max_content_length | No | Tamaño máximo del contenido obtenido (predeterminado: -1, sin límite) |
cache_size | No | Tamaño de caché para información de usuarios y grupos (predeterminado: 10000) |
proxy_host | No | Host del proxy HTTP |
proxy_port | No | Puerto del proxy HTTP |
proxy_username | No | Nombre de usuario de autenticación del proxy |
proxy_password | No | Contraseña de autenticación del proxy |
Registro de aplicación en Azure AD
1. Registrar la aplicación en Azure Portal
Abra Azure Active Directory en https://portal.azure.com:
Haga clic en «Registros de aplicaciones» -> «Nuevo registro»
Ingrese el nombre de la aplicación
Seleccione los tipos de cuenta compatibles
Haga clic en «Registrar»
2. Crear secreto de cliente
En «Certificados y secretos»:
Haga clic en «Nuevo secreto de cliente»
Configure la descripción y la fecha de vencimiento
Copie el valor del secreto (no podrá verlo posteriormente)
3. Agregar permisos de API
En «Permisos de API»:
Haga clic en «Agregar un permiso»
Seleccione «Microsoft Graph»
Seleccione «Permisos de aplicación»
Agregue los permisos necesarios (ver más abajo)
Haga clic en «Conceder consentimiento del administrador»
Permisos necesarios por almacén de datos
OneDriveDataStore
Permisos requeridos:
Files.Read.All
Permisos condicionales:
User.Read.All- cuando user_drive_crawler=trueGroup.Read.All- cuando group_drive_crawler=trueSites.Read.All- cuando shared_documents_drive_crawler=true
OneNoteDataStore
Permisos requeridos:
Notes.Read.All
Permisos condicionales:
User.Read.All- cuando user_note_crawler=trueGroup.Read.All- cuando group_note_crawler=trueSites.Read.All- cuando site_note_crawler=true
TeamsDataStore
Permisos requeridos:
Team.ReadBasic.AllGroup.Read.AllChannel.ReadBasic.AllChannelMessage.Read.AllChannelMember.Read.AllUser.Read.All
Permisos condicionales:
Chat.Read.All- cuando se especifica chat_idFiles.Read.All- cuando append_attachment=true
Configuración de scripts
OneDrive
Campos disponibles:
file.name- Nombre del archivofile.description- Descripción del archivofile.contents- Contenido de textofile.mimetype- Tipo MIMEfile.filetype- Tipo de archivofile.created- Fecha y hora de creaciónfile.last_modified- Fecha y hora de última modificaciónfile.size- Tamaño del archivofile.web_url- URL para abrir en el navegadorfile.url- URL del archivofile.id- ID del elemento de unidadfile.ctag- Etiqueta de cambio (cTag)file.etag- Etiqueta de entidad (eTag)file.webdav_url- URL de WebDAVfile.parent_id- ID de la carpeta padrefile.parent_name- Nombre de la carpeta padrefile.parent_path- Ruta de la carpeta padrefile.roles- Permisos de acceso
Nota
Además de los anteriores, también están disponibles campos de metadatos de Microsoft Graph como file.createdby_user, file.last_modifiedby_user, file.image, file.video, file.special_folder, entre otros.
OneNote
Campos disponibles:
notebook.name- Nombre del cuadernonotebook.contents- Contenido integrado de secciones y páginasnotebook.size- Tamaño del contenido (número de caracteres)notebook.created- Fecha y hora de creaciónnotebook.last_modified- Fecha y hora de última modificaciónnotebook.web_url- URL para abrir en el navegadornotebook.roles- Permisos de acceso
Teams
Campos disponibles:
message.title- Título del mensajemessage.content- Contenido del mensajemessage.body- Cuerpo del mensaje (datos sin procesar, incluido HTML)message.subject- Asunto del mensajemessage.summary- Resumen del mensajemessage.importance- Importanciamessage.from- Información del remitentemessage.created_date_time- Fecha y hora de creaciónmessage.last_modified_date_time- Fecha y hora de última modificaciónmessage.last_edited_date_time- Fecha y hora de última ediciónmessage.deleted_date_time- Fecha y hora de eliminaciónmessage.web_url- URL para abrir en el navegadormessage.id- ID del mensajemessage.etag- Etiqueta de entidadmessage.locale- Configuración regionalmessage.chat_id- ID del chatmessage.reply_to_id- ID del mensaje al que se respondemessage.channel_identity- Información de identidad del canal (ID de equipo e ID de canal)message.mentions- Información de mencionesmessage.attachments- Información de archivos adjuntosmessage.replies- Mensajes de respuestamessage.hosted_contents- Contenido en línea (imágenes, etc.)message.roles- Permisos de acceso
Campos de nivel superior (se establecen únicamente para mensajes de canal):
team- Equipo (objetoGroupde Microsoft Graph)channel- Canal (objetoChannelde Microsoft Graph)parent- Mensaje padre (se establece cuando es un mensaje de respuesta)
Parámetros adicionales por almacén de datos
OneDrive
OneNote
Teams
SharePoint Document Libraries
SharePoint Lists
SharePoint Pages
Ejemplos de uso
Rastrear todas las unidades de OneDrive
Parámetros:
Script:
Rastrear mensajes de Teams de un equipo específico
Parámetros:
Script:
Solución de problemas
Error de autenticación
Síntoma: Authentication failed o Insufficient privileges
Puntos a verificar:
Verificar que el ID de tenant, el ID de cliente y el secreto de cliente sean correctos
Verificar que los permisos de API necesarios estén otorgados en Azure Portal
Verificar que se haya otorgado el consentimiento del administrador
Verificar la fecha de vencimiento del secreto de cliente
Error de límite de tasa de la API
Síntoma: 429 Too Many Requests
Solución:
Reducir
number_of_threads(establecer en 1 o 2)Aumentar el intervalo de rastreo
Establecer
ignore_error=truepara continuar el procesamiento
No se pueden obtener datos
Síntoma: El rastreo se completa correctamente pero hay 0 documentos
Puntos a verificar:
Verificar que los datos de destino existan
Verificar que los permisos de API estén configurados correctamente
Verificar la configuración del rastreador de unidades de usuario/grupo
Revisar los mensajes de error en los registros
Rastrear grandes volúmenes de datos
Solución:
Dividir en múltiples almacenes de datos (por sitio, por unidad, etc.)
Distribuir la carga mediante la configuración de horarios
Ajustar
number_of_threadspara procesamiento paraleloRastrear únicamente carpetas o sitios específicos
Información de referencia
Descripcion General de los Conectores de Almacen de Datos - Descripción general de conectores de almacén de datos
Conector de Google Workspace - Conector de Google Workspace
Rastreo de Almacén de Datos - Guía de configuración del almacén de datos