0

我正在构建一个使用前端MVC 5/Web API应用程序(基本上是单页应用程序)托管的AngularJS的在线应用程序。不过,我有一个严格的限制:应用程序的数据将保存在专用网络中。我必须在专用网络内构建第二个Web API应用程序来公开Web应用程序的功能。此外,用户认证需要在专用网络API内发生(因此专用网络API将充当认证提供者),因为这是用户表存在的地方。如何实现跨MVC 5应用程序和分离Web API应用程序的身份验证

DMZ中的应用程序基本上将用作专用网络中Web API的代理。因此,UI API中的ApiController中收到的每个请求都将调用专用网络API,理想情况下会在初始请求中接收收到的令牌。

从认证的角度看,这是我需要的:

  • 用户导航到该网站,只能看到某些页面(我想使用MVC过滤器在视图控制器来控制访问)。
  • 他们将使用用户名和密码登录一次。
  • 登录后,用户可以导航到应用程序页面,因此页面将调用DMZ API中的数据。
  • 此DMZ的API控制器将调用专用网络API。
  • 这两个API都能够根据用户的凭据识别和应用其控制器方法的授权。

如果我没有需要API,我只想使用MVC,单用户验证的实施,这为双方提供饼干(UI)和令牌(API)认证支持的第二层。

任何帮助提供洞察我如何能做到与上述情况类似的事情将不胜感激。 (我想我的要求有点像用于UI Web应用程序的Windows模拟)。

请参见下面的静态架构的高级视图:

enter image description here

回答

0

你可能想看看Azure service bus relays,其目的是为了桥接企业防火墙和调用预置的API。

您的WebAPI服务将根据服务总线进行身份验证,以允许通过它调用您的服务。您可以在请求中使用不记名令牌传递用户凭证。

我不确定,但您可能需要将您的后端服务实现更改为使用WCF。您可以在this link中找到关于在Microsoft Dynamics中使用继电器的解释。

相关问题