我如何限制只能通过另一个推荐人应用程序访问我无法控制的应用程序



我们的客户有一组(5-6)内部网/互联网应用程序,可以是自定义开发的,也可以是3d方的,位于各种web服务器中,这些应用程序我们无法修改/控制。

我们开发了一个门户应用程序(a),客户端希望其所有其他应用程序(B)只能通过a访问,这意味着如果用户直接输入B的应用程序url,他会收到一个错误页面,告诉只能通过a访问。因此,用户必须登录到应用程序a,然后单击应用程序B的链接才能访问它。出于安全原因,并使A充当其他应用程序(B)的访问网关,因此提出了此要求。

这可能吗?我们如何实施?我们应该使用顶部的另一个web服务器作为所有其他应用程序的代理吗(B),或者有更好的解决方案吗?如果我们使用另一个web服务器作为代理,我们是否应该使用用户id-token方法和适当的会话cookie来实现referrer逻辑,这样应用程序B的url就不会被黑客入侵,并且对每个用户和会话都是唯一的?

如果我的问题表述不清楚或错误,很抱歉,但我不熟悉网络/系统管理和web服务器。我可以在需要的地方提供更多细节。

这里有不同的方法:
1。使用防火墙设置仅从A IP地址访问B http{s}端口
2.在httpd.conf中为aps B目录设置目录限制,如:

<Directory "/var/www/B">
AllowOverride None
Order allow,deny
Allow from <IP of A>
</Directory>

在APS中,A创建将使用.htaccess规则代理到B的链接(http://ip_A/accesstoB/somepath/script.php),如:

RewriteRule ^accesstoB/(.*)$ http://<ip_B>/$1 [P]

在本例中:访问http://ip_A/accesstoB/somepath/script.php链路的客户将被代理到http://ip_B/somepath/script.php

  1. 您从开始,通过使用web服务器conf文件或基于ip的防火墙限制来限制对B应用程序的访问
  2. 然后,您将所有这些请求重定向到您将开发的新包装应用程序
  3. 有了这个包装应用程序,你可以进行任何你喜欢的身份验证,然后你的包装应用程序会进行http/https请求(通过libcurl等),并且会回显响应

相关内容

最新更新