使用apache 2.4的openldapauthentication

我试图限制访问一个文件夹使用一个经过身份validation的LDAP用户,这用来在UBUNBT 14.04上使用Apache,但现在即时通讯设法我到16.04,但它不工作,我得到AH1618用户没有发现错误,IM肯定它的东西简单:)

用户在这个“域” ou=Users,dc=ldap,dc=kattronics,dc=com

当访问网页,我得到提示input密码是好的,但是我得到这个错误。

[auth_basic:error] [pid 10821] [client 10.0.5.167:58662] AH01618:用户lasse.knudsen未find:/

也许在斜线中有一条线索

debugging是为apache2启用的

AH01694:auth_ldapauthentication:用户lasse.knudsenauthentication失败; URI / [LDAP:ldap_simple_bind()失败] [无法联系LDAP服务器](不权威)

不能联系LDAP服务器,困惑我,主机确实解决。

任何人都可以指引我正确的方向。

从Apache网站configuration目录条目

 <Directory /var/www/html> AuthName "Restricted - Kattronics Users Only" AuthType Basic #Satisfy any AuthBasicProvider ldap AuthLDAPUrl "ldaps://dc2-ldap001:636/ou=Users,dc=ldap,dc=kattronics,dc=com?uid" AuthLDAPBindDN "ou=Users,dc=ldap,dc=kattronics,dc=com" AuthLDAPBindAuthoritative off AuthLDAPGroupAttribute memberUid AuthLDAPGroupAttributeIsDN off #Require valid-user Require ldap-user # Gives error AH01618 </Directory> 

下面的解决方法

  <IfModule mod_authnz_external.c> AddExternalAuth pwauth /usr/sbin/pwauth SetExternalAuthMethod pwauth pipe </IfModule> <Directory /var/www/html> AuthType Basic AuthName "Login" AuthBasicProvider external AuthExternal pwauth Require valid-user </Directory> 

在请求任何有用的目录信息之前,大多数LDAP服务器都要求您进行身份validation。 在LDAP中,术语连接被调用来“ 绑定 ”到目录服务器。

这意味着Apache将需要configuration一个用户名和密码。 用户名必须是完整的“独特名称”,其中包含存储目录中的完整path,而您的AuthLDAPBindDN需要如下所示:

 AuthLDAPBindDN "CN=apache,OU=Service Accounts,DC=example,DC=com" 

你可能需要一个AuthLDAPBindPassword (最好是永不过期的):

 AuthLDAPBindPassword y0ur_p@ssw0rd 

使用TLS / SSL安全LDAP连接时的第二个问题是,Apache将需要validationLDAP服务器使用的服务器证书的真实性。 通常情况下,我认为LDAP服务器不会使用由众所周知的公共CA之一颁发的证书,而是使用由内部CA颁发的证书。 将CA证书下载到您的Web服务器并使用LDAPTrustedGlobalCert指令加载它,即

 LDAPTrustedGlobalCert type directory-path/filename [password] 

或者作为一个不安全的解决办法,使用LDAPVerifyServerCert指令,不要validation服务器证书:

 LDAPVerifyServerCert off