PHP authenticating with LDAP

authenticationldapPHP

I'm relatively new to PHP and even more to LDAP and I need to make one page accessible only to authenticated users.

All I got working is the following command on console:

$ ldapsearch -b 'dc=ut,dc=ee' -D 'uid=USER,ou=People,dc=ut,dc=ee' -x -w 'PASSWORD' 'uid=USER' 'description'

So far I've successfully connected using ldap_connect and determined that it's using protocol version 3. I have played around with ldap_search and ldap_bind, but all the attempts are unsuccessful. I'm beginning to think it's because of the -x and -w options. Or maybe because LDAP is still really confusing to me.

Any hints will be deeply, deeply appreciated!

Best Answer

$username = 'user';
$password = 'passwd';
$account_suffix = '@example.com';
$hostname = 'ldap.example.com';


$con =  ldap_connect($hostname);
if (!is_resource($con)) trigger_error("Unable to connect to $hostname",E_USER_WARNING);
ldap_set_option($con, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($con, LDAP_OPT_REFERRALS, 0);

if (ldap_bind($con,$username . $account_suffix, $password))
{
    // Logged in
}
ldap_close($con);

To utilize a secure connection, you can have a look at my post here: Problems with secure bind to Active Directory using PHP - my code should be valid on most systems.