PHP получает LDAP entryUUID через adodb
Мне нужно получить entryUUID для записи в базе данных LDAP через adodb...
Кто-то знает, как я мог это сделать?
$host = 'ldap.domain.com';
$ldapbase = 'dc=domain,dc=com';
$user_name='cn=admin,dc=domain,dc=com';
$password='password';
/******************************************************/
$conn=NewADOConnection( 'ldap' );
$conn->Connect( $host, $user_name, $password, $ldapbase );
function find_user($usr,$conn){
$filter="(|(uid=$usr*))";
$conn->SetFetchMode(ADODB_FETCH_ASSOC);
$rs = $conn->Execute( $filter );
if($rs->RecordCount()>=1) {
while ($row=$rs->FetchRow()) {
// Blah blah blah
$sn=$row['sn'];
$givenName=$row['givenName'];
$cn=$row['cn'];
$uid=$row['uid'];
$mail=$row['mail'];
// $entryUUID=$row['entryUUID']; // <-- HOW CAN I GET THIS ??
print "\n$cn \n $uid \n $entryUUID \n\n";
}
}
$conn->Close();
}
Другими словами, я хотел бы получить те же результаты этого запроса:
ldapsearch -D "cn=admin,dc=example,dc=com" -w pwd '(uid=$userid)' entryuuid=* entryUUID
Я не нашел информации о получении скрытых атрибутов...
Кто-нибудь может мне помочь?
заранее спасибо
Дэвид
2 ответа
Решение
Наконец я нашел решение:
{
$filter="(|(uid=$usr*))";
$sr=ldap_search($ds, $dn, $filter, array('*','entryUUID'));
$entries = ldap_get_entries($ds, $sr);
}
Может быть, это кому-то пригодится...
Дэвид
Операционные атрибуты должны запрашиваться по имени, а сервер каталогов должен разрешать их поиск по состоянию авторизации, связанному с клиентским подключением. entryuuid
определяется в RFC4530.