Apache LDAP身份validation:我可以绑定用户而不先searchDN吗?

在对LDAP服务器进行AuthType Basic身份validation时,首先绑定Apache来search用户的DN,然后绑定该DN来testing用户的密码。 挑战在于,对于AD,您通常不能执行匿名绑定。 所以,你必须设置AuthLDAPBindDN

但是,我说,我已经知道DN了! 我不必绑定search绑定,我可以绑定为cn=_username_,OU=Employees,DC=megacorp,DC=com

这似乎是不可能的,但我想我会问:我是否可以说服Apache通过简单构build一个DN即可跳过绑定和searchDN的绑定使用绑定,或者做我必须和当地的官僚机构谈一个特殊的账户,我可以通过这个账户来寻找我想要authentication的用户?

谢谢!

-danny

不幸的是,似乎mod_auth_ldap坚持build立和执行一个search,而不是尝试绑定与你给它的DN。 按照我的经验,这是绝大多数。 大多数通过ldap访问活动目录的应用程序(而不是使用本地NT用户API)将宁愿search然后绑定,而不是仅仅尝试绑定。

在好的一面(如果你可以这样称呼的话),只要在你的ldap树中没有任何权限问题,没有任何权限的用户帐户应该满足你的需求; 已authentication用户的成员资格应足以满足您的所有search用户的需求。 它甚至可以从域用户中剥离出来,并分配一个不同的主要组; 这应该会缓和当地的官僚主义。

实际上,Apache 2.3中的选项似乎是AuthLDAPInitialBindAsUser和AuthLDAPInitialBindPattern。

AuthLDAPCompareAsUser和AuthLDAPSearchAsUser有些相关,但是这些声音只有在初始绑定发生后才起作用。

我没有真正尝试过(因为我没有安装apache 2.3,至less现在还没有),但我认为你需要的configuration是这样的:

 AuthLDAPInitialBindAsUser on AuthLDAPInitialBindPattern (.+) cn=$1,OU=Employees,DC=megacorp,DC=com 

Apache 2.3.6和更高版本支持您可能正在寻找的AuthLDAPCompareAsUser

http://httpd.apache.org/docs/2.3/mod/mod_authnz_ldap.html#authldapcompareasuser

这个分支是testing版,可能还不能轻松访问您的操作系统。