Apache + LDAPauthentication:访问/失败,原因:要求指令存在,没有权威处理程序

不能解决这个问题,这是我的.htaccess:

 AuthPAM_Enabledclosures

 AuthType基本
 AuthBasicProvider ldap
 AuthzLDAPAuthoritative on
 AuthName“MESSAGE”
要求ldap-group cn = CHANGED,cn = CHANGED

 AuthLDAPURL“ldap:// localhost / dc = CHANGED,dc = CHANGED?uid?sub?(objectClass = posixAccount)”
 AuthLDAPBindDN已更改
 AuthLDAPBindPassword CHANGED
 AuthLDAPGroupAttribute memberUid

AuthLDAPURL是正确的,BindDN和BindPassword也是正确的(用ldapvi -D ..validation)。

Apache版本:Apache / 2.2.9(Debian

错误信息似乎对我来说是神秘的,我有AuthzLDAPAuthoritative所以问题在哪里。

编辑:

LDAP模块被加载,问题不在于它们丢失。

 #ls / etc / apache2 / mods-enabled / * ldap *
 /etc/apache2/mods-enabled/authnz_ldap.load /etc/apache2/mods-enabled/ldap.load

EDIT2:

解决它通过改变时髦

要求ldap-group cn = CHANGED,cn = CHANGED

与…一致

要求有效的用户

由于AuthzLDAPAuthoritative处于打开状态,因此不会使用其他auth方法,并且将通过LDAPvalidation有效用户要求。 (对? :/)

您的'需求'行读取

要求ldap-group cn = CHANGED,cn = CHANGED

这不看起来写 – 我不相信你可以在这样的DN有两个cn。

对于我和apache 2.2.14来说,这个工作就像一个基于每个组的访问控制的冠军

 AuthType基本
 AuthName“仅用于IT的秘密区域”
 AuthBasicProvider ldap
 AuthzLDAPAuthoritative on
 AuthLDAPGroupAttributeIsDNclosures
 AuthLDAPGroupAttribute memberUid
 AuthLDAPURL“ldap://ldap1.example.int ldap2.company.int/cn=int”
需要ldap-group cn = it,ou =组,o = int

“int”是我们非公有服务器的内部域。

你是否启用了ldapauthnz_ldap模块?

你可以这样做:

a2enmod ldap authnz_ldap; /etc/init.d/apache2 restart