You are not logged in.
Bonjour,
Je suis en cours de configuration sur mon instance GLPI, cependant je sèche sur la partie LDAPS.
J'ai paramétrer mon annuaire LDAPS et le test de connexion via GUI WEB fonctionne avec le paramètre "user bind" = Non.
Cependant lorsque je me rends dans "administration > utilisateurs > importation de nouveaux utilisateurs" je ne parviens pas à retrouver mes utilisateurs.
Sur mes autres applications utilisant LDAPS le compte de bind est toujours requis , sur GLPI avec le "user bind = oui" et le compte de bind renseigné en LDAPS le test de connexion échoue web gui.
Je ne comprends pas comment GLPI peut parvenir à synchro les utilisateurs sans compte utilisateur du domaine pour pouvoir requêter l'AD / LDAP et je ne sais donc pas comment modifier ma configuration LDAPS.
Configuration de mon serveur LAMP :
RHEL 9.3
PHP 8.0.3
Apache 2.4.57
Mariadb 10.5.22
Configuration du connecteur LDAPS en place :
Serveur : ldaps://monserveurad.mondomaine
Port : 636
Filtre de connexion (je ne suis pas certains que ce paramètre soit bon) : (&(objectClass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(!(samaccountname=*$)))
BaseDN : DC=domaine,DC=com
Utiliser bind : NON
Champ de l'identifiant : samaccountname
J'ai récupérer le certificat racine de mon AD, j'ai ajouter ce certificat dans /etc/openldap/certs/CA_XXX.cert
Le fichier /etc/openldap/ldap.conf est configuré comme suit :
TLS_CACERT /etc/openldap/certs/CA_XXX.crt
TLS_REQCERT never
SASL_NOCANON on
Quelqu'un à t'il une piste pour m'aider et éclairer ma lanterne ?
Merci d'avance
Last edited by GordzYlla (2024-02-22 15:56:13)
Offline
Bonjour,
Après avoir analyser un peu plus en détail ce qu'il se passe sur mon serveur j'ai l'impression qu'il s'agit d'une limite de PHP/GLPI...
Si quelqu'un a d'autres idées que celles que j'évoque plus bas je suis preneur.
Complément d'information :
- En ldaps, port 636, sans compte de lien la configuration du connecteur est ok. Cependant impossible de requêter les utilisateurs, la requête génère l’erreur PHP. La requête LDAP est alors en mode anonyme.
Les requetes anonymes sont bloquées pour des raisons de sécurité sur mon environnement.
- En ldaps, port 636, avec compte de lien, la configuration du connecteur est KO. Impossible de se connecter à l’annuaire LDAP depuis l’interface web.
PHP User Warning (512): Unable to bind to LDAP server `ldaps://serveur:636` with RDN `CN=xxxxxxx,CN=yyyyyyyyyys,DC=zzzzzz,DC=wwwwwww`
error: Can't contact LDAP server (-1) in /var/www/html/glpi/src/AuthLDAP.php at line 3194
Backtrace :
src/AuthLDAP.php:3194 trigger_error()
src/AuthLDAP.php:3058 AuthLDAP::connectToServer()
src/AuthLDAP.php:2877 AuthLDAP->connect()
src/AuthLDAP.php:2819 AuthLDAP::ldapImportUserByServerId()
front/user.form.php:134 AuthLDAP::forceOneUserSynchronization()
public/index.php:82 require()
o Cependant, des lignes de commandes permettent de lancer des synchronisations LDAP depuis le serveur linux, ce qui peuple les utilisateurs dans la base mariadb et qui permet d’avoir un affichage des utilisateurs sur l’interface web.
cd /var/www/html/glpi/bin/
bin/console glpi:ldap:synchronize_users
la synchro se lance bien avec les paramètres de mon compte de bind et sur le base DN renseigné (ce meme compte de bind que l'interface web de glpi me refuse)
toutefois L’interface web reste cependant incapable de contacter l’annuaire LDAP et donc l’authentification sur l’interface web avec le compte LDAP est impossible.
Sans compte de bind paramétrer :
[2024-02-26 10:22:51] glpiphplog.WARNING: *** PHP User Warning (512): LDAP search with base DN `CN=yyyyyyyyyyyyy,DC=zzzzzz,DC=wwwwwww` and filter `(& (samaccountname=xxxxxxxxx) (&(objectClass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2))))` failed
error: Can't contact LDAP server (-1) in /var/www/html/glpi/src/AuthLDAP.php at line 3611
Backtrace :
src/AuthLDAP.php:3611 trigger_error()
src/Auth.php:280 AuthLDAP::searchUserDn()
src/AuthLDAP.php:3393 Auth->connection_ldap()
src/AuthLDAP.php:3519 AuthLDAP::ldapAuth()
src/Auth.php:968 AuthLDAP::tryLdapAuth()
front/login.php:94 Auth->login()
public/index.php:82 require()
Avec compte de bind paramétrer
[2024-02-26 10:26:45] glpiphplog.WARNING: *** PHP User Warning (512): Unable to bind to LDAP server `ldaps://server:636` with RDN `CN=xxxxxxxx,CN=yyyyyyyyyy,DC=zzzzzzzzDC=wwwww`
error: Can't contact LDAP server (-1) in /var/www/html/glpi/src/AuthLDAP.php at line 3194
Backtrace :
src/AuthLDAP.php:3194 trigger_error()
src/AuthLDAP.php:3229 AuthLDAP::connectToServer()
src/Auth.php:257 AuthLDAP::tryToConnectToServer()
src/AuthLDAP.php:3393 Auth->connection_ldap()
src/AuthLDAP.php:3519 AuthLDAP::ldapAuth()
src/Auth.php:968 AuthLDAP::tryLdapAuth()
front/login.php:94 Auth->login()
public/index.php:82 require()
On semble donc être sur une limite applicative de GLPI / PHP.
Autres options de configurations possible : LDAP over TLS (STARTTLS) : ldap://server port 389 sécurisation via certificat TLS
- JE vais tester de mettre cette cette configuration en place (certificat TLS et keyfile associé nécessaire)
Piste SAML / Azure AD :
- Pas de SAML natif sur GLPI.
- Certains pluggins développé par des tiers permettent l’ajout de la fonctionnalité :
o GitHub - edgardmessias/glpi-singlesignon
o GitHub - derricksmith/phpsaml: GLPI Plugin - SAML integration using the Onelogin SAML Library
Last edited by GordzYlla (2024-02-26 12:58:28)
Offline
J'ai trouver comment faire marcher mon LDAPS avec un compte de bind.
Le coupable est SELINUX.
J'ai ajouter les règles adéquates pour autoriser php à travailler.
Marche à suivre pour ajouter les règles dans selinux : Article a rechercher sur google : Red Hat - Basic SELinux Troubleshooting in CLI
1) ausearch -m AVC,USER_AVC -ts recent
2) # journalctl -t setroubleshoot --since= [time]
Selinux va afficher les blocages et vous donner les commandes à passer pour autoriser les opérations
Offline