在 Apache 虚拟主机中配置基于证书和 LDAP 的授权

在 Apache 虚拟主机中配置基于证书和 LDAP 的授权

我们有一个场景,其中有一个应用程序仅接受客户端证书进行身份验证,并且该设置运行良好(在 Apache VHost 中配置)。但是,作为新要求的一部分,我们还想检查该用户是否属于 LDAP 中的某个组,如果不是,则应拒绝该请求。

请注意,在下面的摘录中,我们尝试在请求标头中发送单独的用户,提取该用户,然后根据 LDAP 进行检查,但逻辑保持不变。

问题是 LDAP 搜索根本没有被调用。

<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>

相关内容