WIKI ITSM-NG

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


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 :

  1. Renseigner dans le champ Provider l'URL principale du portail LemonLDAP::NG, par exemple https://auth.example.com/.
  2. Définir un Client ID (identifiant client).
  3. Définir un Client Secret (secret client).
  4. Définir les scopes : openid profile email phone.
  5. 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 :

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


5. Vérification de l'intégration

  1. Accéder à l'URL d'ITSM-NG depuis un navigateur.
  2. Vérifier la redirection vers le portail LemonLDAP::NG.
  3. Se connecter avec un compte de l'annuaire.
  4. Vérifier que l'utilisateur est bien créé ou reconnu dans ITSM-NG, avec ses prénom, nom, adresse e-mail et groupes.
  5. Tester la déconnexion et vérifier la redirection vers l'instance ITSM-NG.

6. Références