Vision General
El conector de Microsoft 365 proporciona funcionalidad para obtener datos de servicios de Microsoft 365 (OneDrive, OneNote, Teams, SharePoint) y registrarlos en el indice de Fess.
Esta funcionalidad requiere el plugin fess-ds-microsoft365.
Servicios Soportados
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: Paginas del sitio, articulos de noticias
Requisitos Previos
Se requiere la instalacion del plugin
Se requiere el registro de la aplicacion en Azure AD
Se requieren permisos de Microsoft Graph API y consentimiento de administrador
Java 21 o superior, Fess 15.2.0 o superior
Instalacion del Plugin
Metodo 1: Colocar el archivo JAR directamente
# Descargar desde Maven Central
wget https://repo1.maven.org/maven2/org/codelibs/fess/fess-ds-microsoft365/X.X.X/fess-ds-microsoft365-X.X.X.jar
# Colocar
cp fess-ds-microsoft365-X.X.X.jar $FESS_HOME/app/WEB-INF/lib/
# o
sudo cp fess-ds-microsoft365-X.X.X.jar /usr/share/fess/app/WEB-INF/lib/
Metodo 2: Construir desde el codigo fuente
git clone https://github.com/codelibs/fess-ds-microsoft365.git
cd fess-ds-microsoft365
mvn clean package
cp target/fess-ds-microsoft365-*.jar $FESS_HOME/app/WEB-INF/lib/
Despues de la instalacion, reinicie Fess.
Metodo de Configuracion
Configure desde la pantalla de administracion en «Rastreador» -> «Almacen de datos» -> «Nuevo».
Configuracion Basica
| Elemento | Ejemplo |
|---|---|
| Nombre | Microsoft 365 OneDrive |
| Nombre del manejador | OneDriveDataStore / OneNoteDataStore / TeamsDataStore / SharePointDocLibDataStore / SharePointListDataStore / SharePointPageDataStore |
| Habilitado | Activado |
Configuracion de Parametros (Comun)
tenant=12345678-1234-1234-1234-123456789abc
client_id=87654321-4321-4321-4321-123456789abc
client_secret=abcdefghijklmnopqrstuvwxyz123456
number_of_threads=1
ignore_error=false
Lista de Parametros Comunes
| Parametro | Requerido | Descripcion |
|---|---|---|
tenant | Si | ID de tenant de Azure AD |
client_id | Si | ID de cliente del registro de aplicacion |
client_secret | Si | Secreto de cliente del registro de aplicacion |
number_of_threads | No | Numero de hilos para procesamiento paralelo (predeterminado: 1) |
ignore_error | No | Continuar procesando en caso de error (predeterminado: false) |
include_pattern | No | Patron de expresion regular para contenido a incluir |
exclude_pattern | No | Patron de expresion regular para contenido a excluir |
default_permissions | No | Asignacion de rol predeterminado |
Registro de Aplicacion en Azure AD
1. Registrar aplicacion 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 aplicacion
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 descripcion y la fecha de expiracion
Copie el valor del secreto (no podra verlo posteriormente)
3. Agregar permisos de API
En «Permisos de API»:
Haga clic en «Agregar un permiso»
Seleccione «Microsoft Graph»
Seleccione «Permisos de aplicacion»
Agregue los permisos necesarios (ver abajo)
Haga clic en «Conceder consentimiento de administrador»
Permisos Necesarios por Almacen 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
Configuracion de Script
OneDrive
title=file.name
content=file.description + "\n" + file.contents
mimetype=file.mimetype
created=file.created
last_modified=file.last_modified
url=file.web_url
role=file.roles
Campos disponibles:
file.name- Nombre del archivofile.description- Descripcion del archivofile.contents- Contenido de textofile.mimetype- Tipo MIMEfile.filetype- Tipo de archivofile.created- Fecha de creacionfile.last_modified- Ultima fecha de modificacionfile.size- Tamano del archivofile.web_url- URL para abrir en el navegadorfile.roles- Permisos de acceso
Teams
title=message.title
content=message.content
created=message.created_date_time
last_modified=message.last_modified_date_time
url=message.web_url
role=message.roles
Campos disponibles:
message.title- Titulo del mensajemessage.content- Contenido del mensajemessage.created_date_time- Fecha de creacionmessage.last_modified_date_time- Ultima fecha de modificacionmessage.web_url- URL para abrir en el navegadormessage.roles- Permisos de accesomessage.from- Informacion del remitente
Solucion de Problemas
Error de Autenticacion
Sintoma: Authentication failed o Insufficient privileges
Verificar:
Verificar que el ID de tenant, ID de cliente y secreto de cliente sean correctos
Verificar que los permisos de API necesarios esten otorgados en Azure Portal
Verificar que se haya otorgado el consentimiento de administrador
Verificar la fecha de expiracion del secreto de cliente
Error de Limite de Tasa de API
Sintoma: 429 Too Many Requests
Solucion:
Reducir
number_of_threads(establecer en 1 o 2)Aumentar el intervalo de rastreo
Establecer
ignore_error=truepara continuar el procesamiento
Informacion de Referencia
Descripcion General de los Conectores de Almacen de Datos - Vision general de conectores de almacen de datos
Conector de Google Workspace - Conector de Google Workspace
Rastreo de Almacén de Datos - Guia de configuracion de almacen de datos