Chúng tôi có một kịch bản trong đó chúng tôi có một ứng dụng chỉ chấp nhận chứng chỉ ứng dụng khách để xác thực và thiết lập đó hoạt động tốt (được định cấu hình trong Apache Vhost). Tuy nhiên, như một phần yêu cầu mới, chúng tôi cũng muốn kiểm tra xem người dùng đó có phải là thành viên của một nhóm nhất định trong LDAP hay không và nếu không thì yêu cầu sẽ bị từ chối.
Lưu ý trong đoạn trích dưới đây, chúng tôi đã thử với một người dùng riêng biệt được gửi trong tiêu đề yêu cầu, giải nén nó và sau đó kiểm tra LDAP, tuy nhiên logic vẫn giữ nguyên.
Vấn đề là Tìm kiếm LDAP hoàn toàn KHÔNG được gọi.
<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>