Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/08/2007, 12h52   #1
Membre éclairé
 
Avatar de BornBanane
 
Homme
Ingénieur développement logiciels
Inscription : mars 2007
Messages : 274
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mars 2007
Messages : 274
Points : 350
Points : 350
Par défaut [LDAP] Problème de connexion vers AD en ssl

Bonjour,

Dans le cadre d'un projet je dois à partir d'une machine (Windows Server 2003 r2) faire de l'authentification sur un AD. L'authentification se fait par le biais d'une interface web. Donc j'utilise Apache (avec SSL) et PHP.

Si j'utilise une connection classique en ldap (donc sans SSL) cela marche parfaitement. Mais pour des raisons de sécurités je dois utilisé LDAP avec SSL.

Or la je coince. Je précise que j'ai activé LDAP et OPENSSL dans les extensions de PHP.

Voici mon script de connection :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
$server = "ldaps://192.168.0.1";
$port = "636";
$racine = "OU=Users,DC=boite,DC=com";
$rootdn = "CN=Login,OU=Truc,OU=Users,DC=boite,DC=com";
$rootpw = "MDP";
 
$ds = ldap_connect($server,$port);
if ($ds) 
{
echo 'ldap_connect OK';
$db = ldap_bind($ds,$rootdn,$rootpw);
		if ( $db )
		{
			echo 'Connexion réussie<br/>';
		}
		else echo 'Erreur'.$db;
}
Et voila l'erreur que j'obtient :
Citation:
Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Can't contact LDAP server in C:\...\htdocs\...\LDAPS_AD.php on line 13
Erreur
Faut-il intégrer le certificat de l'AD a mon serveur ? Si oui comment ?
BornBanane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2007, 17h22   #2
Membre éclairé
 
Avatar de BornBanane
 
Homme
Ingénieur développement logiciels
Inscription : mars 2007
Messages : 274
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mars 2007
Messages : 274
Points : 350
Points : 350
J'arrive à accéder en ldaps mais par contre je n'arrive toujours pas a ce qu'il utilise de façon certain le bon certificat.

Voila comment j'ai fait :

Sur mon server j'ai crée un fichier ldap.conf dans le répertoire C:\openldap\sysconf .

Ensuite dans ce fichier je met :
Cela fonctionne. Cela utilise du TLS comme protocol. Par contre ca ne doit pas utiliser le certificat de l'AD

Alors j'ai pu récuperer le fichier cer et le fichier crl provenant de l'AD. Ensuite j'ai changer le fichier ldap.conf par :

Code :
1
2
3
4
 
TLS_REQCERT hard
TLS_CACERT C:\cert\fichier.crl
TLS_CACERTDIR C:\cert
Et la je reviens avec l'erreur du dessus.
J'ai testé avec le fichier cer et même chose.
J'ai testé avec dans le lien des fichier des \\ ou des / et rien.

Bref si quelqun avait une idée ?
BornBanane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 09h58   #3
Membre éclairé
 
Avatar de BornBanane
 
Homme
Ingénieur développement logiciels
Inscription : mars 2007
Messages : 274
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mars 2007
Messages : 274
Points : 350
Points : 350
En fait je me posais la question, PHP tente de se connecté à LDAP (AD) via SSL. Donc il agit comme client. Si je lui indique :

Mes requêtes LDAPS marchent. Mais je ce que je pose comme question est : qu'est-ce qu'il fait exactement ?

Citation:
TLS_REQCERT <level>
Specifies what checks to perform on server certificates in a TLS
session, if any. The <level> can be specified as one of the fol-
lowing keywords:

allow The server certificate is requested. If no certificate is
provided, the session proceeds normally. If a bad cer-
tificate is provided, it will be ignored and the session
proceeds normally.

try The server certificate is requested. If no certificate is
provided, the session proceeds normally. If a bad cer-
tificate is provided, the session is immediately termi-
nated.

demand | hard
These keywords are equivalent. The server certificate is
requested. If no certificate is provided, or a bad cer-
tificate is provided, the session is immediately termi-
nated. This is the default setting.
Comme hard ne fonctionne pas, try ne fonctionne pas, allow et never fonctionne. J'en conclus que je suis dans le cas : "a bad certificate is provided" .

Qu'est-ce qu'il considère comme "bad certificate". Le fait que je lui en indique pas dans mon fichier ldap.conf ou le certificat de mon AD (qui lorsqu'on l'ouvre sous windows est marqué comme certificat valide) ?
BornBanane est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h34.


 
 
 
 
Partenaires

Hébergement Web