簡體   English   中英

PHP + LDAP查找memberOf的成員

[英]PHP + LDAP find members of memberOf

我使用sAMAccountName來搜索用戶,在檢索用戶后,我得到了用戶“ memberof”列表。 我想從用戶那里獲取“ memberof”的所有成員。 有可能一次搜索到嗎?

Nevo。

好,這是我到目前為止所得到的:

$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);
}

這給了我memberof的成員,但是我需要獲得memberof的成員

如果我對您的理解正確,那么您是從一個用戶帳戶開始的,並且希望:

  1. 獲取用戶所屬的所有組(通過獲取“ memberOf”的值)
  2. 查找在步驟1中找到的每個組的成員。

有兩種方法可以執行此操作:

  1. 遍歷所有組並進行單獨調用以獲取“成員”屬性,該屬性將具有成員列表。
  2. 根據“ memberOf”構造查詢以查找屬於同一組成員的所有其他人員:

(&(objectClass = user)(|((memberOf = CN = group1,OU = something,DC = mydomain,DC = com))(memberOf = CN = group2,OU = something,DC = mydomain,DC = com)(memberOf = CN = group3,OU =某物,DC = mydomain,DC = com)))

根據使用的方法,可能會得到不同的結果。

方法1將使您具有組的任何成員,即使它們位於域或林之外的其他域(例如,具有單向信任的域)上。

使用方法2(搜索memberOf),如果使用LDAP://(端口389)或GC://(端口3268)進行搜索,則結果將有所不同。 使用GC://不適用於全局或域本地組,而使用LDAP://將無效。 但是,如果使用LDAP://,則只會從一個域獲得用戶,如果AD林中還有其他域,則可能會出現問題。

如果您的組織中只有1個域,而對其他域不信任,那么最好使用LDAP://。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM