Apache-2.2

結合 Apache 身份驗證提供程序(文件和 LDAP)

  • December 20, 2020

我正在嘗試在 Apache .htaccess 文件中結合基本文件LDAP使用者身份驗證,但我無法讓這兩種方法同時工作。它是一個或另一個。

這是我的設置:

.htaccess

AuthType Basic
AuthBasicProvider file ldap
AuthUserFile <path>/passwd
AuthGroupFile <path>/group
AuthLDAPURL "ldap://ldap.<my-domain>.com/ou=People,dc=<my-domain>,dc=com?uid"
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
<Limit GET POST PUT>
       require group admin ldap-group cn=web,ou=Group,dc=<my-domain>,dc=com
</Limit>

密碼

test:jhhLuf0DfajXk

團體

admin:test

當我更改限制值並刪除或重新排序組設置時,我會讓一個或另一個身份驗證提供程序工作。所以我似乎是一個語法問題,但我無法弄清楚。

老實說,文件可以一起刪除,但我試過了,但沒有任何影響。所以我把它包括在內,以防它有一些影響。

有人可以指出我正確的方向嗎?這個問題與 apache auth 非常相似:LDAP 和 htpasswd 的組合,但並不完全相同。

在此先感謝您的幫助。

我能夠解決我自己的問題。它幾乎與所需指令的有效使用者選項有關。

Require valid-user

文件可以在這裡找到: http ://httpd.apache.org/docs/2.0/mod/core.html#require

正如我原來的問題中提到的,文件不再是一個要求。一旦我刪除了該指令和伴隨它的後續必需指令,valid-user選項似乎已經解決了這個問題。我的工作*.htaccess*文件如下所示。

.htaccess

AuthName "Auth Test"
AuthType Basic
AuthBasicProvider file ldap
AuthUserFile <path>/passwd

AuthLDAPURL "ldap://ldap.<my-domain>.com/ou=People,dc=<my-domain>,dc=com?uid"
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
Require valid-user

文件和LDAP基本身份驗證都可以正常工作並與此設置很好地共存。

筆記

需要啟用以下 Apache 模組:

  • authnz_ldap
  • LDAP

我的/etc/apache2/mods-enabled包括這些:

authnz_ldap.load -> ../mods-available/authnz_ldap.load
ldap.conf -> ../mods-available/ldap.conf
ldap.load -> ../mods-available/ldap.load

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