我们的客户有一套(5-6)内联网/互联网应用程序,既可以是定制开发的,也可以是三方开发的,位于各种networking服务器, 我们无法修改 /控制哪些应用程序 。
我们开发了一个Web门户应用程序(A),客户希望所有其他应用程序(B)只能通过A访问 ,这意味着如果用户直接inputB的应用程序URL,他会得到一个错误页面,告诉访问是只允许通过A.因此,用户必须login到应用程序A,然后单击链接到应用程序B来访问它。 这个要求是出于安全原因而要求的,并且使得A充当到其他应用的接入网关 (B)。
这是可能的,我们如何实现它? 我们是否应该使用另一台Web服务器作为所有其他应用程序的代理 (B),还是有更好的解决scheme? 如果我们使用另一个Web服务器作为代理,那么我们应该使用用户id – token方法结合适当的会话cookie来实现referrer逻辑,以便应用程序B的url不会被破解,并且对于每个用户和会话都是唯一的?
对不起,如果我不清楚或错误地提出我的问题,但我不熟悉networking/系统pipe理和networking服务器。 我可以在需要的地方提供更多细节。
这里有不同的方法:
1.仅从A地址使用防火墙设置访问B http {s}端口。
2.在httpd.conf中为aps B目录设置目录限制,如:
<Directory "/var/www/B"> AllowOverride None Order allow,deny Allow from <IP of A> </Directory>
在APS一个创建链接( http://ip_A/accesstoB/somepath/script.php
),将使用.htaccess规则代理B:
RewriteRule ^accesstoB/(.*)$ http://<ip_B>/$1 [P]
在这个例子中:访问http://ip_A/accesstoB/somepath/script.php
链接的客户将被代理到http://ip_B/somepath/script.php