Configuration¶
Ce document décrit toutes les options de configuration disponibles dans Mercator, notamment l'intégration LDAP, la prise en charge des groupes imbriqués Active Directory, la configuration de la messagerie, la mise en cache et les fonctionnalités optionnelles.
Mercator s'appuie sur des variables d'environnement (.env) pour configurer les fonctionnalités principales telles que l'authentification, LDAP, l'auto-provisionnement, la messagerie et la sécurité.
Configuration LDAP¶
Mercator prend en charge à la fois l'authentification locale et l'authentification LDAP. Les comptes locaux restent toujours disponibles comme solution de repli si cela est configuré.
Activer / Désactiver l'authentification LDAP¶
LDAP_ENABLED=true
Autoriser la connexion locale en cas d'échec de l'authentification LDAP¶
LDAP_FALLBACK_LOCAL=true
Créer automatiquement les utilisateurs Mercator depuis LDAP¶
Si l'utilisateur LDAP existe mais qu'aucun utilisateur Mercator correspondant n'est trouvé, Mercator peut créer automatiquement le compte local correspondant.
LDAP_AUTO_PROVISION=true
Le compte local sera créé avec le rôle suivant :
LDAP_AUTO_PROVISION_ROLE=user
Paramètres de connexion LDAP¶
LDAP_HOST=ldap.example.com
LDAP_USERNAME="CN=ldap-reader,OU=Service Accounts,DC=example,DC=com"
LDAP_PASSWORD="secret"
LDAP_PORT=389
LDAP_SSL=false
LDAP_TLS=false
Ces valeurs sont transmises directement à la couche de connexion LDAPRecord de Laravel.
Base de recherche des utilisateurs LDAP¶
Définit l'emplacement où les utilisateurs doivent être recherchés :
LDAP_USERS_BASE_DN="OU=Users,DC=example,DC=com"
Si vide, Mercator recherche dans l'ensemble de l'annuaire.
Attributs de connexion LDAP¶
Définit les attributs LDAP pouvant être utilisés comme identifiant de connexion :
LDAP_LOGIN_ATTRIBUTES=sAMAccountName,uid,mail
Mercator essaiera ces attributs avec un filtre OR.
Restriction par groupe LDAP¶
Il est possible de restreindre l'accès à Mercator aux membres d'un groupe LDAP spécifique.
LDAP_GROUP="CN=Mercator-Users,OU=Groups,DC=example,DC=com"
Si vide, tous les utilisateurs authentifiés par LDAP peuvent se connecter.
Prise en charge des groupes imbriqués (Active Directory uniquement)¶
Mercator peut vérifier l'appartenance récursive (groupes imbriqués) lors de l'utilisation de Microsoft Active Directory.
Cette fonctionnalité est désactivée par défaut.
Activer la recherche de groupes imbriqués¶
LDAP_NESTED_GROUPS=true
Fonctionnement¶
Lorsque cette option est activée, Mercator utilise la règle de correspondance spécifique à AD :
1.2.840.113556.1.4.1941 (LDAP_MATCHING_RULE_IN_CHAIN)
Exemple de filtre LDAP généré :
(memberOf:1.2.840.113556.1.4.1941:=CN=Mercator-Users,OU=Groups,DC=example,DC=com)
Cela permet de reconnaître :
- Les membres directs
- Les membres indirects
- Les groupes profondément imbriqués (multi-niveaux)
Limitations importantes¶
- Pris en charge uniquement sur Microsoft Active Directory
- Ne fonctionnera pas sur OpenLDAP ou d'autres serveurs LDAP
- Si activé sur des systèmes non-AD, l'authentification LDAP échouera
Configuration de la messagerie¶
Mercator envoie des notifications, des réinitialisations de mot de passe (pour les comptes locaux) et des e-mails système.
MAIL_MAILER=smtp
MAIL_HOST=smtp.example.com
MAIL_PORT=587
MAIL_USERNAME=mailer@example.com
MAIL_PASSWORD=secret
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=noreply@example.com
MAIL_FROM_NAME="Mercator"
Paramètres applicatifs¶
Nom de l'application¶
Ce nom est affiché dans le coin supérieur gauche de chaque page de l'application.
APP_NAME=Mercator
Environnement de l'instance Mercator¶
Permet de préciser le type de l'instance Mercator : Production, Développement, Intégration, Pré-production, Prototype, Maquette…
APP_ENV=Production
📢 Remarque : APP_ENV=Production est obligatoire pour que le HTTPS fonctionne.
Limite du taux d'appels API¶
Limite les requêtes API pour protéger les ressources du serveur.
Format : API_RATE_LIMIT requêtes par API_RATE_LIMIT_DECAY minute(s).
60,1 = 60 req/min (défaut - usage normal)
120,1 = 120 req/min (développement/tests)
1000,60 = 1000 req/h (API publique)
10000,1440 = 10000 req/j (intégrations tierces)
Retourne HTTP 429 (Too Many Requests) en cas de dépassement.
API_RATE_LIMIT=60
API_RATE_LIMIT_DECAY=1
URL de l'application¶
APP_URL=https://mercator.example.com
Utilisée dans les liens, les notifications, les URL d'export, etc.
Mode débogage¶
APP_DEBUG=false
Lorsqu'il est activé, les erreurs sont affichées à l'écran. Ne pas activer en production.
Durée de session¶
SESSION_LIFETIME=120
Journalisation¶
Mercator utilise le système de journalisation de Laravel. Pour activer la journalisation LDAPRecord :
LDAP_LOGGING=true
Les journaux apparaîtront dans :
storage/logs/ldap.log
Si aucun fichier n'apparaît, vérifiez les permissions du répertoire.
Export / Import de fichiers¶
Mercator prend en charge l'export Excel et PDF via :
maatwebsite/excelphpoffice/phpword
Assurez-vous que storage/ et bootstrap/cache/ sont accessibles en écriture.
Configuration Docker¶
Surcharger les variables d'environnement dans docker-compose.yml¶
environment:
- LDAP_ENABLED=true
- LDAP_HOST=ad.example.com
- LDAP_GROUP=CN=Mercator-Users,OU=Groups,DC=example,DC=com
- LDAP_NESTED_GROUPS=true
Volumes requis¶
volumes:
- ./storage:/var/www/mercator/storage
- ./bootstrap/cache:/var/www/mercator/bootstrap/cache
Conseils pour le déploiement en production¶
- Désactiver
APP_DEBUG - Activer HTTPS
- Utiliser un reverse proxy (Traefik, Nginx)
- Configurer des sauvegardes automatiques de la base de données
- Protéger
.envetstorage/avec les permissions appropriées - N'utiliser les groupes imbriqués LDAP que sur Active Directory
Tableau récapitulatif¶
| Fonctionnalité | Variable | Défaut | Notes |
|---|---|---|---|
| Activer LDAP | LDAP_ENABLED |
false | Active la connexion LDAP |
| Repli local | LDAP_FALLBACK_LOCAL |
false | Autorise la connexion locale en cas d'échec LDAP |
| Auto-provisionnement | LDAP_AUTO_PROVISION |
false | Crée l'utilisateur en base lors de la première connexion LDAP |
| Rôle auto-provisionnement | LDAP_AUTO_PROVISION_ROLE |
null | Rôle attribué aux utilisateurs nouvellement créés |
| Serveur LDAP | LDAP_HOST |
ldap.example.com | Pour la connexion au serveur LDAP |
| Utilisateur LDAP | LDAP_USERNAME |
CN=ldap-reader,… | Pour la connexion au serveur LDAP |
| Mot de passe LDAP | LDAP_PASSWORD |
secret | Pour la connexion au serveur LDAP |
| Port du serveur LDAP | LDAP_PORT |
389 | Pour la connexion au serveur LDAP |
| Chiffrement SSL | LDAP_SSL |
false | Pour la connexion au serveur LDAP |
| Chiffrement TLS | LDAP_TLS |
false | Pour la connexion au serveur LDAP |
| Groupes imbriqués | LDAP_NESTED_GROUPS |
false | AD uniquement |
| Groupe requis | LDAP_GROUP |
"" | Restreint la connexion |
| Base de recherche LDAP | LDAP_USERS_BASE_DN |
"" | Base de recherche |
| Attributs de connexion | LDAP_LOGIN_ATTRIBUTES |
sAMAccountName |
Liste séparée par des virgules |
| Journalisation LDAP | LDAP_LOGGING |
false | Écrit dans ldap.log |
| Limite d'appels API | API_RATE_LIMIT |
60 | Nombre de requêtes API autorisées dans la fenêtre de temps |
| Intervalle de limite API | API_RATE_LIMIT_DECAY |
1 | Durée en minutes de la fenêtre de limite de taux |
| Durée de session | SESSION_LIFETIME |
120 | Durée de session en minutes |
| Mode débogage | APP_DEBUG |
false | Active ou désactive le mode débogage |
| URL de l'application | APP_URL |
https://mercator.example.com | URL de base utilisée dans les liens et les exports |
| Environnement de l'instance | APP_ENV |
Production | Définit l'environnement de cette instance Mercator |
| Nom de l'application | APP_NAME |
Mercator | Nom affiché, utile pour différencier les instances |
| Type de messagerie | MAIL_MAILER |
smtp | Connexion au serveur de messagerie |
| Serveur de messagerie | MAIL_HOST |
smtp.example.com | Connexion au serveur de messagerie |
| Port du serveur de messagerie | MAIL_PORT |
587 | Connexion au serveur de messagerie |
| Adresse de messagerie | MAIL_USERNAME |
mailer@example.com | Connexion au serveur de messagerie |
| Mot de passe de messagerie | MAIL_PASSWORD |
secret | Connexion au serveur de messagerie |
| Type de chiffrement | MAIL_ENCRYPTION |
tls | Connexion au serveur de messagerie |
| Adresse d'expéditeur | MAIL_FROM_ADDRESS |
noreply@example.com | Connexion au serveur de messagerie |
| Nom de l'expéditeur | MAIL_FROM_NAME |
Mercator | Connexion au serveur de messagerie |