我试图限制访问一个文件夹使用一个经过身份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