1.前言
上一篇我们讨论了云计算设计模式之联合身份模式,介绍了云计算环境下的多租户应用的身份认证与授权的问题.这一篇我们将深入到应用程序内部,看如何创建安全的请求,尤其是针对敏感信息的请求.
2.概念
在REST API 的时代,服务暴露出的都是一些EndPoint,调用者通过向这个EndPoint发起请求来调用,正常情形下,收到请求之后,我们的应用程序就开始响应请求了.然而,应用程序应该防止被恶意攻击,所以需要校验这些请求.熟悉ASP.NET请求管道的朋友就知道,ASP.NET会使用HttpModule来过滤用户的请求.
关于ASP.NET 请求管道及HttpModule.详细信息请点击:http://blog.csdn.net/sundacheng1989/article/details/9995263
那么我们的WebApi也需要这种类似HttpModule的东西来对请求做过滤,这种模式就是在调用的客户端和宿主服务之间建立一个代理,通过代理来完成过滤和请求的转发.
3.示例
个人认为最好的示例就是ASP.NET中使用HttpModule这种思想.
在官方文档中给出了一个运行在云中的Cloud Service 的例子,比较简单,不多赘述,如下图所示.
这里我们使用一个WebRole作为Gatekeeper来处理请求的过滤及验证,然后把请求传递给后端的服务进行调用。由于这种模式思想比较简单,几乎可以不必称之为一种模式,如果对ASP.NET的原理了解比较深刻,自然能够熟练运用.
4.相关阅读
The following pattern may also be relevant when implementing this pattern: