2011-11-24 1 views
3

Active Directory 사용자를 서버에 바인딩해야합니다. 성공적으로 서버에 연결할 수 있지만 어떻게 든 사용자를 바인딩 할 수 없습니다. 이유는 무엇인지 모르겠습니다.PHP ldap_bind 함수를 사용하여 "LDAP 서버에 연결할 수 없습니다"오류 발생

$basedn="dc=domain,dc=com"; 
echo "Connecting ...<br/>"; 
$ds=ldap_connect("192.XXX.XXX.XX"); // must be a valid LDAP server! 
echo "connect result is ".$ds."<br/>"; 

if($ds){ 
    ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); 
    $lb=ldap_bind($ds,"cn=xyz,o=domain.com","password"); 
    if ($lb) { 
     echo "LDAP bind successful..."; 
    } else { 
     echo "LDAP-Errno: " . ldap_errno($ds) . "<br />"; 
     echo "LDAP-Error: " . ldap_error($ds) . "<br />"; 
    }  

    ldap_close($ds); 
} 

는 정확히 내가 ldap_bind 기능에 사용자 이름 매개 변수를 전달해야 할 걸 적어주세요 수 : 내 PHP 소스 코드

다음은? 제게 그렇게 할 수있는 소스 코드를 제공해 주시겠습니까? 도움이 될 것입니다.

+0

바인드 응답의 결과 코드는 무엇입니까? –

답변

0

대신, Windows Server 2003에서 Active Directory를 사용 :

$lb = ldap_bind($ds, "[email protected]", "password"); 

그러나, 귀하의 오류 메시지가 외모 (는 LDAP 서버에 연결할 수) :

$lb = ldap_bind($ds, "cn=login,o=domain.com", "password"); 

나는 사용했다 당신과 같은 ldap_connect() 서버 주소 도달 할 수 귀하의 PHP 스크립트 (Windows 방화벽 등 확인)에 의해

1

원래 2003 년 도메인에서 login @ domain 형식을 사용하여 Server 2008 R2를 실행하는 도메인 컨트롤러에 있습니다. DN이 올바른지 확인하고 2008 년 이전 도메인 관리자 계정이 DN을 사용하여 연결할 수 있는지 확인했습니다. 그러나 비 관리자는 login @ domain 형식을 사용하지 않으면 로그인 할 수 없습니다.

지금, 내 코드는 시도 :

$ 파운드 = ldap_bind ("= domain.com O CN = 로그인,"$ DS를, "암호");

아무 것도 찾을 수없는 경우 다음 시도 :

$ 파운드 = ldap_bind ($ DS를, "[email protected]을", "암호");

DN이 작동하지 않는 문제를 해결하는 동안 빠른 수정이 필요합니다. 나는 당신이 2008 년을 사용하고 있더라도, 2003 년 체재를 시도한 ㄴ다는 것을 추천 할 것입니다.

관련 문제