Active-Directory

有人如何限制對 Active Directory 上某些使用者屬性的讀取權限?

  • September 14, 2010

我們使用此程式碼查詢 ADAM 實例。

DirectoryEntry adRoot = new DirectoryEntry(ConfigurationManager.AppSettings["LdapConnectionString"].ToString());

DirectorySearcher adSearch = new DirectorySearcher(adRoot);
adSearch.Filter = "(&(objectClass=user)(objectCategory=person))";
SearchResultCollection searchResults = adSearch.FindAll();

return searchResults;

這是在 App.config 中的標記中:

add key=“LdapConnectionString” value=“LDAP:// servername:portnumber /dc= domainname "

我們使用程式碼列印出我們從 ADAM 實例檢索的所有屬性名稱.

DirectoryEntry entry = searchResults[0].GetDirectoryEntry();
foreach (string property in entry.Properties.PropertyNames)  
{  
   Console.WriteLine(property);  
}

PropertiesToLoad 為空 StringCollection,PropertyNamesOnly 為 false。

我們不會檢索程序所需的 proxyAddresses、街道、郵政編碼和許多其他屬性。

我在這裡發現:

如果未指定屬性列表,則搜尋將返回目錄中訪問控制集允許的所有屬性的值。

所以,我的問題……這個訪問控制集在哪裡,我們將如何修改它以便我們可以訪問這些屬性?

使用 ADSIEdit,你可以破壞東西,所以要小心。(http://technet.microsoft.com/en-us/library/cc773354%28WS.10%29.aspx )

我從來沒有去那麼深,它有點被埋沒了。您打開 ADSIEdit 並找到您想要查看的對象(或整個容器/OU),右鍵點擊並轉到“屬性”。

點擊安全選項卡,點擊“高級”按鈕,點擊“編輯”以查看您可以執行的操作(暫時不要進行任何更改)。您將看到標準權限,例如“完全控制”或“修改所有者”,以及上面應用“僅限此對象”的權限

您所在的位置還有另一個選項卡“屬性” - 所有好東西都在其中。“讀取業務角色”和“讀取代理地址”等等。

您可以添加一個新組,在其中勾選您喜歡的框,將其應用於整個容器或 OU,您應該一切順利。

引用自:https://serverfault.com/questions/181051