Avem un scenariu în care avem o aplicație care acceptă doar certificate de client pentru autentificare și că setarea funcționează bine (configurată în Apache VHost). Cu toate acestea, ca parte a unei noi cerințe, am dori să verificăm și dacă acel utilizator face parte dintr-un anumit grup în LDAP și, dacă nu, atunci cererea ar trebui să fie respinsă.
Rețineți că în fragmentul de mai jos am încercat cu un utilizator separat trimis în antetul cererii, extragându-l și apoi verificând LDAP, totuși logica rămâne aceeași.
Problema este că Căutarea LDAP NU este invocată deloc.
<LocationMatch ^>
allow from all
SSLOptions +StdEnvVars
SSLRequireSSL
SSLRenegBufferSize 10485760
SSLRequire %{SSL_CLIENT_S_DN_CN} in {"myusername"}
SSLVerifyClient require
SSLVerifyDepth 5
SSLUserName SSL_CLIENT_S_DN_CN
SetEnvIf x-user ".+" X_USER=$0
#AuthName "Apache2 LDAP Check"
#AuthType Basic
AuthBasicProvider ldap
LDAPReferrals Off
AuthLDAPUrl ldap://ldap.corp.orgn.com:389/dc=corp,dc=orgn,dc=com?sAMAccountName?sub?(objectClass=*)
AuthLDAPBindDN "[email protected]"
AuthLDAPBindPassword "asdfg"
Require valid-user
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
#Require ldap-group CN=orgn-users,OU=Standard,OU=Security,OU=Groups,DC=corp,DC=orgn,DC=com
#Require ldap-filter "&(objectClass=user)(sAMAccountName=%{X_USER})(memberof=CN=orgn-users,OU=Standard,OU=Security,OU=Groups,DC=corp,DC=orgn,DC=com)"
RequestHeader set userid "%{X_USER}e"
</LocationMatch>