Cette documentation décrit comment intégrer ITSM-NG à LemonLDAP::NG afin de permettre l'authentification unique (SSO) des utilisateurs via le protocole OpenID Connect.
1. Prérequis
- Une instance LemonLDAP::NG 2.0 opérationnelle, avec son portail accessible en HTTPS.
- Une instance ITSM-NG accessible en HTTPS.
- Un annuaire LDAP contenant les attributs
sn,mail,cnet, si utilisé,groups. - Les droits d'administration sur LemonLDAP::NG (interface Manager ou ligne de commande).
2. Configuration d'ITSM-NG
2.1 Prérequis côté ITSM-NG
Vous devez disposer de la permission Configuration générale sur votre profil.
2.2 Configuration de l'OIDC
Dans la configuration du fournisseur OpenID Connect d'ITSM-NG, accessible depuis le menu Administration -> Authentification -> Authentification avec OpenID Connect :
- Renseigner dans le champ Provider l'URL principale du portail LemonLDAP::NG, par exemple
https://auth.example.com/. - Définir un Client ID (identifiant client).
- Définir un Client Secret (secret client).
- Définir les scopes :
openid profile email phone. - Activer Lier les comptes à d'autres sources d'authentification.
Important : le Client ID et le Client Secret doivent être strictement identiques à ceux configurés dans LemonLDAP::NG (section 4.2).
2.3 Configuration du mappage OIDC
Une fois la configuration OIDC enregistrée, cliquez sur le bouton Mappage.
Renseignez ensuite les valeurs suivantes dans les différentes zones de mappage :
| Champ ITSM-NG | Claim OIDC |
|---|---|
| Nom | username |
| Nom de famille | family_name |
| Prénom | given_name |
| Courriel | email |
| Téléphone | phone_number |
| Locale | locale |
| Image | picture |
| Groupe | groups |
3. Configuration de LemonLDAP::NG
3.1 Prérequis côté LemonLDAP::NG
Si ce n'est pas déjà fait, configurez LemonLDAP::NG en tant que service OpenID Connect (voir la documentation « OpenID Connect Service » de LemonLDAP::NG).
3.2 Ajout d'ITSM-NG comme client OpenID Connect
Pour ajouter ITSM-NG en tant que client OpenID Connect, depuis la console d'administration LemonLDAP::NG, allez dans la section Clients OpenID Connect puis ajoutez-le avec les paramètres suivants :
| Paramètre | Valeur |
|---|---|
| ID Client | Identique à celui défini dans ITSM-NG |
| Secret Client | Identique à celui défini dans ITSM-NG |
| Adresses de redirection autorisées pour la connexion | URL de retour de l'instance ITSM-NG, par exemple https://itsmng.example.com/front/oidc.php |
3.3 Attributs exportés
Dans la section Attributs, ajoutez les attributs exportés suivants :
| Claim OIDC | Attribut LDAP source |
|---|---|
family_name |
sn |
email |
mail |
name |
cn |
groups |
groups |
3.4 Configuration en ligne de commande
Exemple de configuration via l'outil lemonldap-ng-cli (à adapter : identifiants, URL et algorithmes) :
/usr/libexec/lemonldap-ng/bin/lemonldap-ng-cli -yes 1 \
addKey \
oidcRPMetaDataExportedVars/itsmng family_name sn \
oidcRPMetaDataExportedVars/itsmng email mail \
oidcRPMetaDataExportedVars/itsmng name cn \
oidcRPMetaDataExportedVars/itsmng groups groups \
oidcRPMetaDataOptions/itsmng oidcRPMetaDataOptionsClientID myClientId \
oidcRPMetaDataOptions/itsmng oidcRPMetaDataOptionsClientSecret myClientSecret \
oidcRPMetaDataOptions/itsmng oidcRPMetaDataOptionsRedirectUris 'https://itsmng.example.com/front/oidc.php' \
oidcRPMetaDataOptions/itsmng oidcRPMetaDataOptionsPostLogoutRedirectUris 'https://itsmng.example.com' \
oidcRPMetaDataOptions/itsmng oidcRPMetaDataOptionsIDTokenSignAlg RS512 \
oidcRPMetaDataOptions/itsmng oidcRPMetaDataOptionsIDTokenExpiration 3600 \
oidcRPMetaDataOptions/itsmng oidcRPMetaDataOptionsAccessTokenExpiration 3600 \
oidcRPMetaDataOptions/itsmng oidcRPMetaDataOptionsBypassConsent 1
Remplacez notamment :
myClientIdetmyClientSecretpar vos propres valeurs (à reporter à l'identique dans ITSM-NG) ;https://itsmng.example.compar l'URL réelle de votre instance ITSM-NG.
| Option | Rôle |
|---|---|
oidcRPMetaDataOptionsIDTokenSignAlg |
Algorithme de signature du jeton d'identité (ici RS512) |
oidcRPMetaDataOptionsIDTokenExpiration |
Durée de validité de l'ID token, en secondes (ici 3600) |
oidcRPMetaDataOptionsAccessTokenExpiration |
Durée de validité de l'access token, en secondes (ici 3600) |
oidcRPMetaDataOptionsBypassConsent |
Désactive l'écran de consentement de l'utilisateur (1 = désactivé) |
4. Points d'attention
- Cohérence des attributs : tout attribut mappé dans ITSM-NG (section 2.3) doit être déclaré dans les attributs exportés de LemonLDAP::NG (section 3.3). Ces attributs doivent également être retournés par les scopes demandés par ITSM-NG.
- URL de redirection : l'URL configurée dans LemonLDAP::NG doit correspondre exactement à celle utilisée par ITSM-NG (schéma
https://, nom d'hôte, port et chemin inclus). - Secrets : le Client Secret doit être conservé de manière sécurisée et ne jamais être exposé publiquement.
- HTTPS : les deux services doivent être accessibles en HTTPS.
5. Vérification de l'intégration
- Accéder à l'URL d'ITSM-NG depuis un navigateur.
- Vérifier la redirection vers le portail LemonLDAP::NG.
- Se connecter avec un compte de l'annuaire.
- Vérifier que l'utilisateur est bien créé ou reconnu dans ITSM-NG, avec ses prénom, nom, adresse e-mail et groupes.
- Tester la déconnexion et vérifier la redirection vers l'instance ITSM-NG.
6. Références
- Documentation LemonLDAP::NG 2.0 — ITSM NG : https://lemonldap-ng.org/documentation/2.0/applications/itsm-ng.html