# Préparation de LDAP et LDAPS

## 7.1 Préparer un compte de service

Créer dans Active Directory un compte dédié, par exemple :

```text
svc_glpi_ldap
```

Ce compte doit uniquement disposer des droits de lecture nécessaires dans l’annuaire. Il ne doit pas être administrateur du domaine.

---

## 7.2 Installer l’autorité de certification AD

Si le certificat LDAPS est signé par une autorité interne, copier son certificat sur le serveur GLPI :

```bash
sudo cp ad-ca.crt /usr/local/share/ca-certificates/ad-ca.crt
sudo update-ca-certificates
```

Tester LDAPS :

```bash
openssl s_client \
  -connect dc1.snts.local:636 \
  -servername dc1.snts.local \
  -showcerts
```

Le nom utilisé dans GLPI doit correspondre au certificat du contrôleur de domaine.

---

## 7.3 Paramètres d’annuaire GLPI

Dans **Configuration > Authentification > Annuaires LDAP**, ajouter un annuaire :

| Champ | Exemple |
|---|---|
| Nom | Active Directory SNTS |
| Serveur | `ldaps://dc1.snts.local` |
| Port | `636` |
| Base DN | `DC=snts,DC=local` |
| Root DN | `CN=svc_glpi_ldap,OU=Comptes de service,DC=snts,DC=local` |
| Mot de passe | Mot de passe du compte de service |
| Champ de l’identifiant | `sAMAccountName` |
| Champ de synchronisation | `objectGUID` |

Filtre utilisateur possible :

```ldap
(&(objectCategory=person)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
```

Ce filtre sélectionne les utilisateurs et exclut les comptes désactivés.

---

## 7.4 Tester depuis Debian

```bash
ldapsearch -x \
  -H ldaps://dc1.snts.local:636 \
  -D "CN=svc_glpi_ldap,OU=Comptes de service,DC=snts,DC=local" \
  -W \
  -b "DC=snts,DC=local" \
  "(sAMAccountName=alexandre)"
```

---

> Documentation GLPI 11 — Debian 12, Apache, PHP 8.2 et MariaDB.