Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Mon 15 July 2024 17:00

lberon
Juste Inscrit !
Date d'inscription: 15 Jul 2024
Messages: 4

Configuration du pg_hba.conf pour branchement LDAP

Bonjour,

Je tente de brancher les connexions de nos utilisateurs de BDD à notre LDAP pour des raisons de sécurité.
Je n'arrive en revanche pas à paramétrer correctement et j'ai une impossibilité pour m'authentifier :

FATAL: authentification LDAP échouée pour l'utilisateur « u.user » FATAL: authentification LDAP échouée pour l'utilisateur « u.ser »

J'ai les éléments suivants pour notre LDAP (infos fictives) :

- nom : ldap.dcnt1.org
- port : 400
- DC = dcnt1, org

J'ai donc paramétré l'authentification par la configuration suivante :
host    all             all             IP/24        ldap ldapserver=ldap.dcnt1.org ldapport=400 ldapprefix="" ldapsuffix=", dc=dcnt1, dc=org"


Je n'arrive pas à cerner la différence entre une connexion search et search+bind.
J'en comprends que le search + bind utilise une pré-authentification et va rechercher si le u.user qui essaie de se connecter existe dans le LDAP.
Le search classique utilise le u.user directement.

Une personne de la communauté pourrait-elle m'aiguiller ?

Dois-je renseigner des OU ?
Dois-je utiliser le compte READ@texte-a-enlever.dcnt1.org (mot de passe : mdpread) qui est notre compte user pour lire l'AD ?
Dois-je renseigner d'autres options ?

J'ai tenté de nombreuses configurations, sans succès.
A chaque fois le message d'erreur d'authentification apparaît.

Mon u.user a eu un simple GRANT TO CONNECT ON MA_BASE TO "u.user";

En vous remerciant, Léandre BERON

Hors ligne

 

#2 Tue 16 July 2024 07:30

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1147

Re: Configuration du pg_hba.conf pour branchement LDAP

Bonjour,

dans le cas d'un bind simple, postgresql va tenter une connexion (ou un bind en jargon ldap) en utilisant le DN  que vous lui avez spécifié, qui est le "chemin d'accès" d'un object ldap. Donc oui, il faut spécifier le chemin complet vers l'OU ou réside les utilisateurs qui vont se connecter à votre serveur.

Search+bind est utilisé quand par exemple vos utilisateurs se trouvent dans sur plusieurs OU. Dans ce cas la vous spécifiez un utilisateur bien défini, dont le DN ne changera pas (donc il faut également spécifier le DN), avec lequel postgresql va bind pour rechercher dans l'annuaire l'utilisateur qui tente de se connecter en faisant correspondre un attribut au nom d'utillisateur (par défaut uid, on lui préfère souvent sAMAccountName qui possède normalement la même valeur mais qui ne peut pas être vide). Si une correspondance est trouvée postgresql refait un bind avec l'utilisateur trouvé.

A noter que si votre serveur ldap le permet, la phase search peut se faire de manière anonyme, c'est à dire sans avoir a spécifier d'utilisateur (déconseillé pour des raisons de sécurité).

Sinon je pense que vous avez oublié de spécifier le prefixe dans votre hba :

Code:

ldapprefix="CN="

Dans la methode bind simple, le DN est constitué par la concaténation de chaine suivante :

Code:

ldapprefix || nom_dutilisateur || ldapsuffix

Dernière modification par tumasgiu (Tue 16 July 2024 07:33)

Hors ligne

 

#3 Thu 18 July 2024 15:37

lberon
Juste Inscrit !
Date d'inscription: 15 Jul 2024
Messages: 4

Re: Configuration du pg_hba.conf pour branchement LDAP

Bonjour,

Merci pour ces explications.
Si je comprends bien, ayant des OU différentes, je dois donc modifier la configuration comme suit :

ldap ldapserver=ldap.dcnt1.org ldapport=400 ldapbasedn="dc=dcnt1,dc=org" ldapsearchfilter="(|(ou=MONOU1)(ou=MONOU2))" ldapprefix="cn=" ldapsuffix=",dc=dcnt1,dc=org"


Cela ne me met maintenant plus l'erreur d'authentification mais maintenant une erreur type :

could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "dev-grande" (10.03.9.229) and accepting TCP/IP connections on port 5432?


Il changerait d'IP pour se connecter avec le LDAP par conséquent ?

J'ai ouvert cet IP dans le pg_hba.conf en trust, cela ne change rien une fois restart. J'ai aussi tenté en md5, et avec la même configuration LDAP que précédement cité.

Je n'ai pas spécifié d'utilisateur bien défini avec lequel postgresql va bind pour rechercher l'utilisateur dans l'annuaire.
En spécifiant le ldapbinddn et ldapbindpasswd j'obtiens :


ldap ldapserver=ldap.dcnt1.org ldapport=400 ldapbasedn="dc=dcnt1,dc=org" ldapsearchfilter="(|(ou=MONOU1)(ou=MONOU2))" ldapprefix="cn=" ldapsuffix=",dc=dcnt1,dc=org"  ldapbinddn="cn=admin,dc=dcnt1,dc=org" ldapbindpasswd="adminmdp"


Après restart j'ai exactement la même erreur que précédement sur cette nouvelle IP.

Cordialement,
Léandre BERON

Hors ligne

 

#4 Mon 22 July 2024 08:48

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1147

Re: Configuration du pg_hba.conf pour branchement LDAP

Bonjour,

votre serveur refuse sans doute de démarrer, très certainement à cause de la ligne que vous avez rajoutée dans le hba qui doit être incorrecte.
Il faudrait que vous regardiez les logs pour savoir exactement ce qui ne va pas.

Je ne sais pas si c'est cette erreur qui empêche postgres de démarrer, mais votre paramètre ldapsearchfilter est incorrecte. Ce paramètre est le filtre qui est utilisé pour tester si un utilisateur précis existe dans l'annuaire.

Pour ce faire il faut construire la requête à l'aide de la variable $username, qui contient le nom d'utilisateur utilisé pour se connecter au serveur postgres. La requête va s'executer sur tous les éléments du sous arbre de l'annuaire désigné par le paramètre ldapbasedn. Il faut donc que vos utilisateurs soient situés dans ce sous arbre (dans votre cas, cela a l'air bon car vous désignez l'intégralité de votre annuaire).

L'attribut testé par la requête doit donc contenir le nom d'utilisateur postgres. Dans un active directory, on utilise généralement :

Code:

ldapsearchfilter="sAMAccountName=$username"

ou

Code:

ldapsearchattribute=sAMAccountName

La documentation en français : https://docs.postgresql.fr/current/auth-ldap.html

Dernière modification par tumasgiu (Mon 22 July 2024 11:44)

Hors ligne

 

#5 Mon 26 August 2024 14:44

lberon
Juste Inscrit !
Date d'inscription: 15 Jul 2024
Messages: 4

Re: Configuration du pg_hba.conf pour branchement LDAP

Bonjour,

Merci pour ces différents retour.

Mon erreur était due à un compte pour remonter les informations de supervision à un autre serveur.
Après l'avoir ajouté en méthode trust pour uniquement ce compte, je n'ai plus le problème.

En paramétrant ma ligne ainsi :

ldap ldapserver=ldap.dcnt1.org ldapport=XXXX ldapbasedn="dc=dcnt1,dc=org" ldapbinddn="READ@texte-a-enlever.dcnt1.org" ldapbindpasswd="PASSWORD" ldapsearchattribute=sAMAccountName

J'ai un échec d'authentification.
Les logs m'indiquent que l'authentification par mot de passe a échouée pour l'utilisateur USER.
L'utilisateur "USER" n'a pas de mot de passe affecté.

Pourtant, quand j'utilise un ldapsearch en ligne de commande, mon USER remonte bien de mon LDAP :

ldapsearch -x -H ldap://ldap.dcnt1.org -D "READ@texte-a-enlever.dcnt1.org" -w 'PASSWORD' -b "dc=dcnt1,dc=org" "(sAMAccountName=USER)"

Cordialement,
Léandre BERON

Hors ligne

 

#6 Mon 26 August 2024 15:29

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1147

Re: Configuration du pg_hba.conf pour branchement LDAP

Bonjour,

dans votre hba, est ce qu'il existe un enregistrement avant votre enregistrement ldap dont les 5 premiers champs seraient identiques ? (même type de connexion, même base de donnée, même plage d'adresse ip, même utilisateur)

par exemple :

Code:

host ma_bdd 192.168.1.0/24 USER md5
#plein d'autre enregistrements 
#plein d'autre enregistrements 
host ma_bdd 192.168.1.0/24 USER ldap ldapserver=ldap.dcnt1.org ldapport=XXXX ldapbasedn="dc=dcnt1,dc=org" ldapbinddn="READ@dcnt1.org" ldapbindpasswd="PASSWORD" ldapsearchattribute=sAMAccountName

Si c'est le cas, c'est obligatoirement le premier enregistrement de la liste qui corresponds à ces champs qui est utilisé pour authentifier la connexion. Si l'authentification échoue, la connexion est annulée, postgresql ne cherche pas à savoir s'il existe une autre méthode permettant de valider l'authentification plus bas dans le hba.

Cela a l'air de correspondre à votre problème.

Dernière modification par tumasgiu (Fri 06 September 2024 11:10)

Hors ligne

 

#7 Wed 11 September 2024 09:00

lberon
Juste Inscrit !
Date d'inscription: 15 Jul 2024
Messages: 4

Re: Configuration du pg_hba.conf pour branchement LDAP

Bonjour,

Merci pour votre aide.
Il y avait en effet une ligne avec IP de masque plus haut qui semblait poser problème.

J'ai maintenant une nouvelle erreur.

Je poursuis les recherches et reviendrai vers vous si je ne trouve pas.

Cordialement,
Léandre BERON

Hors ligne

 

Pied de page des forums

Powered by FluxBB