Apache-2.4
Apache2 - 定義兩個有效的身份驗證提供程序
我想在我的 apache2 .htaccess 中定義兩個不同的身份驗證提供程序,以防一個失敗(所需的一個是 ldap,但即使 ldap 通過本地 htpasswd 文件失敗,我也希望能夠登錄)
我試過這個,但我不能讓它工作,因為 apache 抱怨已經定義的身份驗證類型。
如果我在我的 site.conf 中定義了兩種身份驗證類型,我將無法通過本地 htpasswd 文件登錄,因為“Require”行確保正確的 ldap 組和本地文件無法處理該規則,因為它只需要
Require valid-user
.Require ldap-group CN=admins,OU=Groups,OU=main,DC=my,DC=tld
如果您同時提供了 the
file
和ldap
身份驗證提供程序(使用該AuthBasicProvider ldap file
指令),那麼您可以定義以下規則集以便能夠從兩者進行身份驗證。我假設您使用該uid
屬性作為使用者名,但如果沒有,重寫下面的條件應該不會太難。<RequireAny> <RequireAll> Require valid-user Require ldap-group cn=admins,ou=groups,out=main,dc=my=dc=tld </RequireAll> <RequireAll> Require valid-user Require not ldap-attribute uid="%{REMOTE_USER}" </RequireAll> </RequireAny>
因此,如果以下任何一項為真,則使用者將通過身份驗證:
- 使用者有效並且具有正確的 LDAP 組成員資格。在這種情況下,使用者必須已通過
ldap
後端的身份驗證。- 使用者的
uid
屬性與給定的使用者名不匹配,但使用者是有效的。僅當uid
屬性不存在時才會發生這種情況,但如果存在,則ldap
提供者無法在 LDAP 數據庫中找到使用者。因此,在這種情況下,使用者憑據的有效性已由file
提供商確定。