Apache:如何判断我的用户是通过哪个LDAP服务器进行身份validation的

我使用以下configuration来validation我的用户(简化)

<AuthnProviderAlias ldap server1> AuthLDAPURL ldap://server1/whatever?uid?one? </AuthnProviderAlias> <AuthnProviderAlias ldap server2> AuthLDAPURL ldap://server2/whatever?uid?one? </AuthnProviderAlias> <Location /> AuthName "Realm" AuthType Basic AuthBasicProvider server1 server2 AuthzLDAPAuthoritative off require valid-user </Location> 

有什么办法可以知道我的用户是从哪个LDAP服务器进行身份validation的? 当身份validation成功时,我想设置一个HTTP头(类似于“SourceLDAPServer:server2”),以便能够告诉用户哪个服务器有效。Apache 2.2.x可以这样做吗?

Apache mod_headers应该是可能的。 不过,我不知道mod_ldap使用的环境variables。 如果您安装了PHP,只需创build一个包含行的PHP文件

 <?php phpinfo(); ?> 

并冲浪到该文件。 查看该页面中打印的环境variables,并尝试查看是否有任何ldapvariables。

似乎唯一的方法是从LDAP服务器中select更多属性,如下所示:

 <AuthnProviderAlias ldap server1> AuthLDAPURL ldap://server1/whatever?uid,type1?one? </AuthnProviderAlias> <AuthnProviderAlias ldap server2> AuthLDAPURL ldap://server2/whatever?uid,type2?one? </AuthnProviderAlias> 

身份validation成功后,根据哪个LDAP服务器进行身份validation,findAUTHENTICATE_type1AUTHENTICATE_type2作为环境variables。

使用mod_headers,就可以通过这种方式设置标题值

 Header set UserType type1 env=AUTHENTICATE_type1 Header set UserType type2 env=AUTHENTICATE_type2