LDAP禁止匿名访问

时间:2024-01-11 13:47:14

LDAP默认是允许用户匿名访问的,如下图:在使用工具连接时,勾选匿名绑定后,不需要输入UserDN和密码就可能连接到LDAP服务器,但是只能进行read及search操作。不能做任何的修改及删除操作。

LDAP禁止匿名访问

禁止匿名访问的方法:

1、删除匿名访问控制指令

LDAP禁止匿名访问

2、修改匿名访问控制指令(修改anyone为all)

LDAP禁止匿名访问

====================================================================

定义用户访问 - userdn 关键字

使用 userdn 关键字定义用户访问。userdn 关键字需要一个或多个有效可分辨的名称,并采用以下格式:

userdn = "ldap:///dn [|| ldap:///dn]...[||ldap:///dn]"

其中,dn 可以是 DN 或 anyone、all、self 或 parent 表达式中的某一个。这些表达式适用于以下用户:

    • userdn = "ldap:///anyone" - 同时适用于匿名用户和经过验证的用户。
    • userdn = "ldap:///all" - 仅适用于经过验证的用户。
    • userdn = "ldap:///self" - 仅适用于与 ACI 目标条目相同的用户。
    • userdn = "ldap:///parent" - 仅适用于 ACI 目标的父条目。

userdn 关键字还可以表示成下列形式的 LDAP 过滤器

ldap:///suffix??sub?(filter) 如果 DN 包含逗号,则逗号前面必须要用反斜杠 (\) 转义符。

匿名访问(anyone 关键字)

授予对目录的匿名访问意味着,任何人无需提供绑定 DN 或口令就可以访问它,并且不管绑定的情况如何。匿名访问可以限于特定的访问类型(例如,读取访问或搜索访问)、目录中的特定子树或单个条目。使用anyone 关键字的匿名访问也允许所有经过验证的用户访问。

一般访问(all 关键字)

可以使用绑定规则指出应用于已经成功地绑定到目录的任何人的权限。因此,all 关键字允许所有经过验证的用户访问。这将允许一般访问,同时又可防止匿名访问。

自访问(self 关键字)

指定用户被允许或拒绝对他们自己的条目的访问。在这种情况下,如果绑定 DN 匹配目标条目的 DN,则允许或拒绝访问。

父访问(parent 关键字)

指定只有在用户的绑定 DN 是目标条目的父级的情况下用户才被允许或拒绝对该条目的访问。请注意,必须在 Server Console 中手动编辑 ACI 以使用 parent 关键字。

LDAP URL

可以使用具有过滤器的 URL 动态地将 ACI 中的用户作为目标,如下所示:

userdn = "ldap:///<suffix>??sub?(filter)"

例如,将基于下列 URL 允许或拒绝 example.com 树的 accounting 和 engineering 分支中的所有用户对目标资源进行访问:

userdn = "ldap:///dc=example,dc=com??sub?(|(ou=engineering)(ou=accounting))"

不要在 LDAP URL 内指定主机名或端口号。LDAP URL 始终应用于本地服务器。

参考资料:http://docs.oracle.com/cd/E19957-01/816-6852-10/aci.html#71361