Apercu
La fonctionnalite multi-tenant de Fess permet d’exploiter plusieurs tenants (organisations, departements, clients, etc.) de maniere isolee avec une seule instance de Fess.
En utilisant la fonctionnalite d’hote virtuel, vous pouvez fournir pour chaque tenant :
Une interface de recherche independante
Du contenu isole
Un design personnalise
Fonctionnalite d’hote virtuel
L’hote virtuel est une fonctionnalite qui fournit differents environnements de recherche bases sur le nom d’hote de la requete HTTP.
Fonctionnement
L’utilisateur accede a
tenant1.example.comFess identifie le nom d’hote
Applique la configuration de l’hote virtuel correspondant
Affiche le contenu et l’interface specifiques au tenant
Configuration de l’hote virtuel
Configuration via l’ecran d’administration
Connectez-vous a l’ecran d’administration
Allez dans « Crawler » -> « Hotes virtuels »
Cliquez sur « Nouveau »
Configurez les elements suivants :
Nom d’hote :
tenant1.example.comChemin :
/tenant1(optionnel)
Integration avec la configuration du crawl
Vous pouvez isoler le contenu en specifiant l’hote virtuel dans la configuration du crawl Web :
Creez une configuration de crawl dans « Crawler » -> « Web »
Selectionnez l’hote virtuel cible dans le champ « Hote virtuel »
Le contenu crawle avec cette configuration ne sera recherchable que sur l’hote virtuel specifie
Controle d’acces
Combinaison d’hote virtuel et de roles
En combinant les hotes virtuels avec le controle d’acces base sur les roles, un controle d’acces plus granulaire est possible :
# Exemple de configuration
virtual.host=tenant1.example.com
permissions=role_tenant1_user
Recherche basee sur les roles
Pour plus de details, consultez Configuration de la recherche basée sur les rôles.
Personnalisation de l’interface
Vous pouvez personnaliser l’interface pour chaque hote virtuel.
Application de themes
Appliquer differents themes par hote virtuel :
Configurez le theme dans « Systeme » -> « Design »
Specifiez le theme dans la configuration de l’hote virtuel
CSS personnalise
Appliquer un CSS personnalise par hote virtuel :
# Fichier CSS specifique a l'hote virtuel
/webapp/WEB-INF/view/tenant1/css/custom.css
Configuration des labels
Limiter les labels affiches par hote virtuel :
Specifiez l’hote virtuel dans la configuration du type de label
Le label ne sera affiche que sur l’hote virtuel specifie
Authentification API
Controler l’acces API par hote virtuel :
Jetons d’acces
Emettre des jetons d’acces lies a un hote virtuel :
Creez un jeton dans « Systeme » -> « Jetons d’acces »
Associez le jeton a l’hote virtuel
Requete API
curl -H "Authorization: Bearer TENANT_TOKEN" \
"https://tenant1.example.com/api/v1/search?q=keyword"
Configuration DNS
Exemple de configuration DNS pour realiser le multi-tenant :
Sous-domaines vers le meme serveur
# Configuration DNS
tenant1.example.com A 192.168.1.100
tenant2.example.com A 192.168.1.100
# Ou avec un joker
*.example.com A 192.168.1.100
Configuration de reverse proxy
Exemple de configuration de reverse proxy avec Nginx :
server {
server_name tenant1.example.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
server_name tenant2.example.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Isolation des donnees
Si une isolation complete des donnees est necessaire, considerez les approches suivantes :
Isolation au niveau de l’index
Utiliser des index separes pour chaque tenant :
# Index pour le tenant 1
index.document.search.index=fess_tenant1.search
# Index pour le tenant 2
index.document.search.index=fess_tenant2.search
Note
L’isolation au niveau de l’index peut necessiter une implementation personnalisee.
Bonnes pratiques
Convention de nommage claire : Utiliser une convention de nommage coherente pour les hotes virtuels et les roles
Tests : Tester suffisamment le fonctionnement de chaque tenant
Surveillance : Surveiller l’utilisation des ressources par tenant
Documentation : Documenter la configuration des tenants
Limitations
L’ecran d’administration est partage entre tous les tenants
Les parametres systeme affectent tous les tenants
Certaines fonctionnalites peuvent ne pas etre compatibles avec les hotes virtuels
Informations de reference
Configuration de la recherche basée sur les rôles - Controle d’acces base sur les roles
Hôtes virtuels - Details de la configuration des hotes virtuels
Conception de page - Personnalisation du design