通过部分URL确定有效用户访问虚拟目录的安全

我不是一个非常有经验的Apache系统pipe理员(因为我是唯一一个知道任何东西的人),我真的被这个问题困住了。 由于过于热心的推销员,我不得不提出一个解决scheme快速…

基本上,我们有一个Apache服务器,除了别的以外,它用于代理到虚拟机上某些专有软件的传入连接。 每个客户都有自己的虚拟机和一个独特的URL。 这些URL被模糊处理,一个RewriteMap脚本用于根据LDAP目录中的信息(以及其他一些因素)来决定代理的位置:

RewriteMap routing_map prg:/scripts/routing_map.pl RewriteRule ^/app/([^/]+)(.*)$ ${routing_map:$1:$2} [P,QSA,L] 

这一切工作正常。

现在的问题是:

我们必须以类似的方式将另一个path和代理映射到虚拟机,但这次需要密码保护。 所有用户都位于不同组织单位下的LDAP目录中。 只有customerA的用户才能访问customerA的虚拟机。

有没有办法做一些类似的RewriteMap,但与安全性? 即基于URL的唯一客户部分,告诉Apache在searchLDAP以validation用户时使用不同的filter? 在下面的Apacheconfiguration示例中,我需要将XXXXreplace为正在访问的URL的唯一客户部分。

 AuthType Basic AuthBasicProvider ldap AuthName "Restricted Access" AuthzLDAPAuthoritative on AuthLDAPURL ldap://ldap.local/dc=batch?sub Require ldap-group cn=customers,ou=group,dc=batch Require ldap-attribute x-od-customer=XXXX Satisfy All 

大量的谷歌search和实验后,我完全卡住,需要一些build议,请

干杯!

为了安全起见,您不希望这样做,因为攻击者在URL中也可以访问URL中用户可访问的任何内容。 这就是为什么你没有find有用的信息,如何做到这一点。

你想要的是保持所有的会话pipe理服务器端。 一旦你authentication用户使用安全会话令牌来跟踪他们,那么如果他们想要去一个特定的领域,你评估他们是否可以通过他们的个人资料保持在服务器端。

对于一些有用的指导,请查看Security Stack Exchange上的这个问题,或者查看会话标签下的问题。