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