ldap_bind() issue

This is a discussion on ldap_bind() issue within the PHP General forums, part of the PHP Programming Forums category; Hello, I'm tasked with writing an application in PHP that will authenticate against a known working LDAP server. I'...


Go Back   Usenet Forums > PHP Programming Forums > PHP General

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 01-11-2008
Greg Donald
 
Posts: n/a
Default ldap_bind() issue

Hello,

I'm tasked with writing an application in PHP that will authenticate
against a known working LDAP server. I'm having some problems binding
against that LDAP server and cannot find the issue.

I can telnet to the LDAP server's IP and port:

> > telnet 12.34.56.78 636

Trying 12.34.56.78...
Connected to 12.34.56.78.
Escape character is '^]'.
^]
telnet> quit
Connection closed.

So I have more or less ruled out any sort of networking issue.


But then when trying ldapsearch, this command is failing:

> > ldapsearch -h 12.34.56.78 -p 626 -v -W -X

"dn:uid=username,ou=people,dc=example,dc=com"
ldap_initialize( ldap://12.34.56.78:626 )
Enter LDAP Password:
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)

It could be that I'm not providing the correct options as I'm not
extremely familiar with ldapsearch.


And then the heart of the issue, this simple PHP script is also failing for me:

> > ./ldap_test.php

ldap_create
ldap_url_parse_ext(LDAPS://ldap.example.com)
ldap_bind_s
ldap_simple_bind_s
ldap_sasl_bind_s
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection
ldap_int_open_connection
ldap_connect_to_host: TCP ldap.example.com:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 12.34.56.78:636
ldap_connect_timeout: fd: 3 tm: -1 async: 0
ldap_ndelay_on: 3
ldap_is_sock_ready: 3
ldap_ndelay_off: 3
ldap_int_sasl_open: host=ldap.example.com
TLS certificate verification: depth: 0, err: 66, subject:
C=US,ST=SomeState,O=SomeCompany,CN=ldap.example.co m, issuer:
C=US,O=Equifax,OU=Equifax Secure Certificate Authority
TLS certificate verification: Error, Unknown error
TLS: can't connect.
ldap_err2string


The contents of my PHP test script:

error_reporting( E_ALL );
ini_set( 'display_errors', 1 );
ldap_set_option( NULL, LDAP_OPT_DEBUG_LEVEL, 7 );

$c = ldap_connect( 'LDAPS://ldap.example.com', 636 ) or die( 'Could
not connect to LDAP server.' );

if( ldap_bind( $c, "uid=username,ou=people,dc=example,dc=com", 'xxx' ) ){
echo 'success!';
} else {
echo 'failed to bind';
}


The PHP on my local Ubuntu box currently only has the --with-ldap
option configured as I'm trying to rule out other libraries that may
possibly be causing issues. Are there other dependencies I must build
into my PHP to connect using ldap_bind() ? I have experimented with
adding --with-openssl and --with-ldap-sasl support but neither
resolved my issue.

It's also worth mentioning I am building my PHP against the OpenLDAP
libraries provided in my Linux distro:

> dpkg -l|grep ldap

ii ldap-utils 2.3.35-1ubuntu0.1
OpenLDAP utilities
ii libldap-2.3-0 2.3.35-1ubuntu0.1
OpenLDAP libraries
ii libldap2 2.1.30-13.4
OpenLDAP libraries
ii libldap2-dev 2.1.30-13.4
OpenLDAP development libraries


There are of course other ldap libraries available but I have no idea
if I need them or not. Seems everyone is building their PHP against
OpenLDAP so that's what I'm trying to use too.

I ran ldconfig after installing the above libraries and they seem to
be found with no problems during configuration and compilation.

Any idea what might be the problem or what else I can try? I've
already tried everything Google has to offer on the issue and am still
stuck.


Thanks,


--
Greg Donald
http://destiney.com/
Reply With Quote
  #2 (permalink)  
Old 01-11-2008
Richard Lynch
 
Posts: n/a
Default Re: [PHP] ldap_bind() issue

On Fri, January 11, 2008 11:44 am, Greg Donald wrote:

I really have NO IDEA, but...

> ldap_int_sasl_open: host=ldap.example.com
> TLS certificate verification: depth: 0, err: 66, subject:
> C=US,ST=SomeState,O=SomeCompany,CN=ldap.example.co m, issuer:
> C=US,O=Equifax,OU=Equifax Secure Certificate Authority
> TLS certificate verification: Error, Unknown error
> TLS: can't connect.
> ldap_err2string


This strikes me as if you've got a Private/Public key issue where you
neglected to generate/install a key-pair...

Or did you sanitize this before you posted?...

--
Some people have a "gift" link here.
Know what I want?
I want you to buy a CD from some indie artist.
http://cdbaby.com/from/lynch
Yeah, I get a buck. So?
Reply With Quote
  #3 (permalink)  
Old 01-11-2008
Greg Donald
 
Posts: n/a
Default Re: [PHP] ldap_bind() issue

On 1/11/08, Richard Lynch <ceo@l-i-e.com> wrote:
> This strikes me as if you've got a Private/Public key issue where you
> neglected to generate/install a key-pair...


Yeah, the "certificate" error message makes me think something is not
right with my PHP install or how it's talking to the OpenLDAP libs..
but what exactly is the mystery. ldap_bind()'s "Error unknown"
message isn't very helpful.

Meanwhile another project of mine, on that same server, uses ruby-ldap
and works just fine.

> Or did you sanitize this before you posted?...


Had to, yes.


--
Greg Donald
http://destiney.com/
Reply With Quote
  #4 (permalink)  
Old 01-14-2008
Richard Lynch
 
Posts: n/a
Default Re: [PHP] ldap_bind() issue

On Fri, January 11, 2008 3:54 pm, Greg Donald wrote:
> On 1/11/08, Richard Lynch <ceo@l-i-e.com> wrote:
>> This strikes me as if you've got a Private/Public key issue where
>> you
>> neglected to generate/install a key-pair...

>
> Yeah, the "certificate" error message makes me think something is not
> right with my PHP install or how it's talking to the OpenLDAP libs..
> but what exactly is the mystery. ldap_bind()'s "Error unknown"
> message isn't very helpful.
>
> Meanwhile another project of mine, on that same server, uses ruby-ldap
> and works just fine.


Perhaps try less restrictive checks on the keys -- E.g., in cURL, you
an set it to not check the peer certificate, so it doesn't die on
certs issued by less-known CAs.

I have no idea if you can DO that in LDAP, but perhaps it will lead
somewhere...

You could also try contacting the host and see if they could grep
their logs for any info that might be of use to you.

So long as you give them a time-stamp and some distinctive data that
should be there like your IP, you're only asking somebody to spend a
couple minutes to help you out.

Even large companies occasionally have humans working for them. :-)

--
Some people have a "gift" link here.
Know what I want?
I want you to buy a CD from some indie artist.
http://cdbaby.com/from/lynch
Yeah, I get a buck. So?
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT +1. The time now is 10:31 PM.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.0.0