Apache-2.2

如何配置 OpenLDAP 伺服器並使用 Apache HTTPD 進行測試

  • September 10, 2014

我正在使用 CentOS 6。我找到了一篇關於如何在 CentOS 6 上安裝和配置 OpenLDAP 的精彩文章,並且我在這裡找到了一些其他關於如何配置 LDAP 以在 Apache HTTPD 上工作的精彩文件(我使用的是 CentOS 附帶的 2.2 6)。不幸的是,這兩篇文章都沒有具體說明如何將兩者聯繫在一起。我提到的第二篇文章非常適合 Apache 演練,前提是您已經對 LDAP 語法有很好的理解,而我提到的第一篇文章非常適合假設您已經想好測試它的方法。似乎您必須成為其中一個或另一個方面的專家才能完成設置。

因此,假設我根據 CentOS OpenLDAP 演練文章配置了我的 LDAP 憑據。我添加了以下人員:

acme.ldif

dn: dc=acme,dc=com
objectClass: dcObject
objectClass: organization
dc: acme
o : acme

使用者.ldif

dn: ou=Users,dc=acme,dc=com
objectClass: organizationalUnit
ou: Users

鮑勃.ldif

dn: cn=Bob Jones,ou=Users,dc=acme,dc=com
cn: Bob Jones
sn: Jones
objectClass: inetOrgPerson
userPassword: p@ssw0rd
uid: bjones

工程.ldif

dn: cn=Engineering,ou=Users,dc=acme,dc=com
cn: Engineering
objectClass: groupOfNames
member: cn=Bob Jones,ou=Users,dc=acme,dc=com

addUserToGroup.ldif

dn: cn=Engineering,ou=Users,dc=acme,dc=com
changetype: modify
add: member
member: cn=Al Smith,ou=Users,dc=acme,dc=com

al.ldif

dn: cn=Al Smith,ou=Users,dc=acme,dc=com
cn: Al Smith
sn: Smith
objectClass: inetOrgPerson
userPassword: 12345
uid: asmith

我從 SourceForge 下載了 LDAPExplorer Tool 2 並成功連接到此 LDAP 目錄並對其進行了探索,它看起來就像 LDIF 文件建議的那樣。

以下來自我的 Apache HTTPD 的 httpd.conf 文件:

<Directory /var/www/html/authpage>
   AuthType Basic
   AuthName "Enter valid user name"
   AuthLDAPURL ldap://magneto.acme.com:389/????
   require valid-user
</Directory>

????是我不知道如何使我的 LDAP 語法與我的 LDAP 目錄一致的地方。我已經嘗試了各種。發生的情況是我導航到 URL http://magneto.acme.com/authpage(在這種情況下,magneto 是我的伺服器主機名,我至少知道它有效),並且系統提示我輸入憑據。我沒有投入任何作品。我嘗試了ou=ando=和的組合dc=,以及?uid作為查詢參數。

當我檢查我的 Apacheerror_log時,我看到了這一行:

[Wed Sep 10 11:00:51 2014] [error] [client 10.78.182.243] access to /authpage failed, reason: verification of user id 'bjones' not configured
[Wed Sep 10 11:00:54 2014] [error] [client 10.78.182.243] access to /authpage failed, reason: verification of user id 'asmith' not configured

假設我的 LDAP 目錄有效,並且 Apache 正確地嘗試對其進行身份驗證, 1. 如何編寫正確的語法來對所有使用者或特定組進行身份驗證?2.根據上面所說的,配置使用者驗證是否需要任何額外的配置error_log

經過更多搜尋,我發現這篇文章提供了更多資訊。原來我只是在我的 Apache HTTPDhttpd.conf文件中遺漏了一些重要的行:

<Directory /var/www/html/authpage>
   Order deny,allow
   Deny from All
   AuthName "Enter valid user name"
   AuthType Basic
   AuthBasicProvider ldap
   AuthzLDAPAuthoritative off
   AuthLDAPUrl ldap://magneto.acme.com/ou=Users,dc=acme,dc=com?uid
   Require valid-user
   Satisfy any
</Directory>

希望如果將來有人在 CentOS 6 上使用 OpenLDAP 並通過 Apache HTTPD 設置 LDAP 身份驗證,則此 ServerFault 文章中的連結將有助於闡明一些問題。這需要大量的試驗、錯誤和搜尋。

ldap://host:port/basedn?attribute?scope?filter

在你的情況下:

AuthLDAPURL ldap://magneto.acme.com:389/ou=Users,dc=acme,dc=com?uid?sub?(objectClass=inetOrgPerson)

**注意:**如果您不允許在 LDAP 伺服器上進行匿名搜尋,您可能需要配置AuthLDAPBindDNAuthLDAPBindPassword

引用自:https://serverfault.com/questions/627605