Apache httpd LDAP 集成
我正在配置 CollabNet Subversion 集成。我有以下
collabnet_subversion.conf
文件:<Location /svn> DAV svn SVNParentPath /mnt/svn/new_repos SVNListParentPath on AuthName "VegiBanc Source Repository" AuthType basic AuthzLDAPAuthoritative off AuthBasicProvider ldap AuthLDAPURL ldap://ldap.vegibanc.com/dc=vegibanc,dc=com?sAMAccountName" NONE AuthLDAPBindDN "CN=SVN-Admin,OU=Service Accounts,OU=VegiBanc Users,OU=vegibanc,DC=vegibanc,DC=com" AuthLDAPBindPassword "swordfish" </Location>
這很好用。我們 Active Directory 中的任何使用者都可以訪問我們的 Subversion 儲存庫。
現在,我想將此限制為僅 Active Directory 組Development中的人員:
<Location /svn> DAV svn SVNParentPath /mnt/svn/new_repos SVNListParentPath on AuthName "VegiBanc Source Repository" AuthType basic AuthzLDAPAuthoritative off AuthBasicProvider ldap AuthLDAPURL ldap://ldap.vegibanc.com/dc=vegibanc,dc=com?sAMAccountName" NONE AuthLDAPBindDN "CN=SVN-Admin,OU=Service Accounts,OU=VegiBanc Users,OU=VegiBanc,DC=vegibanc,DC=com" AuthLDAPBindPassword "swordfish" Require ldap-group CN=Development, OU=Security Groups, OU=VegiBanc, dc=vegibanc, dc=com </Location>
我添加了
Require ldap-group
,但現在沒有人可以登錄。我已LogLevel
設置為debug
,但我得到的只是我的error_log
(單行分解以便於閱讀):[Thu Oct 11 13:09:28 2012] [info] [client 10.55.9.45] [6752] vauth_ldap authenticate: user dweintraub authentication failed; URI /svn/ [ldap_search_ext_s() for user failed][Bad search filter]
而且,我在我的
access_log
:10.55.9.45 - - [11/Oct/2012:13:09:27 -0500] "GET /svn/ HTTP/1.1" 401 401 10.55.9.45 - dweintraub [11/Oct/2012:13:09:28 -0500] "GET /svn/ HTTP/1.1" 500 535
是的,我在那個組。(或者,至少我如何確認這只是為了確保這不是問題。我有 SysinternalsSuite ADExplorer。這是我獲取所有資訊的地方。)
您沒有正確指定組的 DN,您可以通過錯誤消息看到。它應該看起來像這樣:
Require ldap-group CN=Development,OU=Security Groups,OU=VegiBanc,dc=vegibanc,dc=com
編輯:由於這似乎不是問題,請確保您有
AuthLDAPGroupAttribute member uniquemember AuthLDAPGroupAttributeIsDN on
設置,我認為這對您的 AD 環境是正確的。這些是預設值,
mod_authnz_ldap
但它只能幫助明確設置它們。我真的沒有任何其他想法,您的配置看起來正確。我只是想知道為什麼您
Require
的原始配置中沒有指令。但是你說它正在工作,所以它可能預設為Require valid-user
.**編輯 2:**由於我們正在執行一個非常相似的設置(但不是使用 AD),我查看了我們的配置,發現不能
Require ldap-group
與 Subversion 的授權功能一起使用。這記錄在這裡:https ://ctf.open.collab.net/sf/go/artf4917 。在我們的例子中,這不是問題,因為我們AuthzSVNAccessFile
用於授權。Require ldap-group
似乎只是表現Require valid-user
得像.這並沒有真正向我解釋為什麼您會收到“錯誤的搜尋過濾器”消息,但為了只允許開發組的成員訪問該
/svn
位置,您應該使用組過濾器擴展AuthLDAPURL
並刪除Require ldap-group
指令。由於您使用的是 AD,因此您可以memberOf
按照以下方式使用:AuthLDAPURL ldap://ldap.vegibanc.com/dc=vegibanc,dc=com?sAMAccountName?sub?(&(objectCategory=person)(memberOf=CN=Development,OU=Security Groups,OU=VegiBanc,dc=vegibanc,dc=com)) NONE
更多細節在這裡:
http://subversion.open.collab.net/ds/viewMessage.do?dsForumId=3&dsMessageId=417401