Apache-2.4
受 LDAP 密碼保護的 Apache UserDir(不想要“public_html”)
我在 CentOS 7 上執行 Apache 2.4.6-93。我需要的是:每個使用者都應該有自己的主目錄(通過 UserDir 實現),但目錄需要密碼保護。一個使用者應該不能看到另一個使用者的目錄。
我可以通過這種方式使用 AD 設置身份驗證:
<Directory "/mnt/shared/apache_userdir/*/private_html"> AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS AuthName "Please Login" AuthBasicProvider ldap AuthType Basic AuthLDAPGroupAttribute member AuthLDAPGroupAttributeIsDN On AuthLDAPURL ldap://x.x.x.x:389/DC=example,DC=org?sAMAccountName?sub?(objectClass=*) AuthLDAPBindDN CN=binduser,OU=someou,OU=anotherou,DC=example,DC=org AuthLDAPBindPassword somepassword Require ldap-group CN=group-test-1-,OU=someou,OU=anotherou,DC=example,DC=org
這是有效的。使用者可以使用https://example.com/~username訪問他們的主目錄
但是身份驗證指向一個硬編碼的組(在本例中為:group-test-1)。作為該組成員的任何使用者都將訪問其他使用者目錄。我也可以使用 對某些使用者進行硬編碼
Require ldap-user foobar
,但我希望這個要求對於訪問該網站的使用者來說是動態的。就像是:
Require ldap-user %username
有沒有辦法在 URL 中獲取使用者名並將其用作此參數的變數?
謝謝。
<DirectoryMatch "/mnt/shared/apache_userdir/(?<username>[^/]+)/private_html"> ... Require ldap-user %{env:MATCH_USERNAME} </DirectoryMatch>
請參閱DirectoryMatch,其中有一個與此非常相似的範例。您需要 Apache 2.4.8 或更高版本才能工作。