Aperçu
Fess prend en charge l’authentification Single Sign-On (SSO) en utilisant Microsoft Entra ID (anciennement Azure AD). En utilisant l’authentification Entra ID, vous pouvez intégrer les informations utilisateur et les informations de groupe de votre environnement Microsoft 365 avec la recherche basée sur les rôles de Fess.
Fonctionnement de l’authentification Entra ID
Dans l’authentification Entra ID, Fess opère en tant que client OAuth 2.0/OpenID Connect et collabore avec Microsoft Entra ID pour l’authentification.
L’utilisateur accède au point de terminaison SSO de Fess (
/sso/)Fess redirige vers le point de terminaison d’autorisation d’Entra ID
L’utilisateur s’authentifie auprès d’Entra ID (connexion Microsoft)
Entra ID redirige le code d’autorisation vers Fess
Fess utilise le code d’autorisation pour obtenir un jeton d’accès
Fess utilise l’API Microsoft Graph pour récupérer les informations de groupe et de rôle de l’utilisateur
L’utilisateur est connecté et les informations de groupe sont appliquées à la recherche basée sur les rôles
Pour l’intégration avec la recherche basée sur les rôles, consultez Configuration de la recherche basée sur les rôles.
Prérequis
Avant de configurer l’authentification Entra ID, vérifiez les prérequis suivants :
Fess 15.4 ou supérieur est installé
Un tenant Microsoft Entra ID (Azure AD) est disponible
Fess est accessible via HTTPS (requis pour les environnements de production)
Vous avez la permission d’enregistrer des applications dans Entra ID
Configuration de base
Activation du SSO
Pour activer l’authentification Entra ID, ajoutez le paramètre suivant dans app/WEB-INF/conf/system.properties :
sso.type=entraid
Paramètres requis
Configurez les informations obtenues d’Entra ID.
| Propriété | Description | Valeur par défaut |
|---|---|---|
entraid.tenant | ID du tenant (ex: xxx.onmicrosoft.com) | (Requis) |
entraid.client.id | ID d’application (Client) | (Requis) |
entraid.client.secret | Valeur du secret client | (Requis) |
entraid.reply.url | URI de redirection (URL de callback) | Utilise l’URL de la requête |
Note
Au lieu du préfixe entraid.*, vous pouvez également utiliser le préfixe legacy aad.* pour la rétrocompatibilité.
Paramètres optionnels
Les paramètres suivants peuvent être ajoutés si nécessaire.
| Propriété | Description | Valeur par défaut |
|---|---|---|
entraid.authority | URL du serveur d’authentification | https://login.microsoftonline.com/ |
entraid.state.ttl | Durée de vie du state (secondes) | 3600 |
entraid.default.groups | Groupes par défaut (séparés par des virgules) | (Aucun) |
entraid.default.roles | Rôles par défaut (séparés par des virgules) | (Aucun) |
Configuration côté Entra ID
Enregistrement de l’application dans le portail Azure
Connectez-vous au Portail Azure
Sélectionnez Microsoft Entra ID
Allez dans Gérer → Inscriptions d’applications → Nouvelle inscription
Enregistrez l’application :
Paramètre Valeur Nom Tout nom (ex: Fess SSO) Types de comptes pris en charge « Comptes de cet annuaire d’organisation uniquement » Plateforme Web URI de redirection https://<hôte Fess>/sso/Cliquez sur Inscrire
Création d’un secret client
Sur la page de détails de l’application, cliquez sur Certificats et secrets
Cliquez sur Nouveau secret client
Définissez une description et une date d’expiration, puis cliquez sur Ajouter
Copiez et sauvegardez la Valeur générée (cette valeur ne sera plus affichée)
Avertissement
La valeur du secret client n’est affichée qu’immédiatement après la création. Assurez-vous de l’enregistrer avant de quitter la page.
Configuration des autorisations d’API
Cliquez sur Autorisations d’API dans le menu de gauche
Cliquez sur Ajouter une autorisation
Sélectionnez Microsoft Graph
Sélectionnez Autorisations déléguées
Ajoutez l’autorisation suivante :
Group.Read.All- Requis pour récupérer les informations de groupe de l’utilisateur
Cliquez sur Ajouter des autorisations
Cliquez sur Accorder le consentement administrateur pour <nom du tenant>
Note
Le consentement administrateur nécessite des privilèges d’administrateur de tenant.
Informations à obtenir
Les informations suivantes sont utilisées pour la configuration de Fess :
ID d’application (Client) : Sur la page Vue d’ensemble, sous « ID d’application (client) »
ID du tenant : Sur la page Vue d’ensemble, sous « ID de répertoire (tenant) » ou au format
xxx.onmicrosoft.comValeur du secret client : La valeur créée dans Certificats et secrets
Mappage des groupes et rôles
Avec l’authentification Entra ID, Fess récupère automatiquement les groupes et rôles auxquels un utilisateur appartient en utilisant l’API Microsoft Graph. Les ID de groupe et noms de groupe récupérés peuvent être utilisés pour la recherche basée sur les rôles de Fess.
Groupes imbriqués
Fess récupère non seulement les groupes auxquels les utilisateurs appartiennent directement, mais aussi les groupes parents (groupes imbriqués) de manière récursive. Ce traitement est exécuté de manière asynchrone après la connexion pour minimiser l’impact sur le temps de connexion.
Paramètres de groupe par défaut
Pour attribuer des groupes communs à tous les utilisateurs Entra ID :
entraid.default.groups=authenticated_users,entra_users
Exemples de configuration
Configuration minimale (pour les tests)
Voici un exemple de configuration minimale pour vérification dans un environnement de test.
# Activer SSO
sso.type=entraid
# Paramètres Entra ID
entraid.tenant=yourcompany.onmicrosoft.com
entraid.client.id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
entraid.client.secret=your-client-secret-value
entraid.reply.url=http://localhost:8080/sso/
Configuration recommandée (pour la production)
Voici un exemple de configuration recommandée pour les environnements de production.
# Activer SSO
sso.type=entraid
# Paramètres Entra ID
entraid.tenant=yourcompany.onmicrosoft.com
entraid.client.id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
entraid.client.secret=your-client-secret-value
entraid.reply.url=https://fess.example.com/sso/
# Groupes par défaut (optionnel)
entraid.default.groups=authenticated_users
Configuration legacy (rétrocompatibilité)
Pour la compatibilité avec les versions antérieures, le préfixe aad.* peut également être utilisé.
# Activer SSO
sso.type=entraid
# Clés de configuration legacy
aad.tenant=yourcompany.onmicrosoft.com
aad.client.id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
aad.client.secret=your-client-secret-value
aad.reply.url=https://fess.example.com/sso/
Dépannage
Problèmes courants et solutions
Impossible de revenir à Fess après l’authentification
Vérifiez que l’URI de redirection est correctement configurée dans l’inscription de l’application du portail Azure
Assurez-vous que la valeur de
entraid.reply.urlcorrespond exactement à la configuration du portail AzureVérifiez que le protocole (HTTP/HTTPS) correspond
Vérifiez que l’URI de redirection se termine par
/
Des erreurs d’authentification se produisent
Vérifiez que l’ID du tenant, l’ID client et le secret client sont correctement configurés
Vérifiez que le secret client n’a pas expiré
Vérifiez que le consentement administrateur a été accordé pour les autorisations d’API
Impossible de récupérer les informations de groupe
Vérifiez que l’autorisation
Group.Read.Alla été accordéeVérifiez que le consentement administrateur a été accordé
Vérifiez que l’utilisateur appartient à des groupes dans Entra ID
Paramètres de débogage
Pour investiguer les problèmes, vous pouvez afficher des logs détaillés liés à Entra ID en ajustant le niveau de log de Fess.
Dans app/WEB-INF/classes/log4j2.xml, vous pouvez ajouter le logger suivant pour changer le niveau de log :
<Logger name="org.codelibs.fess.sso.entraid" level="DEBUG"/>
Référence
Configuration de la recherche basée sur les rôles - Configuration de la recherche basée sur les rôles
Configuration SSO avec authentification SAML - Configuration SSO avec authentification SAML
Configuration SSO avec OpenID Connect - Configuration SSO avec authentification OpenID Connect