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.
- Cloud Design Pattern - Gatekeeper Pattern(守门人模式)
- Cloud Design Pattern - Retry Pattern(重试模式)
- Cloud Design Pattern - Throttling Pattern(节流模式)
- Cloud Design Pattern - Cache Aside Pattern(缓存模式)
- Cloud Design Pattern - Circuit Breaker Pattern(断路器模式)
- Cloud Design Pattern - CQRS Pattern (读写隔离模式)
- Cloud Design Pattern - Event Sourcing Pattern(事件溯源模式)
- Cloud Design Pattern - Federated Identity Pattern(联合身份模式)
- Cloud Design Pattern - Index Table Pattern(索引表模式)
- Cloud Design Pattern - Leader Election Pattern(领导选拔模式)
- Cloud Design Pattern - Materialized View Pattern(物化视图模式)
- Cloud Design Pattern - Priority Queue Pattern(优先级队列模式)
- Cloud Design Pattern - Sharding Pattern(分片模式) [上篇]
- Cloud Design Pattern - Sharding Pattern(分片模式) [下篇]
- Cloud Design Pattern - Valet Key Pattern
- Cloud Design Pattern - Competing Consumers(竞争消费模式)
- Cloud Design Pattern - Scheduler Agent Supervisor (调度代理主管模式)
- Design pattern设计模式
- LEETCODE--Binary Tree Level Order Traversal II
- “码“上行动——饿了么黑客马拉松大赛正式开放报名!
- jQuery 小技巧
- vim windows 中文乱码
- SPFA算法
- Cloud Design Pattern - Gatekeeper Pattern(守门人模式)
- Android 双进程保证service不被杀死
- 如何取Android设备日志
- 使用jquery-qrcode生成二维码
- 我自己使用过的linux服务器监控工具
- 最短路
- Javascript中的全局对象
- Hive列拼接
- [LeetCode] Valid Anagram