我已经编写了各种连接到 LDAP 服务器并运行查询的代码,但对我来说一直都是巫术。我不太明白的一件事是绑定 DN 的概念。下面是一个使用ldapsearchopenldap 提供的命令行工具的示例。(忽略缺少身份验证。)
ldapsearch -h 1.2.3.4 -D dc=example,dc=com [query]
Run Code Online (Sandbox Code Playgroud)
这部分的目的和功能是-D dc=example,dc=com什么?为什么我们需要绑定到目录层次结构中的特定位置?是否要确定我的查询应应用于目录的哪一部分?例如,如果目录的根节点是dc=com,并且它有两个子节点(dc=foo和dc=bar),也许我希望我的查询针对dc=foo,dc=com子树而不是dc=bar,dc=com子树?
小智 41
不要混淆baseDN和bindDN。
搜索的baseDN是起点。它将从哪里开始搜索。不言自明。
该指定binddn DN基本上是您正在使用针对LDAP身份验证凭据。使用 bindDN 时,它通常带有与之关联的密码。
换句话说,当您指定一个 bindDN 时,您正在使用该对象安全访问来遍历 LDAP 树。
现在,字符串 dc=example,dc=com 不是bindDN的最佳示例,因为它是 LDAP 树的“域”。dc代表域组件,每个 LDAP 树都使用 dc=string,dc=string,... 形式的字符串定义其根,但这些字符串不像树的其余部分那样是“路径”。
有效的例子是:
但是,这些根元素是不可分割的。它们看起来像是代表树其余部分的路径的几个元素,但它们不是。例如,在最后一个示例中,对象dc=of,dc=domains不存在。
想象一下,将您的 C: 驱动器命名为“D:\my\folder\”。那里的每个路径看起来都类似于“D:\my\folder\my\real\path”,这会令人困惑,因为真正的文件路径是 \my\real\path 对吗?嗯,这就是带有一组 dc= 元素的 LDAP 的基础(根)的样子。
相关链接:http : //docs.oracle.com/cd/E19199-01/816-6400-10/lsearch.html
Joh*_*ohn 24
绑定 DN 是一个对象,您绑定到 LDAP 内部以授予您执行任何您尝试执行的操作的权限。一些(许多?)LDAP 实例不允许匿名绑定,或者不允许使用匿名绑定进行某些操作,因此您必须指定一个 bindDN 来获取执行该操作的身份。
以类似的非技术方式 - 是的,这是一个延伸 - 银行将允许您走进并查看他们的利率,而无需给他们任何类型的身份证,但为了开户或取款,您必须拥有一个他们知道的身份 - 该身份是 bindDN。
| 归档时间: |
|
| 查看次数: |
95730 次 |
| 最近记录: |