必要なもの
php.ini にて php_ldap.dll を有効にする (コメントアウトをやめる)
サンプル
ADから情報取得
<?php $ldaphost = 'vmware.local'; $ldapport = 389; $ldapconn = ldap_connect($ldaphost, $ldapport) or die('Unabled to connect to the server'); if($ldapconn){ ldap_set_option ($ldapconn, LDAP_OPT_REFERRALS, 0); ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3); $ldapbind = ldap_bind($ldapconn, 'user@vmware.local', 'pass'); if($ldapbind){ echo 'LDAP bind succeeded'."\n"; $sr=ldap_search($ldapconn, 'DC=vmware,DC=local', '(sAMAccountName=user)'); echo "Search result is " . $sr . "<br />"; echo "Number of entires returned is " . ldap_count_entries($ldapconn, $sr) . "<br />"; print_r( ldap_get_entries($ldapconn,$sr)); } else{ echo 'LDAP bind failed.'."\n"; } $ldapunbind = ldap_unbind($ldapconn); if ($ldapunbind) { echo "LDAP unbind succeeded"."\n"; } else { echo 'LDAP undbind failed.'."\n"; } } else{ echo 'LDAP connect failed.'; } ?>
ldapサーバから情報酒盗
<?php $ldaphost = 'ldap.server'; $ldapport = 389; $ldapconn = ldap_connect($ldaphost, $ldapport) or die('Unabled to connect to the server'); if($ldapconn){ $ldapbind = ldap_bind($ldapconn); if($ldapbind){ echo 'LDAP bind succeeded'."\n"; // $sr=ldap_search($ldapconn, 'c=jp', '(objectclass=*)'); ldap_set_option ($ldapconn, LDAP_OPT_REFERRALS, 0); ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3); $sr=ldap_search($ldapconn, 'c=jp', '(uid=hoge)'); echo "Search result is " . $sr . "<br />"; echo "Number of entires returned is " . ldap_count_entries($ldapconn, $sr) . "<br />"; print_r( ldap_get_entries($ldapconn,$sr)); } else{ echo 'LDAP bind failed.'."\n"; } $ldapunbind = ldap_unbind($ldapconn); if ($ldapunbind) { echo "LDAP unbind succeeded"."\n"; } else { echo 'LDAP undbind failed.'."\n"; } } else{ echo 'LDAP connect failed.'; } ?>
注意
リフェラル機能(ldap-urlが通知された場合に指定先に要求を行う機能)がONになっている場合、
Operations error
が発生することがある。その場合は以下のようにリフェラル機能をオフにする。
ldap_connect(..) ldap_set_option ($ldap, LDAP_OPT_REFERRALS, 0); ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3); ldap_bind(..)
または、
ldap_set_option ($ldap, LDAP_OPT_REFERRALS, LDAP_OPT_OFF); ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, LDAP_VERSION3);
と定数を指定しても良い。
[カテゴリ: プログラミング言語 > PHP]
[通知用URL]
Tweet
最終更新時間:2015年01月21日 21時23分39秒