PHP를 통해 Active Directory 조회를 수행하려면 어떻게해야합니까? PHP를 다시 컴파일 할 필요없이. PHP 버전은 5.3Active Directory 조회 PHP를 통해
사용자 이름에서 사람 표시 이름을 찾고 싶습니다. 웹 서버는 IIS 6이며 PHP는 FastCGI를 사용하여 제공됩니다.
$cred = explode('\\',$_SERVER['REMOTE_USER']);
if (count($cred) == 1) array_unshift($cred, "(no domain info - perhaps SSPIOmitDomain is On)");
list($domain, $user) = $cred;
return $user;
그래서 내가 어떻게 그 이름을 찾을 수 있습니다
내가 가진 사용자 이름을 얻을? 예 : DoeJ = 홍길동편집 :
사용자를 조회하려고하지만, "기본 DN을"발견하는 방법을 잘. Active Directory 서버에 직접 액세스하거나 관리자 권한이 없으므로 익명으로 연결하십시오. 경고 :
<?php
//using ldap bind anonymously
// connect to ldap server
$ldapconn = ldap_connect("example.co.uk")
or die("Could not connect to LDAP server.");
if ($ldapconn) {
// binding anonymously
$ldapbind = ldap_bind($ldapconn);
if ($ldapbind) {
echo "LDAP bind anonymous successful...";
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION,3);
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS,0);
$dn = "CN=Users"; // also tried DC=example,DC=co,DC=uk
$filter="(SAMAccountName=username)";
$justthese = array("ou", "sn", "givenname", "mail");
$sr=ldap_search($ldapconn, $dn, $filter, $justthese);
$info = ldap_get_entries($ds, $sr);
echo $info["count"]." entries returned\n";
} else {
echo "LDAP bind anonymous failed...";
}
}
?>
는 ldap_search에 실패 ldap_search를() [function.ldap 검색] : 검색 : 작업 오류
'ldapbind = ldap_bind ($ ldapconn);' true를 반환하므로 익명 바인드가 허용됩니다. 또한 '$ filter = "(sAMAccountName ='username ')'; '시도했습니다. 필터 레벨, DN 또는 '$ justthese'에서 실패한 경우 확실하지 않음 – SamWM
필터 문자열에서 사용자 이름을 인용하지 마십시오 ('$ filter = "(sAMAccountName = username)"; ** NOT **' 아마도이 설명은 100 % 정확하지 않았을 것입니다. Active Directory는 익명 사용자가 루트 도메인의 절대 루트 인 'RootDSE'이외의 항목을 읽을 수 있도록 허용하지 않습니다. LDAP 트리. 그러므로'ldap_bind()'는 실제로'true'를 리턴 할 수 있습니다. 그러나 이것이 LDAP 트리에 접근하도록 허용 된 것은 아닙니다. 오류 메시지를 고려해 보면 * 기본 DN *이 해결해야 할 첫 번째 문제라고 가정합니다. –