2010-08-25 19 views
2

J'essaie de faire fonctionner un client LDAP en PHP. Mon code est en place et fonctionne avec le protocole LDAP standard. Cependant, lorsque je change ldap: // serveur en ldaps: // serveur, cela ne fonctionne pas. Définir le mode de débogage sur 7 génère cette erreur. Je devrais ajouter que c'est un serveur linux utilisant openSSL.PHP LDAP ne fonctionne pas en toute sécurité

TLS: can't connect: The Diffie Hellman prime sent by the server is not acceptable (not long enough).. 

Est-il possible de dépasser cela? Changer n'importe quoi sur le serveur LDAP n'est pas une option car j'ai seulement des privilèges de client dessus.

EDIT: réglage avec mon ldap.conf est

TLS_REQCERT jamais

EDIT2: Voici mon code

if(isset($_POST['pass'])){ 
    $username = $_POST['user']; 
    $password = $_POST['pass']; 

    ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7); 



    $ds=ldap_connect("ldaps://server.com"); 

    ldap_set_option($ds, LDAP_OPT_REFERRALS, 0); 
    ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3) ; 
    //Check LDAP server for user 
     if([email protected]_bind($ds, "uid={$username},ou=people,o=site.ca,o=site", "{$password}") || strlen($password)==0){ 
    //  LDAP login was not successful 
      printf("Sorry, wrong username/password\n\n\n"); 
      return; 
     } 

    [email protected]_search($ds, "ou=people,o=site.ca,o=site", "uid={$_POST['user']}"); 
    $result = @ldap_get_entries($ds, $ldapSearch); 


} 

Répondre

0

Tout d'abord, ceci est pour Ryerson? Allons! (Je travaillais à York U! Je dois taquiner un peu les gars du centre-ville, ça pourrait être pire, vous pourriez être à l'Université de Toronto!). Mais sérieusement, en fonction de votre serveur LDAP au backend, il y a deux approches habituelles. Ldaps: //ldap.ryerson.ca: 636 pourrait mieux fonctionner, dans la mesure où il tentera de faire une liaison SSL, en espérant que vous avez approuvé la clé publique de l'autorité de certification qui a signé le certificat utilisé pour SSL. TLS est vraiment SSL V3.1 et l'une des fonctionnalités très intéressantes qu'il ajoute est qu'il fonctionne bien sur le port 389, mais peut émettre une commande StartTLS qui prend une connexion texte clair que vous avez démarré sur 389 et permet le cryptage .

Mon soupçon est que du code d'erreur il essaye de faire un LDAP sur SSL sur le port de texte clair qui échouera.