PHP LDAP: How to search if user is in group?(PHP ldap:如何搜索用户是否在组中?)
本文介绍了PHP ldap:如何搜索用户是否在组中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何使用php_ldap模块检查用户是否属于某个组?
我对ldap完全陌生,因此有点困惑...
到目前为止,我通过谷歌搜索得出了以下结论:
$ds=ldap_connect($ldapHost, $ldapPort);
if ($ds) {
$r=ldap_bind($ds, $ldapRdn, $ldapPassword);
$filter = "(sAMAccountName=" . $uid . ")";
$attr = array("memberof");
$result = ldap_search($ds, $ldapDN, $filter, $attr) or exit("Unable to search LDAP server");
我不确定这是不是正确的,因为它是从一个专门针对AD的地方提取的。 问题似乎是$ldapdn。这就是我要找的,对吗?我的群"定义"是:
cn=User,ou=Profiles,ou=App_DEV,ou=ApplicationRights,O=MyCompany.COM
如何进行此检查?
编辑:
这是我通过"接受答案"和"试错"找到的解决方案。我认为答案在很大程度上取决于您的具体系统。
//This is the User group DN
$ldapDN = "cn=User,ou=Profiles,ou=App_DEV,ou=ApplicationRights,O=MyCompany.COM";
$filter = "(uniqueMember=uid=" . $uid . ",ou=Users,O=MYCOMPANY.COM)";
$attr = array('uniqueMember');
$result = ldap_search($ldapConnection, $ldapDN, $filter, $attr):
$entries = ldap_get_entries($ldapConnection, $result);
ldap_unbind($ldapConnection);
return intval($entries["count"]) > 0;
成员
成员身份信息通常存储在组中-采用‘推荐答案’或‘MemberUid’属性的形式。‘MEMBER’表示成员对象的完整DN(可分辨名称),类似于‘uid=Username,ou=USERS,dc=Example,dc=com’。如果是成员Uid,则该值将仅为‘Username’。
找出目录中正在使用的内容的方法是使用类似Apache Directory Studio的内容分析组。
除了‘Members’属性外,AD还在用户的记录中存储一个MemberOf属性,其中包含组的DN。但大多数目录不这样做,这可能是您的代码无法工作的原因。
您要查找的筛选器如下:
// & means "And" the next sibling items:
// so "find items that have the objectClass of group and a member whose DN is user_dn
(&(objectClass=group)(member=[user_dn]))
或
(&(objectClass=group)(memberUid=[user_uid]))
在您的情况下
$result = ldap_search(
$ds,
'dc=mycompany,dc=com', // The base from which to start your search. (could be an OU too, like 'ou=restricted,dc=mycompany,dc=com')
'(&(objectClass=group)(member=uid=tom,ou=users,dc=mycompany,dc=com))'
);
或者,如果您的组使用成员Uid,您可以将筛选器更改为
$filter = '(&(objectClass=group)(memberUid=username))';
$Result应包含成员为‘Username’的组记录的列表。
这篇关于PHP ldap:如何搜索用户是否在组中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:PHP ldap:如何搜索用户是否在组中?
基础教程推荐
猜你喜欢
- 在多维数组中查找最大值 2021-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 超薄框架REST服务两次获得输出 2022-01-01