【问题标题】:Search for Users/People Across Multiple specific OU GUIDs跨多个特定 OU GUID 搜索用户/人员
【发布时间】:2020-05-22 11:21:45
【问题描述】:

基本上,我正在开发一个用于管理 Active Directory 的应用程序,我添加了一个重要的“安全”层,即能够将允许他们访问/搜索的 OU GUID 分配给特定用户。

我现在面临的问题是,考虑到有时会收集大量 GUID (1200ish) 并且仅返回来自这些特定 OU 的结果,似乎没有一种查询 AD 的好方法。

有谁知道是否有一种方法可以使用多个 DirectorySearchers 或类似方法来实现这一目标而不会对性能造成太大影响?

-- 这在 SQL 中很容易... :-/

【问题讨论】:

    标签: c# active-directory ldap ou


    【解决方案1】:

    有几种方法可以做到这一点:

    1. 如果您想使用多个DirectorySearcher 对象,您可以为每个要搜索的OU 创建一个DirectorySearcher,并将每个SearchRoot 设置为您要搜索的OU。
    2. 在整个域上进行一次搜索,并在获得结果后过滤掉您不想显示的结果。这可能会比选项 1 执行得更快。
    3. 直接更改 AD 中的权限。如果您不希望用户查看 OU 中的对象,请修改该 OU 的权限,使其无法读取。然后,您只需正常进行所有搜索,而不必担心过滤掉任何内容。这是假设您使用用户自己的凭据来查询 AD。

    但是这里的事情确实变得复杂了。如果您不希望用户 A 看到 OU B 中的对象,您可以对用户 A 隐藏该 OU,当然。但是用户 A 可能仍然能够看到其中包含来自 OU B 的用户的组。所以用户 A 仍然会看到 OU B 存在的证据。所以,

    • 如果您选择选项 1 或 2,那么您在查看群组成员资格时也必须过滤来自群组的结果。

    • 如果您使用选项 3,它可能会破坏 PowerShell 脚本(如果他们曾经使用过它们),因为 PowerShell 会尝试读取组中的每个成员,如果无法读取,则会崩溃。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-14
      • 2015-10-29
      • 2012-02-29
      • 1970-01-01
      • 2012-12-07
      • 2014-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多