PHP LDAPアクセスのサポートが、インストールするPHP-LDAP拡張を必要とします。インストールは非常に簡単で、ここではそれらを繰り返すことはしません。
以下はYiiのフレームワークのコードIを実現するLDAP試験で、ロギングに加えて、他のネイティブコードです。
サンプルコード
public function actionTestLdap()
{
$serverAddr = '10.1.1.1';
$pswd = '123456';
$dn = 'cn=admin01,ou=peo,dc=110,dc=com';
try{
$adConn = ldap_connect($serverAddr);
ldap_set_option($adConn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($adConn, LDAP_OPT_REFERRALS,0);
$adBind = ldap_bind($adConn, $dn, $pswd);
//return $adBind; //若只是校验账户信息是否正确,在此处返回也可以达到校验的目的
$filter = "(cn=*)";
$adSearch = ldap_search($adConn, $dn, $filter);
$infos = ldap_get_entries($adConn, $adSearch);
print_r($infos);
} catch (\Exception $e) {
$msg = "error code:". $e->getCode() .",error message:". $e->getMessage();
Yii::warning($msg);
return false;
}
}
遭遇した多くの問題をデバッグするときは、ここで問題レコードです:
Error: ldap_bind(): Unable to bind to server: Invalid DN syntax
ldap_bind参数有问题
Error: ldap_bind(): Unable to bind to server: Protocol error
添加配置项ldap_set_option($adConn, LDAP_OPT_PROTOCOL_VERSION, 3);
Error: ldap_bind(): Unable to bind to server: Invalid credentials
ldap_bind参数有问题
Error: ldap_search(): Search: No such object
ldap_search参数有问题