缺少了有关 LDAP 的一些真正基本的东西,能帮我理解吗?

缺少了有关 LDAP 的一些真正基本的东西,能帮我理解吗?

好的,我一直在努力解决这个绑定到 LDAP 的插件问题,到目前为止我已经弄清楚了:

我可以修改两个字符串并将其发送给插件 .Search() 方法,其中一个是 baseDN,另一个是过滤器。

到目前为止,正常工作的 baseDN 值如下所示:“DC=something,DC=something”,filter 的值如下所示:“objectClass=*”。

这一切都很好,并返回一个包含各种项目的树,如下所示:

>DC=something,DC=something
-DC=admin
-CN=Builtin
-CN=Computers...

等等,还有更多我不明白的事情,我不确定我在这里看到的到底是什么,但我正在尝试查找用户并获取他的属性。

我应该将 baseDN 或过滤器更改为什么来执行此操作?

我对 baseDN 进行了以下尝试:“[电子邮件保护]“它给了我一个错误,我也尝试过这样的方法”[电子邮件保护],DC=something,DC=something” 并且它也给了我一个错误。

我想我真的很困惑,因为我能够浏览这些事物树,但它们看起来都不像实际值,它们看起来更像是定义,如果你明白我的意思,是否必须进行另一层搜索才能取回用户属性?

答案1

这看起来像 AD。在 LDAP-for-AD 中,用户在域中的实际位置很重要。例如,假设“bobs”住在一个特定的组织单位中。他的 LDAP“家”是:

CN=bobs,OU=Employees,DC=domain,DC=com

如果你想在员工中找到“bobs”:

Base:   OU=Employees,DC=domain,dc=com
Filter: (cn="bobs")

或者如果你想找到名为“bobs”的用户

Filter: (&(objectClass=User)(cn="Bobs"))

或者如果你只是想在 AD 中找到“bobs”:

Base:   DC=domain,DC=com
Filter: (&(objectClass=User)(cn="Bobs"))

LDAP 过滤器难以理解的一点是它们使用前缀表示法。您可以在上面的复杂过滤器中看到它的作用,其中&符号位于其两个运算符之前。这可能会导致一些看起来非常复杂的语句。


具体来说,对于 AD,您可以使用几个属性来搜索用户。“CN”可以是帐户名称,也可以是用户的“显示名称”。'samAccountName' 是用户名的前 16 个字符(我认为),如果您的用户名不会那么长,那么它是过滤的不错选择。

答案2

尝试阅读火箭科学家的 LDAP作为 LDAP 的介绍。

答案3

过滤器应(uid=用户名无需将基本 DN 从DC=某物,DC=某物,但是,如果您愿意,它应该与用户的 DN(包括 OU)相同,但没有 uid=username, 位。

相关内容