2017-04-15 58 views
7

gerektiriyordu. Php adLDAP Hata - Sunucuya bağlanılamıyor: Güçlü (er) kimlik Henüz hiçbir başarı ile bir şirket ağında kimlik doğrulaması için <a href="http://adldap.sourceforge.net/" rel="nofollow noreferrer">PHP adLDAP version 4.04</a> kullanmak çalışılıyor

PHP Version 5.2.4

Bu PHP ldap - Strong(er) authentication required, hiçbir şans sonrası StackOverflow'daki çalıştı.

Ben DEĞİL bu etki alanı denetleyicisinde bir yönetici değilim; Sadece sorgulayabilmem gerek.

Ben etki alanı denetleyicisi bir Windows Server 2012 R2 Standard olduğunu

HOSTNAMEOFDC.domain.location.company.com (benim Domain Controller FQDN'SIYLE) ping mümkün.

Bu etki alanı denetleyicisini DsQuery ve PowerShell AD Module kullanarak sorunsuz bir şekilde ve el ile yazmak zorunda olduğum hiçbir kimlik doğrulaması olmadan sorguladım.

Kodum: Ben "use_ssl" => true" yorumsuz zaman bu hatayı alıyorum Sonra

Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Strong(er) authentication required in C:\xampp\htdocs\Workspace\Project\scripts\includes\php\adLDAP\src\adLDAP.php on line 712 
Strong(er) authentication required 
User authentication unsuccessful 

:

Bilginize, ssl benim php.ini

yüklenir
<?php 
require_once("includes/php/adLDAP/src/adLDAP.php"); 
$username = "domain\\username"; // also tried just "username" 
$password = "somepassword"; 

// All possible settings are listed in this array 
$options = array(
     "account_suffix" => "@domain.location.company.com", 
//  "admin_username" => $username, 
//  "admin_password" => $password, 
//  "ad_port" => "636", 
//  "base_dn" => "DC=domain,DC=location,DC=company,DC=com", 
     "domain_controllers" => array("HOSTNAMEOFDC.domain.location.company.com"), 
//  "real_primarygroup" => "", 
//  "recursive_groups" => "", 
//  "use_ssl" => true 
//  "use_tls" => true 
); 

$adldap = new adLDAP($options); 


// $authUser = $adldap->user()->authenticate($username, $password); 
$authUser = $adldap->user()->authenticate($username,$password); 
if ($authUser) { 
    echo "User authenticated successfully"; 
} else { 
    // getLastError is not needed, but may be helpful for finding out why: 
    echo $adldap->getLastError() . "<br>"; 
    echo "User authentication unsuccessful"; 
} 

// Destroy 
$adldap->close(); 
$adldap->__destruct(); 
?> 

hatası alıyorum
Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Can't contact LDAP server in C:\xampp\htdocs\Workspace\Project\scripts\includes\php\adLDAP\src\adLDAP.php on line 712 
Can't contact LDAP server 
User authentication unsuccessful 

Ben de "use_tls" => true" uncommenting denedim ve bu hatayı alıyorum:

Bu cevap PHP 5.2 -5.3 ait olduğu
Warning: ldap_start_tls() [function.ldap-start-tls]: Unable to start TLS: Connect error in C:\xampp\htdocs\Workspace\Project\scripts\includes\php\adLDAP\src\adLDAP.php on line 638 

Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Can't contact LDAP server in C:\xampp\htdocs\Workspace\Project\scripts\includes\php\adLDAP\src\adLDAP.php on line 712 
Can't contact LDAP server 
User authentication unsuccessful 
+0

Ldap bağlantısı kullanıcı adı rdn ile yapılır, ancak sunucular kullanıcı adını kabul edecek şekilde yapılandırılabilir. frz3993 benim newb-li dilerim @ Ve senin de protokol sürümünü kontrol, bazı örnek RDN'de ne olacağını, sürüm 3 – frz3993

+0

olarak ayarlanmış olması gerekir? Doman \ username' gibi mi? uid = 12345, ou halkındaki 'gibi DN bir bileşeni gibi –

+0

fazlası. Bazı sunucular etki alanı \ kullanıcıadı. Ama bu sonuca ilginizi çekiyorsa bu çözüldü frz3993 @ sorun – frz3993

cevap

4

, bu hata (muhtemelen) yeni sürümlerinde sabit olmuştur

Sıkıcı bir şekilde, PHP hatasını geri gönderdiğinde Sunucuya bağlanılamıyor: Güçlü (er) kimlik doğrulaması gerekiyor - aslında bir sertifika veya sertifika grubu YETERLİ MAKİNENİZ ÜZERİNE bir fi'ye sahip olmanız gerektiğini söylüyor. le onlara dikkat et.

Bir dizin oluşturdum: C:\openldap\sysconf (önceden mevcut değildi).

Ben muhtemelen orada /etc veya subdir içinde vereceğini * nix olarak

C:\openldap\sysconf dosyayı ldap.conf yapılan ama henüz o test etmedim.

Gittim ve bizim certs için PEM dosyası bulundu ve (PEM dosyası temelde tek bir dosyada certs bütün zinciridir) dizine çıkarılan. Eğer PEM certs alamıyorsanız TLS_CACERT C:\openldap\sysconf\Certs.pem

, bunun yerine TLS_REQCERT never kullanabilirsiniz: ldap.conf içinde

Çizgiyi ekledi. Bunu yaparken dikkatli olun.Bunu yaparak orta saldırıda bir adam kendini açığa çıkaracak. Bitiş noktasını doğrulamaz. Bunu yapan kez

, başarıyla binded.

Bu işe yaramadıysa, C:\'a (kök düzeyi) ldap.conf'u koymayı deneyin; o kullandığınız PHP hangi sürümünü bağlı gibi görünüyor - bu ldap.conf için farklı yerlerde aramaya karar verir.