PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 21/01/2015 10:21:55

Benoît.A
Membre

PostgreSQL, LADPS et Serveur Windows

Bonjour.
Je fait évoluer un petit projet autour de PostgreSQL dans mon entreprise, et alors que je suis aujourd'hui sur une autentification locale, on me demande de la faire évoluer en passant par le LDAPs de l'entreprise.

Voici ma configuration.
— Un serveur de «production» : PostgreSQL 9.3 sur un Windows serveur 2008 R2.
— Une machine de travail / test / bidouille : PostegreSQL 9.3 sur un Windows 7.

Pour le moment mes quelques essais n'on rien donné de concluant (J'ai essayé quelques modifications de configuration dans pg_hba.conf, sans être certain de mes manipulations)
C'est la première fois que je travaille avec du LDAP et je suis autodidacte sur du PostgreSQL

J'ai cru comprendre que le support LDAP n'était qu'en option au moment de la compilation. N'ayant fait que installer les package du site officiel, comment savoir si la version de PostgreSQL que j'utilise as bien le support LDAP actif ?

Plus globalement, comment pouvoir configurer PostgreSQL pour qu'il authentifie mes utilisateurs via le LDAP.

J'ai lu pas mal de bout de documentation, mais je suis bloqué pour le moment.

Merci d'avance de votre aide.

Cordialement

B.A.

Hors ligne

#2 21/01/2015 11:49:37

rjuju
Administrateur

Re : PostgreSQL, LADPS et Serveur Windows

Bonjour,

Normalement les paquets officiels sont compilés avec toutes les options utiles, notamment --with-ldap. Vous devriez avoir un exécutable pg_config.exe qui récapitule entre autre les options de compilation utilisées (ligne CONFIGURE = ). Sinon, avec vous regardé la documentation officielle : http://docs.postgresql.fr/9.3/auth-methods.html ?

Hors ligne

#3 21/01/2015 12:43:53

Benoît.A
Membre

Re : PostgreSQL, LADPS et Serveur Windows

Je suis (un peu) rassuré, mon installation PostgreSQL est bien compilé avec le support LDAP.

J'ai effectivement déjà regardé la documentation (qui est un peu mon livre de chevet depuis que je suis sur ce projet au boulot) qui est une mine d'information.
Et d'après cette documentation, il faudrait probablement faire un «search + bind».

En tout cas on m'as fournis un nom d'utilisateur et un mot lié a l'application pour m'autentifier auprés du serveur LADPs.
Mais les procédures qui me sont fournies en interne sont pour une application PHP qui serais développé de 0 (ou presque) et donc ne correspondent pas vraiment a ce que demande PostgreSQL.

--

En fait j'ai un peu de mal a comprendre comment il fait (et vu que j'y connais rien a LDAP, ça aide pas).

De ce que je comprend, sur un «search + bind» PostgresSQL ferais ceci :

CONNEXION avec l'identifiant Application
RECHERCHE de l'utilisateur
DÉCONNEXION

CONNEXION avec l'identifiant utilisateur
-vois si il arrive a se connecter.
DÉCONNEXION

Ce qui ne serais pas tout a fait le comportement attendu, qui lui serais.

CONNEXON avec l'identifiant Application
RECHERCHE de l'utilisateur
AUTENTIFICATION de l'utilisateur
DÉCONNEXION

Je déconne complétement ou ça se passe bien comme cela ?

Hors ligne

#4 21/01/2015 14:36:42

rjuju
Administrateur

Re : PostgreSQL, LADPS et Serveur Windows

Le mode search + bind permet une plus grande souplesse dans la localisation des utilisateur LDAP. Si tous les utilisateurs sont au même endroit (même prefix et/ou suffix), le mode bind suffit.


Sinon, ce que vous appelez authentification est simplement une connexion LDAP qui réussit, donc le comportement que vous attendez se trouve être le comportement que vous décrivez avant.

Hors ligne

#5 21/01/2015 16:53:24

Benoît.A
Membre

Re : PostgreSQL, LADPS et Serveur Windows

Ok.

Les log semblent indiquer que je fait pas complétement nimporte quoi avec pg_hba.conf , mais que ce n'est pas forcément la même chose avec le LDAP

2015-01-21 15:17:56 CET LOG:  n'a pas pu démarrer la session TLS LDAP : Serveur hors service
2015-01-21 15:17:56 CET FATAL:  authentification LDAP échouée pour l'utilisateur « Toto »
2015-01-21 15:17:56 CET DÉTAIL:  La connexion correspond à la ligne 88 du pg_hba.conf : « host	 est	 Toto	 10.0.0.0/8	 ldap	 ldapserver=dmztest-annuaire-ldap.entreprise.fr ldaptls=1 ldapbinddn=ID-Application ldapbindpasswd=MDP-Application ldapbasedn="uid=ID-Application,ou=Applis,dc=annuaire-ldap" ldapbinddn="ou=people,dc=annuaire-ldap" ldapsearchattribute=uid »

«Toto» est le login de mon utilisateur
«ID-Application» est l'identifiant de mon application
«MDP-Application» est le mot de passe de mon application
«dmztest-annuaire-ldap.entreprise.fr» est l'adresse du serveur LDAP
«uid=ID-Application,ou=Applis,dc=annuaire-ldap» m'est donné par mon SI comme devant être «DN»
«ou=people,dc=annuaire-ldap» m'est donné par mon SI comme devant être «Base de recherche des utilisateurs»


Il y aurrais il une erreur dans ma façon de procéder ?
Vu la première ligne de LOG, je me dit qu'il y aurrais peu être un probléme avec le serveur LDAP, mais je ne sais pas comment le vérifier.

Dernière modification par Benoît.A (21/01/2015 16:53:37)

Hors ligne

#6 21/01/2015 17:33:05

Benoît.A
Membre

Re : PostgreSQL, LADPS et Serveur Windows

En spécifiant le port de connexion dans pg_hba.conf pour LDAP les log changent quelque peu.

Je passe de

2015-01-21 15:18:32 CET LOG:  n'a pas pu démarrer la session TLS LDAP : Serveur hors service

à

2015-01-21 16:27:16 CET LOG:  n'a pas pu démarrer la session TLS LDAP : Incapable d’exécuter

A voir maintenant a quoi cela est du. J'ai l'impression d'avancer, mais toujours dans un brouillard épais.

Hors ligne

#7 21/01/2015 17:41:56

rjuju
Administrateur

Re : PostgreSQL, LADPS et Serveur Windows

Il s'agit à chaque fois des messages d'erreur renvoyé par le LDAP ou la lib associée, voir http://linux.die.net/man/3/ldap_err2string. Je vous conseille de configurer des traces en anglais et de chercher la cause de cette erreur.

Hors ligne

#8 12/03/2015 14:51:27

Benoît.A
Membre

Re : PostgreSQL, LADPS et Serveur Windows

Bonjour.
Je suis toujours avec le même probléme, qui finalement n'avance que peu.

Avec un logiciel de gestion LDAP «LDAP Admin» j'en arrive au constat suivant : Toute les connexions sont refusée sur le port 389. J'ai d'autres erreurs si je spécifie le port sur 636.

J'ai trouvé des options pour spécifier l'usage du TLS, mais aucun pour explicitement demander l'utilisation d'une connexion SSL. Comment le faire ? Ceci est il simplement possible avec PostgreSQL ?

Hors ligne

Pied de page des forums