我有一个与基于REST的Web服务进行通信的移动应用程序。 Web服务位于防火墙后面并与其他系统进行通信。目前,此Web服务需要打开防火墙端口并为每个安装生成SSL证书。移动应用程序发送登录凭据,以便Web服务可以登录到自定义后端系统。
最近,一位客户向我们询问了我们如何将其部署到50个办事处。由于我们不想说修改每个办公室的每个防火墙,我们正在寻找选项。这是一个可能的解决方案列表和我对每个办法的想法:
打开防火墙端口并公开https webservice - 这是我们当前的 解决方案,但我们不想联系50个网络管理员并解释我们为什么需要这样做。
VPN - 重量太重,复杂且昂贵,我们只需要访问权限 到一台服务器。防火墙需要解决问题 修改。
Microsoft Azure混合连接管理器 - 提供托管 Azure云将公开端点的服务。 Azure会 还期望从易于安装的应用程序连接 生活在防火墙后面。当对云进行REST调用时 终点,请求是由发起的向前套接字 防火墙背后的软件。这样做我们想要的,但作为它 Microsoft解决方案可能会对我们提出其他要求 客户可能不想要。目前,简单的Hybrid Connection Manager是免费的。但是持续多久?
Jscape MFT Gateway - 与Azure类似,但您可以在任何地方托管其服务器。不是那么贵,但不是开源。
Netty - 一个异步java库/工具包,可以轻松构建这种类型的应用程序。需要构建和部署客户端和服务器应用程序。不知道我们对Netty不了解。
MDM,AirWatch,BlackBerry BES - 基于MDM的解决方案可以实现MDM的集中管理,并且通常不在每个后端服务所在的办公室中。 Airwatch有一个AppTunnle,但我不确定具体细节。
此时,Microsoft和Jscape系统是可能的解决方案。
但很可能这些解决方案需要我们修改移动软件以解决以下问题:
用户如何知道要登录的服务器?定位服务 需要构建,使用电子邮件地址来查找他们的 办公室,或者他们需要从列表中选择他们的办公地点。
虽然连接是SSL,但许多公司可能需要一些额外的保护,因为网络登录信息将从管道发送。
如何管理负载平衡和故障转移?
所以,在这一点上,我正在寻找更多选择。最好的选择是提供一定程度定制的商业产品。其次,想要一个很好用的开源产品,可以安装在Aws和定制。
谢谢
答案 0 :(得分:0)
我们发现的最佳方法是使用PUTTY API并设置反向代理。