Aperçu
Le connecteur Microsoft 365 fournit la fonctionnalité permettant de récupérer des données depuis les services Microsoft 365 (OneDrive, OneNote, Teams, SharePoint) et de les enregistrer dans l’index Fess.
Cette fonctionnalité nécessite le plugin fess-ds-microsoft365.
Services pris en charge
OneDrive : Drives utilisateurs, drives de groupe, documents partagés
OneNote : Carnets (sites, utilisateurs, groupes)
Teams : Canaux, messages, chats
SharePoint Document Libraries : Métadonnées des bibliothèques de documents
SharePoint Lists : Listes et éléments de liste
SharePoint Pages : Pages de site, articles d’actualités
Prérequis
L’installation du plugin est requise
L’enregistrement de l’application Azure AD est nécessaire
La configuration des permissions de l’API Microsoft Graph et le consentement administrateur sont requis
Java 21 ou supérieur, Fess 15.2.0 ou supérieur
Installation du plugin
Méthode 1 : Placement direct du fichier JAR
Méthode 2 : Build depuis les sources
Après l’installation, redémarrez Fess.
Configuration
Configurez depuis l’interface d’administration via « Crawler » → « Data Store » → « Nouveau ».
Configuration de base
| Élément | Exemple de configuration |
|---|---|
| Nom | Microsoft 365 OneDrive |
| Nom du gestionnaire | OneDriveDataStore / OneNoteDataStore / TeamsDataStore / SharePointDocLibDataStore / SharePointListDataStore / SharePointPageDataStore |
| Activé | Oui |
Configuration des paramètres (communs)
Liste des paramètres communs
| Paramètre | Requis | Description |
|---|---|---|
tenant | Oui | ID de locataire Azure AD |
client_id | Oui | ID client de l’enregistrement d’application |
client_secret | Oui | Secret client de l’enregistrement d’application |
number_of_threads | Non | Nombre de threads de traitement parallèle (par défaut : 1) |
ignore_error | Non | Continuer le traitement en cas d’erreur (par défaut : false) |
max_content_length | Non | Taille maximale du contenu récupéré (par défaut : -1, illimité) |
cache_size | Non | Taille du cache des informations utilisateur/groupe (par défaut : 10000) |
proxy_host | Non | Hôte du proxy HTTP |
proxy_port | Non | Port du proxy HTTP |
proxy_username | Non | Nom d’utilisateur pour l’authentification proxy |
proxy_password | Non | Mot de passe pour l’authentification proxy |
Enregistrement d’application Azure AD
1. Enregistrer une application dans le portail Azure
Ouvrez Azure Active Directory dans https://portal.azure.com :
Cliquez sur « Inscriptions d’applications » → « Nouvelle inscription »
Entrez le nom de l’application
Sélectionnez les types de comptes pris en charge
Cliquez sur « Inscrire »
2. Création du secret client
Dans « Certificats et secrets » :
Cliquez sur « Nouveau secret client »
Définissez une description et une date d’expiration
Copiez la valeur du secret (attention : elle ne sera plus visible après)
3. Ajout des permissions API
Dans « Autorisations des API » :
Cliquez sur « Ajouter une autorisation »
Sélectionnez « Microsoft Graph »
Sélectionnez « Autorisations d’application »
Ajoutez les permissions nécessaires (voir ci-dessous)
Cliquez sur « Accorder un consentement d’administrateur »
Permissions requises par Data Store
OneDriveDataStore
Permissions requises :
Files.Read.All
Permissions conditionnelles :
User.Read.All- si user_drive_crawler=trueGroup.Read.All- si group_drive_crawler=trueSites.Read.All- si shared_documents_drive_crawler=true
OneNoteDataStore
Permissions requises :
Notes.Read.All
Permissions conditionnelles :
User.Read.All- si user_note_crawler=trueGroup.Read.All- si group_note_crawler=trueSites.Read.All- si site_note_crawler=true
TeamsDataStore
Permissions requises :
Team.ReadBasic.AllGroup.Read.AllChannel.ReadBasic.AllChannelMessage.Read.AllChannelMember.Read.AllUser.Read.All
Permissions conditionnelles :
Chat.Read.All- si chat_id est spécifiéFiles.Read.All- si append_attachment=true
Configuration du script
OneDrive
Champs disponibles :
file.name- Nom du fichierfile.description- Description du fichierfile.contents- Contenu textuelfile.mimetype- Type MIMEfile.filetype- Type de fichierfile.created- Date de créationfile.last_modified- Date de dernière modificationfile.size- Taille du fichierfile.web_url- URL pour ouvrir dans le navigateurfile.url- URL du fichierfile.id- ID de l’élément du drivefile.ctag- Tag de modification (cTag)file.etag- Tag d’entité (eTag)file.webdav_url- URL WebDAVfile.parent_id- ID du dossier parentfile.parent_name- Nom du dossier parentfile.parent_path- Chemin du dossier parentfile.roles- Permissions d’accès
Note
En plus des champs ci-dessus, d’autres champs de métadonnées Microsoft Graph sont disponibles, notamment file.createdby_user, file.last_modifiedby_user, file.image, file.video, file.special_folder, etc.
OneNote
Champs disponibles :
notebook.name- Nom du carnetnotebook.contents- Contenu intégré des sections et pagesnotebook.size- Taille du contenu (nombre de caractères)notebook.created- Date de créationnotebook.last_modified- Date de dernière modificationnotebook.web_url- URL pour ouvrir dans le navigateurnotebook.roles- Permissions d’accès
Teams
Champs disponibles :
message.title- Titre du messagemessage.content- Contenu du messagemessage.body- Corps du message (données brutes incluant le HTML)message.subject- Objet du messagemessage.summary- Résumé du messagemessage.importance- Importancemessage.from- Informations sur l’expéditeurmessage.created_date_time- Date de créationmessage.last_modified_date_time- Date de dernière modificationmessage.last_edited_date_time- Date de dernière éditionmessage.deleted_date_time- Date de suppressionmessage.web_url- URL pour ouvrir dans le navigateurmessage.id- ID du messagemessage.etag- Tag d’entitémessage.locale- Paramètre régionalmessage.chat_id- ID du chatmessage.reply_to_id- ID du message d’origine de la réponsemessage.channel_identity- Identité du canal (ID d’équipe et ID de canal)message.mentions- Informations sur les mentionsmessage.attachments- Informations sur les pièces jointesmessage.replies- Messages de réponsemessage.hosted_contents- Contenu inline (images, etc.)message.roles- Permissions d’accès
Champs de premier niveau (définis uniquement pour les messages de canal) :
team- Équipe (objetGroupde Microsoft Graph)channel- Canal (objetChannelde Microsoft Graph)parent- Message parent (défini pour les messages de réponse)
Paramètres supplémentaires par Data Store
OneDrive
OneNote
Teams
SharePoint Document Libraries
SharePoint Lists
SharePoint Pages
Exemples d’utilisation
Crawl de tous les drives OneDrive
Paramètres :
Script :
Crawl des messages Teams d’une équipe spécifique
Paramètres :
Script :
Dépannage
Erreur d’authentification
Symptôme : Authentication failed ou Insufficient privileges
Points à vérifier :
Vérifier si l’ID de locataire, l’ID client et le secret client sont corrects
Vérifier si les permissions API nécessaires sont accordées dans le portail Azure
Vérifier si le consentement administrateur a été accordé
Vérifier la date d’expiration du secret client
Erreur de limitation de débit API
Symptôme : 429 Too Many Requests
Solution :
Réduire
number_of_threads(définir à 1 ou 2)Augmenter l’intervalle de crawl
Définir
ignore_error=truepour continuer le traitement
Impossible de récupérer les données
Symptôme : Le crawl réussit mais 0 documents
Points à vérifier :
Vérifier si les données cibles existent
Vérifier si les permissions API sont correctement configurées
Vérifier les paramètres du crawler de drive utilisateur/groupe
Vérifier les messages d’erreur dans les logs
Crawl de données volumineuses
Solution :
Diviser en plusieurs data stores (par site, par drive, etc.)
Répartir la charge avec les paramètres de planification
Ajuster
number_of_threadspour le traitement parallèleCrawler uniquement des dossiers/sites spécifiques
Informations de référence
Apercu des connecteurs DataStore - Aperçu des connecteurs Data Store
Connecteur Google Workspace - Connecteur Google Workspace
Présentation - Guide de configuration Data Store
Comment vérifier l’ID de site SharePoint
Vérifier avec PowerShell :
Ou avec l’API Microsoft Graph :