代理授权方法是一种特殊形式的验证。通过代理授权,可为使用自身标识绑定到目录的用户授予其他用户的权限。
要将目录服务器配置为允许代理请求,必须执行以下操作:
为管理员授予与其他用户相同的代理权限。
为普通用户授予访问控制策略中所定义的一般访问权限。
您可以将代理权限授予除目录管理员之外的任何目录用户。此外,您无法将目录管理员的 DN 用作代理 DN。授予代理权限时应特别小心,因为授予此权限可将任何 DN(目录管理员 DN 除外)指定为代理 DN。如果目录服务器在同一操作中收到多个代理验证控制,则会向客户端应用程序返回错误,并且操作尝试将会失败。
对于 LDAP 数据,Example.com 希望绑定为 MoneyWizAcctSoftware 的客户端应用程序具有与帐户管理员相同的访问权限。
将应用以下参数:
客户端应用程序的绑定 DN 为 uid=MoneyWizAcctSoftware, ou=Applications,dc=example,dc=com。
客户端应用程序请求访问权限的目标子树为 ou=Accounting,dc=example,dc=com。
目录中存在对 ou=Accounting,dc=example,dc=com 子树具有访问权限的帐户管理员。
要使客户端应用程序获取对帐户子树的访问权限(通过使用与帐户管理员相同的访问权限),必须满足以下条件:
帐户管理员对 ou=Accounting,dc=example,dc=com 子树必须具有访问权限。例如,以下 ACI 为帐户管理员条目授予所有权限:
aci: (targetattr="*") (version 3.0; acl "allowAll-AcctAdmin"; allow (all) userdn="ldap:///uid=AcctAdministrator,ou=Administrators, dc=example,dc=com";) |
目录中必须存在为客户端应用程序授予代理权限的以下 ACI:
aci: (targetattr="*") (version 3.0; acl "allowproxy- accountingsoftware"; allow (proxy) userdn= "ldap:///uid=MoneyWizAcctSoftware,ou=Applications, dc=example,dc=com";) |
正确使用此 ACI 之后,MoneyWizAcctSoftware 客户端应用程序即可绑定到目录,然后发送需要代理 DN 访问权限的 LDAP 命令,如 ldapsearch 或 ldapmodify。
在此示例中,如果客户端要执行 ldapsearch 命令,则此命令将包括以下控制:
$ ldapsearch -D "uid=MoneyWizAcctSoftware,ou=Applications,dc=example,dc=com" -w - \ -y "uid=AcctAdministrator,ou=Administrators,dc=example,dc=com" ... |
请注意,客户端以自身标识进行绑定,但被授予代理条目的特权。客户端不需要代理条目的密码。