You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -132,23 +132,23 @@ Pour importer un référentiel et générer des données de test, allez dans "Co
132
132
Il est également possible de faire démarrer l'application en tant que service `systemd`. Pour cela, créez un nouveau fichier de définition du service :
133
133
134
134
su root -c "vi /etc/systemd/system/deming.service"
@@ -283,10 +283,119 @@ Vous pouvez également configurer DKIM :
283
283
MAIL_DKIM_SELECTOR = 'default'; // Match your DKIM DNS selector
284
284
MAIL_DKIM_PASSPHRASE = ''; // Only if your key has a passphrase
285
285
286
-
Don't forget to [configure](https://dbarzin.github.io/deming/config/#notifications) the content and frequency of your emails.
287
-
288
286
N'oubliez pas de [configurer](https://dbarzin.github.io/deming/config.fr/#notifications) le contenu et la fréquence d'envoi des mails.
289
287
288
+
## LDAP / LDAPRecord configuration (optional)
289
+
290
+
Cette section te permet d’activer l’authentification LDAP dans Deming avec **LDAPRecord v2**. Elle fonctionne indifféremment avec **Active Directory***ou***OpenLDAP**, et peut cohabiter avec l’authentification locale (base de données).
291
+
292
+
### Prérequis
293
+
294
+
Prérequis : l’extension PHP LDAP doit être installée et active.
LDAP_USERNAME=EXAMPLE\\svc_ldap # ou DN complet du compte de service
342
+
```
343
+
344
+
Après modification du `.env` :
345
+
346
+
```bash
347
+
php artisan config:clear
348
+
php artisan optimize:clear
349
+
```
350
+
351
+
### Certificats
352
+
353
+
**Certificats** : si tu utilises StartTLS/LDAPS avec un CA interne, ajoute le CA au trust store de ta distribution (ex. `/usr/local/share/ca-certificates` + `update-ca-certificates`).
354
+
355
+
### Comment ça marche côté Deming
356
+
357
+
Le contrôleur d’authentification :
358
+
359
+
* recherche l’entrée LDAP via une **OR**-query sur les attributs listés dans `LDAP_LOGIN_ATTRIBUTES` ;
360
+
* récupère le **DN** ;
361
+
* tente un **bind** avec le mot de passe saisi ;
362
+
* si OK, il connecte l’utilisateur applicatif local correspondant (et peut **auto-provisionner** s’il n’existe pas, selon `LDAP_AUTO_PROVISION`).
363
+
364
+
### Test rapide
365
+
366
+
Avant de tester via l’UI, valide la connexion en CLI :
367
+
368
+
```bash
369
+
php artisan tinker
370
+
```
371
+
372
+
Puis dans Tinker :
373
+
374
+
```php
375
+
use LdapRecord\Container;
376
+
377
+
$dn = 'uid=jdupont,ou=people,dc=example,dc=org'; // ou cn=..., ou DN AD
***PHP LDAP manquant** : `php -m | grep ldap` doit renvoyer `ldap`. Sinon `sudo apt-get install php-ldap`, puis redémarrage PHP/Apache.
385
+
***Mauvais DN** : ajoute les `ou=...` corrects (ex. `ou=people`).
386
+
***TLS/SSL** : StartTLS = `LDAP_TLS=true` (389). LDAPS = `LDAP_SSL=true` (636). Ne laisse pas en clair en prod.
387
+
***Certificat non approuvé** : ajoute le CA au système (voir ci-dessus).
388
+
***Recherche impossible** : vérifie `LDAP_USERNAME` / `LDAP_PASSWORD` (compte de service) et les ACL de l’annuaire.
389
+
***Attribut de login** : aligne `LDAP_LOGIN_ATTRIBUTES` avec ce que tes utilisateurs saisissent réellement (uid ? UPN ? email ?).
390
+
391
+
### Sécurité – à faire, pas à discuter
392
+
393
+
* Utilise **TLS/LDAPS**. Point.
394
+
* Restreins les droits du **compte de service** au strict nécessaire (lecture des attributs requis).
395
+
* Évite de logger des mots de passe ou DN complets côté application.
396
+
* Si tu actives l’**auto-provisioning**, stocke un mot de passe aléatoire côté base (pas un duplicat du LDAP) et applique tes politiques de rôles/profils.
397
+
398
+
290
399
## Configuration de Keycloak (optionnel)
291
400
292
401
Pour configurer [Keycloak](https://www.keycloak.org), suivez ces étapes :
0 commit comments