2012-07-17 33 views
0

一个Web应用程序(war)提供了两套HTTP API,一套是Internet上公开的客户端,另一套是内部的,不应该公开给Internet。网络部署保护内部API的最佳做法是什么?一个Web应用程序提供公共和内部API,如何保护内部API?

我知道一个常用的方法是将应用程序拆分为两个可部署对象,将用于公共API的前端放在DMZ中,并将内部API服务的后端放在内部网络中。但出于某种原因,我想保持应用程序的可部署性。

回答

0

最后我们介绍一个反向代理来隐藏内部网络中的API。来自Internet的客户端只能连接到反向代理服务器,反向代理服务器被配置为只将请求转发到公共API到应用程序。

1

有几件事你可以在这里尝试。对于私有API,我真的建议将它切换到它自己的应用程序,它只监听本地地址。如果您必须将它们放在一起,则可以实施使用内部API所需的某种oauth设置,从而使只有拥有有效oauth令牌的用户才能完成对受限资源的API请求。

+0

我同意丹尼尔。不必是OAuth,但对API(和HTTPS)以及某些访问控制列表类型的东西使用一些身份验证来限制访问。 – 2012-07-17 20:51:23

+0

身份验证有帮助,但我正在寻求一种方法来阻止外部客户端访问内部API。因为认证凭证可能会泄露。内部API是其他系统的集成接口。不知道反向代理是否有帮助? – aleung 2012-07-18 05:50:26

相关问题