Asp.net mvc 在WebApplication前面添加安全层
Asp.net mvc 在WebApplication前面添加安全层,asp.net-mvc,security,iis-7,Asp.net Mvc,Security,Iis 7,我们在单个应用程序中有一个基于RactJs/Asp.net MVC/WebAPI的web应用程序,在后端有SQL Server。应用程序目前为2层,使用owin中间件进行基于令牌的身份验证。应用程序运行良好
在构建应用程序以将应用程序转换为3层之后,有一些安全建议。我们建议将UI和API分为两个应用程序。拟定的控制流程如下所示:
静态内容(js、图像和css)
浏览器请求>IIS
静态视图
浏览器请求>IIS>UI应用程序-MVC控制器
数据API
浏览器请求>IIS>UI应用程序-Api控制器
我们在单个应用程序中有一个基于RactJs/Asp.net MVC/WebAPI的web应用程序,在后端有SQL Server。应用程序目前为2层,使用owin中间件进行基于令牌的身份验证。应用程序运行良好
在构建应用程序以将应用程序转换为3层之后,有一些安全建议。我们建议将UI和API分为两个应用程序。拟定的控制流程如下所示:
静态内容(js、图像和css)
浏览器请求>IIS
静态视图
浏览器请求>IIS>UI应用程序-MVC控制器
数据API
浏览器请求>IIS>UI应用程序-Api控制器>服务应用程序-Api控制器>数据库
这是直截了当的,API控制器将从服务应用程序获取数据,应用UI逻辑并将数据返回到视图。由于身份验证是基于令牌的,我们可以在UI和服务层验证身份验证。防伪将仅限于Web应用程序
然而,客户希望有另一种方法。他们建议我们在浏览器和现有应用程序之间创建一个新应用程序(托管在IIS中)
他们希望遵循以下方法:
静态内容(js、图像和css)
浏览器请求>新应用>现有应用
静态视图
浏览器请求>IIS新应用>现有应用-MVC控制器
数据API
浏览器请求>新应用>现有应用-Api控制器>数据库
他们希望通过新应用程序进行身份验证和防伪(以及未来的安全实施)。如果在新应用程序中一切顺利,请将传入的请求转发到旧应用程序
我无法想象一个web应用程序的请求将如何传输到另一个web应用程序。下面是我能想到的方法-
Server.Transfer-一旦从一个应用程序中的安全检查传递了请求,我们就可以执行Server.Transfer。但限制条件是两个应用程序都必须在一台服务器上,而客户端说它必须在不同的服务器上
在新应用程序中实现所有控制器方法,并从新应用程序发出包含所需详细信息(Get/Post/Delete&headers)的WebRequest,并将httpResponse原样返回到浏览器。使用httpmodule或Owin中间件进行安全检查
Apporach 2对于MVC视图和API来说似乎是可行的,但是我们如何将传入的请求转发到静态内容(JS、图像、css)
解决这个问题的最佳方法/解决方案是什么。解决方案不必是.net/IIS