php - BaseDN 语法与 LDAP 一起使用
问题描述
我正在尝试使用来自 Ldap 内部服务器的用户 ID 检索用户信息。
我已经有一个脚本可以从我的 OU 获取信息,但我想从任何 OU 获取用户的信息。(它可以来自我企业的任何 OU。
我希望你能帮助我:)
$ldap = ldap_connect("LDAP://xxxxxxxx/", 389)
or die;
$ldapuser = 'user';
$ldappass = 'pass';
$BaseDN = "OU=Utilisateurs,OU=AF,OU=M_Viy,OU=Ressources_Locales,DC=COMMUN,DC=AD,DC=xxxx,DC=FR";
// $RootDN = 'CN=LDAP User,OU=Comptes_Generiques_Attente,OU=M_Vitry,OU=Ressources_Locales,DC=COMMUN,DC=AD,DC=xxxxx,DC=FR';
// $ConnectionFilter = '(&(objectClass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))';
if ($bind = ldap_bind($ldap, $ldapuser, $ldappass))
{
$attributes_ad = array("displayName","givenname","sn","samaccountname","telephonenumber","mail","extensionattribute7","mobile","company","displayName");
$cpuser = $infos['user'];
$result = ldap_search($ldap, $BaseDN, "samaccountname=$cpuser", $attributes_ad);
$info = ldap_get_entries($ldap, $result);
print_r($info);
}
解决方案
我是否可以建议将您的 Base DN 从
$BaseDN = "OU=Utilisateurs,OU=AF,OU=M_Viy,OU=Ressources_Locales,DC=COMMUN,DC=AD,DC=xxxx,DC=FR";
只是
$BaseDN = "DC=COMMUN,DC=AD,DC=xxxx,DC=FR";
并设置适当的过滤器。因此"samaccountname=$cpuser"
,请尝试使用
"(&(objectCategory=person)(sAMAccountName=*))"
.
这应该允许您从域中的任何 OU 获取任何用户。
推荐阅读
- javascript - 如何为来自道具 onClick 的每个图像添加过渡效果?
- angular - 获取 BrowserAuthError:interaction_in_progress:交互当前正在进行中
- python - 散景应用程序的heroku中的部署错误
- bash - Bash 扫描器优化
- command - 在 Paramiko 中作为 sudo 发送命令
- file-upload - 我应该在用户提交表单之前上传选定的文件吗?
- python - 在 Python 中获取 Sqlite3 上的时间戳数据
- c# - 在 Roslyn 如何找出两个符号是等价的?
- java - 具有多个键且不允许重复键的 Java 数据结构
- r - 波士顿数据集中使用 Bootstrap 的 MAD 置信区间