Active-Directory
Apache 身份驗證失敗,需要 ldap-group
我一直在嘗試將 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 的屬性;基於此,我設置AuthLDAPGroupAttribute
為member
和。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
,它在授權提供程序中沒有任何過濾器,只是感覺必須重複常見的配置參數才能使其工作是不對的。