我正在使用前端的AngularJS构建在线应用程序,托管在MVC 5 / Web API应用程序(基本上是单页面应用程序)中。但是我有一个严格的限制:应用程序的数据将保存在专用网络中。我必须在专用网络中构建第二个Web API应用程序,以暴露Web应用程序的功能。此外,用户身份验证需要在专用网络API内部进行(因此专用网络API将充当身份验证提供程序),因为这是用户表所在的位置。
DMZ中的应用程序基本上将充当专用网络中Web API的代理。因此,在UI API中的ApiController
中收到的每个请求都将调用专用网络API,理想情况下在初始请求中传递已接收的令牌。
从身份验证的角度来看,这就是我需要的:
如果我不需要第二层API,我只会使用MVC单用户身份验证实现,它提供对cookie(UI)和令牌(API)身份验证的支持。
任何有助于深入了解我如何通过上述方案做类似事情的帮助将非常感激。 (我想我的要求有点像UI网络应用程序的Windows模拟。)
请参阅下面的静态架构的高级视图:
答案 0 :(得分:0)
您可能需要查看Azure service bus relays,它们旨在桥接公司防火墙并调用内部部署API。
您的WebAPI服务将通过服务总线进行身份验证,以便通过它来调用您的服务。您可以在请求中使用承载令牌传递用户凭据。
我不确定,但您可能需要更改后端服务实现以使用WCF。您可以在this link中找到有关在Microsoft Dynamics中使用中继的说明。