如何配置 OpenLDAP 伺服器並使用 Apache HTTPD 進行測試
我正在使用 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 目錄一致的地方。我已經嘗試了各種。發生的情況是我導航到 URLhttp://magneto.acme.com/authpage
(在這種情況下,magneto 是我的伺服器主機名,我至少知道它有效),並且系統提示我輸入憑據。我沒有投入任何作品。我嘗試了ou=
ando=
和的組合dc=
,以及?uid
作為查詢參數。當我檢查我的 Apache
error_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 HTTPD
httpd.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 伺服器上進行匿名搜尋,您可能需要配置
AuthLDAPBindDN
和AuthLDAPBindPassword