2013-10-16 2 views
4

ZF2에서 개발 한 웹 응용 프로그램에서 LDAP 인증을 구현하려고합니다. LDAP 인증은 Windows 7에서 정상적으로 작동합니다.LDAP 서버에 연결할 수 없습니다. ldap_bind();

그러나 응용 프로그램을 LINUX 컴퓨터로 이동하면 LDAP 인증이 작동하지 않습니다. 경고 : 난 항상 같은 오류를 얻고있다 ldap_bind() : 서버에 바인딩 할 수 없습니다를 :

$ldaphost = "ldap://xxxx.net"; 
$ldapport = 389; 
$ds = ldap_connect($ldaphost, $ldapport) or die("Could not connect to $ldaphost"); 
if ($ds) 
{ 
    $username = "[email protected]"; 
    $upasswd = "password"; 
    $ldapbind = ldap_bind($ds, $username, $upasswd); 

    if ($ldapbind) 
    { 
     print "Congratulations! you are authenticated successfully."; 
    }else{ 
     print "Better luck next time!"; 
    } 
} 
: 줄에 LdapConnect.php에서 LDAP 서버에 연결할 수 없습니다 (20)

나는대로 스크립트를 사용했다

소프트웨어 패키지를 설치해야합니까? 아니면 구성 설정을해야합니까?

참고 :그때는 잘 작동하는 IP 주소를 제공하지만 도메인 이름을 지정하는 경우, 그것은 작동하지 경우.

문제를 해결하는 데 도움을주십시오.

+0

몇 가지 디버깅 기법은 1) Linux 노드가 LDAP 노드를 ping 할 수 있는지 확인하십시오. 2) LDAP가 올바른 IP 주소에 바인딩되어 있는지 확인하십시오. 필자는 LDAP 서버가 localhost/127.0.0.1에 바인드되어 원격 응용 프로그램에 연결하는 것을 보았습니다. – beyonddc

+0

Ldap 노드 핑이 정상적으로 작동합니다. 그리고 바인딩 할 적절한 IP 주소를 부여했습니다. 이벤트가 작동하지 않습니다.같은 일은 개발 LINUX 머신에서 잘 작동하지만 서버 LINUX 머신에서는 그렇지 않습니다. Plz 도와주세요. – KumarA

+0

linux 노드에 php-ldap을 설치 했습니까? – ffledgling

답변

2

라이브러리는 2 또는 다른 버전간에 다를 수 있습니다. 당신은 LDAP 클라이언트의 변형이 얼마나 많은지 놀랄 것입니다. 귀하의 입장에서 (가능한 경우) 같은 종류의 연결을 만들기 위해 ldap 클라이언트를 사용합니다.

표준 ldapsearch의 "-x": -x SASL 대신 간단한 인증을 사용합니다.

그래서 당신은이 같은 연결을 표현할 수있다 :

의 ldapsearch -h xxxx.net 389 -p (등) 의 ldapsearch -x -h LDAP : //xxxx.net : 389 (이 실제로해야 - H ..)

등등. 코드 외부의 항목도 문제가 될 수 있습니다. Prod 서버는 종종 서버/클라이언트에 투명성을 갖는 방화벽 및 프록시 (예 : F5)를 가지고 있습니다. 최종 코드에 바인딩 및 검색을위한 예외 처리가 있는지 확인하십시오. 나는 PHP 구현에 너무 익숙하지 않다. 그리고 doco는 다소 얇다. 일반적으로 동기 바인드를 사용합니다.

위의 코드가 Windows에서 사용했던 것과 정확히 동일하다는 것을 확인할 수 있습니까? 내가 묻는 이유는 여기를보고있는 것입니다 : http://php.net/manual/en/function.ldap-connect.php 그것은 2 가지 타입의 바인드를 혼합하는 것 같습니다. 나는 표준 파이썬에서 그렇게하지 않았을 것이다.

그래서 URI를 사용하여 일반적으로이처럼 할 줄 경우 :

ldap_connect("ldap://blah:389") 

을 당신은 호스트/포트 콤보를 통해 연결하는 경우 : 최소한의 예외 정보를 최선으로

ldap_connect("blah","389") 

포트 "389"에서 "ldap : //xxxx.net"이라는 호스트 이름에 실제로 바인딩하려고합니다.

관련 문제