OData Services 和客户端可用的验证机制综述

阅读数:1322 2010 年 7 月 31 日

话题:SOA.NETREST语言 & 开发架构

WCF Data Services 团队最近发表了一系列关于 OData 服务和客户端上可用验证机制的文章。OData 是 ATOMPub 协议的一种实现,并扩展了对 ATOM 资源的查询和更新。来自OData 网站的介绍如下:

Open Data Protocol (开放数据协议,OData)是用来查询和更新数据的一种 Web 协议,其提供了把存在于应用程序中的数据暴露出来的方式。OData 运用且构建于很多 Web 技术之上,比如HTTPAtom 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