Active-Directory

Apache 身份驗證失敗,需要 ldap-group

  • January 4, 2022

我一直在嘗試將 Windows 伺服器上的 apache 綁定到我們的活動目錄伺服器以進行身份驗證和授權。

為了測試它,我一直在嘗試使用以下參數的“ldap-status”處理程序

<Location "/ldap-status">
   SetHandler ldap-status

   AuthType Basic
   AuthBasicProvider ldap
   AuthName "LDAP Status"
   LDAPReferrals off
   AuthLDAPBindAuthoritative on
   AuthLDAPURL "ldap://1.2.3.4:389/cn=Users,dc=XXX,dc=example,dc=com?sAMAccountName?sub?(objectClass=person)" NONE
   AuthLDAPGroupAttribute member
   AuthLDAPGroupAttributeIsDN on
   AuthLDAPMaxSubGroupDepth 0
   AuthLDAPBindDN xxx
   AuthLDAPBindPassword xxx
   Require ldap-group "cn=TEST GROUP,cn=Users,dc=XXX,dc=example,dc=com"
</Location>

到目前為止,如果我將其刪除Require ldap-group並替換為Require valid-user,它可以正常工作,但如果我恢復組要求則無法正常工作。

從我使用 powershell 從 AD 伺服器中可以看到,該組存在並且它具有member列出所有成員的 DN 的屬性;基於此,我設置AuthLDAPGroupAttributemember和。AuthLDAPGroupAttributeIsDN``on

我確定我的使用者在我需要檢查的組中,但是在 apache 錯誤日誌中只有這條記錄,這並不能真正幫助理解原因:

$$ Mon Apr 27 14:52:08.023952 2020 $$ $$ authz_core:error $$ $$ pid 13168:tid 2072 $$ $$ client 10.0.1.45:59690 $$AH01631:使用者 mtassinari:“/ldap-status”授權失敗:

我可以做些什麼來更正配置以了解為什麼“需要 ldap-group”失敗?

最後,我已經能夠通過使用別名拆分身份驗證和授權來使其工作,如下所示:

<AuthnProviderAlias ldap my-ldap>
   AuthLDAPBindAuthoritative on
   AuthLDAPURL "ldap://1.2.1.4:389/cn=Users,dc=XXX,dc=example,dc=com?sAMAccountName?sub?(objectClass=person)" NONE
   AuthLDAPBindDN xxx
   AuthLDAPBindPassword xxx
</AuthnProviderAlias>

<AuthzProviderAlias ldap-group ldap-group-test "cn=TEST GROUP,cn=Users,dc=XXX,dc=example,dc=com">
   AuthLDAPURL "ldap://1.2.1.4:389/cn=Users,dc=XXX,dc=example,dc=com" NONE
   AuthLDAPBindDN xxx
   AuthLDAPBindPassword xxx
   AuthLDAPGroupAttribute member
   AuthLDAPGroupAttributeIsDN on
   AuthLDAPMaxSubGroupDepth 0
</AuthzProviderAlias>

<Location "/ldap-status">
   SetHandler ldap-status
   LDAPReferrals off

   AuthType Basic
   AuthName "LDAP Status"
   AuthBasicProvider my-ldap
   Require ldap-group-test
</Location>

認為這裡的關鍵區別是AuthLDAPURL,它在授權提供程序中沒有任何過濾器,只是感覺必須重複常見的配置參數才能使其工作是不對的。

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