OAuth与OpenID

OAuth

允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要分享他们的访问许可或他们数据的所有内容。

OAuth是OpenID的一个补充,但是完全不同的服务。

认证授权过程:

在认证和授权的过程中涉及的三方包括:

  1. 服务提供方,用户使用服务提供方来存储受保护的资源,如照片,视频,联系人列表。
  2. 用户,存放在服务提供方的受保护的资源的拥有者。
  3. 客户端,要访问服务提供方资源的第三方应用,通常是网站,如提供照片打印服务的网站。在认证过程之前,客户端要向服务提供者申请客户端标识。

使用OAuth进行认证和授权的过程如下所示:

  1. 用户想操作存放在服务提供方的资源。用户登录客户端向服务提供方请求一个临时令牌。
  2. 服务提供方验证客户端的身份后,授予一个临时令牌。
  3. 客户端获得临时令牌后,将用户引导至服务提供方的授权页面请求用户授权。在这个过程中将临时令牌和客户端的回调连接发送给服务提供方。
  4. 用户在服务提供方的网页上输入用户名和密码,然后授权该客户端访问所请求的资源。
  5. 授权成功后,服务提供方引导用户返回客户端的网页。
  6. 客户端根据临时令牌从服务提供方那里获取访问令牌。
  7. 服务提供方根据临时令牌和用户的授权情况授予客户端访问令牌。
  8. 客户端使用获取的访问令牌访问存放在服务提供方上的受保护的资源。

OAuth 2.0关注客户端开发者的简易性。要么通过组织在资源拥有者和HTTP服务商之间的被批准的交互动作代表用户,要么允许第三方应用代表用户获得访问的权限。同时为Web应用,桌面应用和手机,和起居室设备提供专门的认证流程。

OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth 1.0即完全废止了OAuth1.0。

2012年10月,OAuth 2.0协议正式发布为RFC 6749  。

OpenID

OpenID 是一个以用户为中心的数字身份识别框架,它具有开放、分散性。OpenID 的创建基于这样一个概念:

可以通过 URI (又叫 URL 或网站地址)来认证一个网站的唯一身份,同理,我们也可以通过这种方式来作为用户的身份认证

OpenID是一个去中心化的网上身份认证系统。对于支持OpenID的网站,用户不需要记住像用户名和密码这样的传统验证标记。取而代之的是,他们只需要预先在一个作为OpenID身份提供者(identity provider, IdP)的网站上注册。OpenID是去中心化的,任何网站都可以使用OpenID来作为用户登录的一种方式,任何网站也都可以作为OpenID身份提供者。OpenID既解决了问题而又不需要依赖于中心性的网站来确认数字身份。

OpenID正在被越来越多的大网站采用,比如作为身份提供者的AOLOrange。OpenID可以和.NET FrameworkWindows CardSpace一起使用。

由于URI 是整个网络世界的核心,它为基于URI的用户身份认证提供了广泛的、坚实的基础。

OpenID 系统的第一部分是身份验证,即如何通过 URI 来认证用户身份。目前的网站都是依靠用户名和密码来登录认证,这就意味着大家在每个网站都需要注册用户名和密码,即便你使用的是同样的密码。如果使用 OpenID ,你的网站地址(URI)就是你的用户名,而你的密码安全的存储在一个 OpenID 服务网站上(你可以自己建立一个 OpenID 服务网站,也可以选择一个可信任的 OpenID 服务网站来完成注册)。

与OpenID同属性的身份识别服务商还有ⅥeID,ClaimID,CardSpace,Rapleaf,Trufina ID Card等,其中ⅥeID通用账户的应用最为广泛。

猜你喜欢

转载自blog.csdn.net/Scrat_Kong/article/details/82501697