WCF Data Services 团队最近发表了一系列关于 OData 服务和客户端上可用验证机制的文章。OData 是 ATOMPub 协议的一种实现,并扩展了对 ATOM 资源的查询和更新。来自 OData 网站的介绍如下:
Open Data Protocol (开放数据协议,OData)是用来查询和更新数据的一种 Web 协议,其提供了把存在于应用程序中的数据暴露出来的方式。OData 运用且构建于很多 Web 技术之上,比如 HTTP 、 Atom Publishing Protocol (AtomPub)和 JSON ,提供了从各种应用程序、服务和存储库中访问信息的能力。OData 被用来从各种数据源中暴露和访问信息,这些数据源包括但不限于:关系数据库、文件系统、内容管理系统和传统 Web 站点。
Alex James ,Data Service 团队的程序经理发表了一个系列文章,力图向大家解释关于验证方面的问题。
- 你如何在 OData 协议上“附加”验证机制?
- 我应该使用哪些 WCF Data Services 客户端和服务器函数库?
根据 Alex 对特定应用场景的解释,每一种验证机制都为了应对不同的挑战。他把这些解释组织成一组问题,来检视适合的验证机制。
- OData Consumer(数据消费端)如何登录 OData Producer(数据提供者)?
- WCF Data Service 如何模拟一个 OData Consumer,以便数据库查询能在消费端用户上下文中运行?
- 你如何把 OData Consumer 连接到一个使用 OAuth 机制的 OData Producer 上?
- 你如何把企业域环境集成到托管在云中的 OData Producer 上,以便运行在企业账号下的应用程序能无缝地访问 OData Producer?
下面是这些系列文章涉及到的一个场景列表。
Windows Authentication (Windows 集成验证)——涉及用 Windows Credentials(凭证)来进行验证的场景。这是在企业内部网场景下的主要模式,网络环境是同质的,只有 Windows 的服务器和客户端机器。
Custom Basic Authentication (自定义基本验证)——涉及在基础结构级别(如 IIS)上进行的基本质询响应(challenge-response)验证的场景。假如简单的用户名 / 密码不能满足要求,还要支持用户 / 密码信息存储在数据库中的情况。
Forms Authentication (窗体验证)——涉及在托管了 ASP.NET 环境的 IIS 上通过框架级别的保护方法来实现验证的场景。
ClientSide Hooks (客户端钩子)——涉及在 Windows 和基本验证机制都无法使用下的客户端验证场景。“如果你使用了不同的验证模式,通常就需要使用这种机制,为了使用 OAuth WRAP ,不会用到 Credentials 属性。在使用基于声明验证的时候,你就不得不直接回去检查请求消息和消息头。”
Server Side Hooks (服务器端钩子)——涉及用不同的托管方式(如 IIS、WCF 或自定义环境)来托管 OData 服务的场景,则要在每种托管环境中以不同方式来实现验证。
当然,这个团队也在寻求一些关于“任何你希望我们研究的验证场景”的反馈。如果你打算使用OData Services 以RESTful 的方式来暴露数据,又想保证其安全性,那么就一定要阅读一下这个系列文章。
查看英文原文: Series On Available Authentication Mechanisms For OData Services And Clients
评论