在Apache上使用Active Directory设置LDAP

如果您只有几个用户,并且它们的更改不大,则使用简单的.htpasswd密码保护目录或网站是可以的。但是,如果您有很多用户,则很快就无法维护。例如,如果您想保护对公司Intranet的访问,则可能要花费相当多的时间来尝试更新.htpasswd文件。最好的方法是将所有用户管理转移到LDAP服务器上,然后让Apache直接与其通信。Microsoft使用的Active Directory(AD)系统允许LDAP通信,并且由于该通信已在许多公司网络中使用,因此它是使用的理想选择。

首先,您需要在Apache服务器上设置LDAP模块。取消注释或在http.conf文件中添加以下行。您将需要确保文件也确实存在。

LoadModule authnz_ldap_module modules/mod_authnz_ldap.so

LoadModule ldap_module modules/mod_ldap.so

还要确保将它们放在下一行之前。

LoadModule auth_basic_module modules/mod_auth_basic.so

重新启动Apache以将模块加载到系统中。

您现在需要做的是弄清楚如何在AD中获取您的用户信息。如果您使用的是Windows XP,则可以从Microsoft网站免费下载Windows支持工具。它包含一个名为ldp.exe的程序。您可以使用该程序找出导致用户信息的对象层次结构。因此,如果您的公司Intranet名为company.local,则可能会在company.local-> MyBusiness-> Users上看到正确的信息。

下一步是设置用户,以便Apache可以访问AD。只需创建一个几乎没有访问权限的默认用户,它只需要能够访问用户系统。

接下来,您需要打开您的httpd.conf,并在模块声明之后立即添加以下行。

<Location />

 # LDAP authentication...

 AuthType Basic

 AuthName "#! code Secure"

 AuthBasicProvider ldap

 AuthzLDAPAuthoritative On

 

 AuthLDAPBindDN CN=localuser,OU=SBSUsers,OU=Users,OU=MyBusiness,DC=hashbangcode,DC=local

 AuthLDAPBindPassword localuserpassword

 

 AuthLDAPURL ldap://server.hashbangcode.local:389/OU=Users,OU=MyBusiness,DC=hashbangcode,DC=local?sAMAccountName?sub?(objectClass=*)  

 

 Require valid-user

 

</Location>

重新启动服务器并尝试访问它;您应该会看到一个登录屏幕。

如果您无法访问Apache,则打开文件error.log并查看最后一行。它将使您对发生的问题有个好主意。

如果您输入的用户名正确但密码错误,那么您将看到以下行:

[Tue Dec 18 08:58:00 2007] [warn] [client 10.0.0.1] [1] auth_ldap authenticate: user theusername authentication failed; URI / [ldap_simple_bind_s() to check user credentials failed][Invalid Credentials]

[Tue Dec 18 08:58:00 2007] [error] [client 10.0.0.1] user theusername: authentication failure for "/": Password Mismatch

如果您的用户名不正确,那么您将看到以下行。

[Tue Dec 18 09:06:13 2007] [warn] [client 10.0.0.1] [1] auth_ldap authenticate: user a_non_valid_username authentication failed; URI / [User not found][No Such Object]

[Tue Dec 18 09:05:02 2007] [error] [client 10.0.0.1] user a_non_valid_username not found: /

我发现,当您无法使该模块正常工作时,通常是因为您无法访问LDAP服务器。如果您收到登录提示,但无法理解正确的用户信息,请尝试查看LDAP服务器防火墙。

以上是 在Apache上使用Active Directory设置LDAP 的全部内容, 来源链接: utcz.com/z/317519.html

回到顶部