OAuth 2.0 认证框架介绍

1.  介绍

在传统的客户端-服务器认证模式中,当客户端请求访问服务器上受限制(受保护)的资源时,要通过服务器检查他是否有资源拥有着的证书来鉴定。为了让第三方应用能够访问受保护的资源,资源拥有者将他的证书分享给第三方应用,这就产生了如下几个问题和局限:

第三方应用必须保存资源拥有者的证书以备将来所用,典型的是一段明文密码。

o 服务器必须提供密码验证支持,尽管密码验证一直存在安全漏洞。

第三方应用获得了超出访问资源拥有者的保护资源,使得资源拥有者无力对资源的访问时段或对资源的子集访问进行    限制。

资源拥有者无法吊销单个第三方应用的访问权限,除非他吊销所有应用的访问权限,并修改密码。

o 危害任何第三方应用的结果就会危害终端用户的密码和通过该密码保护的所有数据。

 

OAuth 通过是引进一个认证层并将客户端资源拥有者的角色分离来解决上述问题。在OAuth中,客户端请求访问由资源拥有者掌控并由资源服务器托管的资源,并产生一套不同于资源拥有者的证书。

 

不是用资源拥有者的证书来访问受保护资源,客户端获得一个访问令牌——一段用来表明特定范围,生命周期,以及其他访问属性的字符串。访问令牌是通过认证服务器在经过资源拥有者同意后发布给第三方客户端的。客服端通过访问令牌访问经资源服务器托管的是受保护资源。

 

例如,一个终端用户资源拥有者)可以授权一个打印服务客户端)访问她放在分享服务器资源服务器)上的受保护图片资源)。不用将她的用户名和密码分享给打印服务,而是直接在一个分享服务器所信任的服务器认证服务器)上做认证,该服务器分配给打印服务一组特定委托的证书(访问令牌)。

 

这份声明是设计在http上的应用,OAuth在非http协议上的应用超出本声明的范围。

 


1.1. 角色

OAuth定义了四个角色:

资源拥有者

能够对的受保护资源的访问做授权的实体。当资源拥有者一个人的时候,它对指的是一个终端用户

资源服务器

对受保护资源进行托管的服务器,能够接受和响应使用访问令牌访问受保护资源的请求。

客服端

认证服务器

该服务器在客服端经资源拥有者鉴定成功并获得授权后给其发放访问令牌。

 

 

猜你喜欢

转载自peter-e-king.iteye.com/blog/1583591