Cloud Design Pattern - Gatekeeper Pattern(守门人模式)

来源:互联网 发布:php软件用什么软件 编辑:程序博客网 时间:2024/04/29 16:57

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:

  • Valet Key Pattern. When communicating between the Gatekeeper and trusted roles it is good practice to enhance security by using keys or tokens that limit permissions for accessing resources. The Valet Key pattern describes how to use a token or key that provides clients with restricted direct access to a specific resource or service.




0 0
原创粉丝点击