2015-03-13 85 views
0

我一直在努力奮鬥幾天而沒有進步,首先我對LDAP和Active Directory知之甚少。我需要使用php通過企業連接ldap服務器,然後只需運行綁定即可。安全地連接到ldap傻瓜

我在網上瀏覽了很多資料,但似乎沒有一個明確的回答我的問題。此外,我收到的錯誤消息據說有很多原因,因此更難瞄準。

這裏是我當前的代碼

putenv('LDAPTLS_REQCERT=allow'); 

$ldaprdn = 'user'; // ldap rdn or dn 
$ldappass = 'password'; 

$ldapconn = ldap_connect("ldaps:\\localhost") 
    or die("failed"); 

if (ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3)) { 
    echo "Using LDAPv3\n"; 
} else { 
    echo "Failed to set protocol version to 3"; } 

if ($ldapconn) { 
    //ldap_bind() will fail without ldap_start_tls() 
    if (ldap_start_tls($ldapconn)) { 
     echo "LDAP TLS Started"; 
    } 

    $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass); 

    if ($ldapbind) { 
     echo "LDAP bind OK"; 
    } else { 
     echo "LDAP bind FAIL"; 
    } 
} 

這個輸出 「失敗」,

,但如果我改變

$ldapconn = ldap_connect("ldaps:\\localhost") 
//to 
$ldapconn = ldap_connect("localhost") 

這是輸出

Using LDAPv3 
Warning: ldap_start_tls(): Unable to start TLS: Can't contact LDAP server 
in C:\xampp\htdocs\OOP_curater\index.php on line 18 

Warning: ldap_bind(): Unable to bind to server: Can't contact LDAP 
server in C:\xampp\htdocs\OOP_curater\index.php on line 22 
LDAP bind FAIL 

關於該項目的一些信息

  1. 將內部網絡在企業級
  2. 所有用戶都應該只從這個內部網絡
  3. 爲了測試即時訪問當前正在運行的託管PHP的XAMPP,
  4. 生產將使用Windows服務器IIS

關注ING是一些事情,我想弄清楚

  1. 如何確定如果Active Directory需要在「LDAP」或「LDAPS」連接
  2. 是否「用戶名」必須只是「用戶名」?或「域名/用戶名」
  3. 我讀了很多關於必須重新編譯php與開放ldaps以及ssl ldaps,因爲這是一個xxamp堆棧,甚至有可能,如果是的話,如果沒有,如何,如何選擇
  4. 在這種情況下究竟如何使用ldap_connect(),它是否需要:
    • ldap_connect(「localhost」);
    • ldap_connect(「ldap(s):// localhost」);
    • ldap_connect(「ad.orgsitedomain.com」);
  5. 是否有任何信息需要從Active Directory團隊中獲取,如果是,那會是什麼。

請讓我知道是否有任何更多的信息,你需要。謝謝

回答

0

我已經解決了這個問題,因爲這裏沒有答覆我是如何去做的。

首先,最重要的是,如果您是新的Active Directory,請在閱讀任何資料下載Active Directory Explorer之前。在研究您的解決方案時,您會對Active Directory的各個方面有更多的上下文。

如何確定如果Active Directory需要在「LDAP」或「LDAPS」

我真的不知道還連接,只是試圖LDAPS和LDAP都似乎工作

「用戶名」是否只是「用戶名」?或「域/用戶名」

它必須是「域/用戶名」

我讀了很多關於重新編譯PHP與SSL的LDAPS一起開LDAPS,因爲這是一個xxamp棧,它甚至有可能,如果是如何,如果沒有,有什麼替代方案

我又沒有做到這一點,所以真的還沒有意識到

爲什麼說一個使用ldap_connect()在這個背景

它必須是LDAP:// DOMAIN ATLEAST在我的情況

所以再次,我真正需要的唯一的事情就是Active Directory的瀏覽器,其餘完全是小菜一碟。有點想知道爲什麼這在我遇到的所有問題中都沒有提到