我使用 sAMAccountName 来搜索用户, 检索用户后,我会收到用户" memberof" 列表。 我想从用户那里获取" memberof" 的所有成员。 是否有可能在一次搜索中完成?
未婚夫。
好这是我到目前为止所得到的:
$ds = ldap_connect('145.20.0.10', 389);
$bind = 1;
$bind = ldap_bind($ds, "aa", "aa");
if( $bind ){
$dn = "OU=all users,DC=mycustomdc,DC=co,DC=il";
$search = ldap_search($ds, $dn, "(samaccountname=asd)", ['memberOf', 'company','department']);
$enr = ldap_get_entries($ds, $search);
}
这会给我会员的会员, 但我需要获得成员
的成员答案 0 :(得分:1)
如果我理解正确,您将从一个用户帐户开始,并希望:
有两种方法可以做到这一点:
(及(objectClass的=用户)(|(的memberOf = CN = 1组,OU =东西,DC = MYDOMAIN,DC = COM)(的memberOf = CN =组2,OU =东西,DC = MYDOMAIN,DC = COM )(的memberOf = CN =组3,OU =东西,DC = MYDOMAIN,DC = COM)))
根据您使用的方法,可能会得到不同的结果。
方法1将为您提供组中的任何成员,即使它们位于域或林之外的其他域(例如,具有单向信任的域)。
使用方法2(搜索memberOf),如果使用LDAP://(端口389)或GC://(端口3268)进行搜索,结果将会有所不同。使用GC://将不适用于全局或域本地组,而使用LDAP://将。但是,如果您使用LDAP://您将只从一个域获取用户,如果您的AD林中有其他域,则可能会出现问题。
如果您的组织中只有一个域名对其他域没有信任,那么最好使用LDAP://。