OAuth2.0认证和授权原理

简介:

什么是OAuth授权?

 

一、什么是OAuth协议

OAuth(开放授权)是一个开放标准。

允许第三方网站在用户授权的前提下访问在用户在服务商那里存储的各种信息。

而这种授权无需将用户提供用户名和密码提供给该第三方网站。

OAuth允许用户提供一个令牌给第三方网站,一个令牌对应一个特定的第三方网站,同时该令牌只能在特定的时间内访问特定的资源。

 

二、OAuth的原理和授权流程

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

服务商:用户使用服务的提供方,一般用来存消息、储照片、视频、联系人、文件等(比如Twitter、Sina微波等)。

用  户:服务商的用户

第三方:通常是网站,该网站想要访问用户存储在服务商那里的信息。

比如某个提供照片打印服务的网站,用户想在那里打印自己存在服务商那里的网络相册。

在认证过程之前,第三方需要先向服务商申请第三方服务的唯一标识。

OAuth认证和授权的过程如下:

1、用户访问第三方网站网站,想对用户存放在服务商的某些资源进行操作。

2、第三方网站向服务商请求一个临时令牌。

3、服务商验证第三方网站的身份后,授予一个临时令牌。

4、第三方网站获得临时令牌后,将用户导向至服务商的授权页面请求用户授权,然后这个过程中将临时令牌和第三方网站的返回地址发送给服务商。

5、用户在服务商的授权页面上输入自己的用户名和密码,授权第三方网站访问所相应的资源。

6、授权成功后,服务商将用户导向第三方网站的返回地址。

7、第三方网站根据临时令牌从服务商那里获取访问令牌。

8、服务商根据令牌和用户的授权情况授予第三方网站访问令牌。

9、第三方网站使用获取到的访问令牌访问存放在服务商的对应的用户资源。

 

三、目前支持OAuth的网站有哪些?

t.sina.com.cn

t.qq.com

t.sohu.com

t.163.com

www.douban.com

www.twitter.com

www.facebook.com

Google Buzz

 

文件来源于: http://www.6zou.net/tech/what_is_oauth.html 

所谓OAuth(即Open Authorization,开放授权),它是为用户资源授权提供了一种安全简单的标准,也就是说用户在访问第三方web或应用的时候,第三方不会知道用户的信息(登录密码等),现在基本都支持OAuth2.0版本了。

首先来看看我们在第三方使用oauth流程如下:

第一步:用户登录第三方网站,使用qq登录。

第三方使用oauth流程1

第二步:点击登录后,会跳到qq平台提示输入用户名和密码。

第三方使用oauth流程2

第三步:如果用户名和密码正确,会提示是否接受授权,如果授权成功,第三方网站就能访问你的资源了,qq头像、用户名等

第三方使用oauth流程3

认证和授权过程(包括三方)

1、服务提供方,用户使用服务提供方来存储受保护的资源,如照片,视频,联系人列表。

2、用户,存放在服务提供方的受保护的资源的拥有者。

3、客户端,要访问服务提供方资源的第三方应用,通常是网站。在认证过程之前,客户端要向服务提供者申请客户端标识。

oauth2.0认证和授权原理       用户访问客户端的网站,想操作用户存放在服务提供方的资源。

客户端向服务提供方请求一个临时令牌。

服务提供方验证客户端的身份后,授予一个临时令牌。

客户端获得临时令牌后,将用户引导至服务提供方的授权页面请求用户授权。在这个过程中将临时令牌和客户端的回调连接发送给服务提供方。

用户在服务提供方的网页上输入用户名和密码,然后授权该客户端访问所请求的资源。

授权成功后,服务提供方引导用户返回客户端的网页。

客户端根据临时令牌从服务提供方那里获取访问令牌。

服务提供方根据临时令牌和用户的授权情况授予客户端访问令牌。

客户端使用获取的访问令牌访问存放在服务提供方上的受保护的资源。

来源: http://www.phpddt.com/%E4%BA%8C%E6%AC%A1%E5%BC%80%E5%8F%91/oauth-2.html

http://player.youku.com/player.php/sid/XMzI4NzA1MDA0/v.swf

  http://blog.csdn.net/alonesword/article/details/12190075


本文转自 Tenderrain 51CTO博客,原文链接:http://blog.51cto.com/tenderrain/1913569

相关文章
|
数据安全/隐私保护
关于 OAuth 2.0 统一认证授权
随着互联网的巨头大佬逐渐积累了海量的用户与数据,用户的需求越来越多样化,为了满足用户在不同平台活动的需求,平台级的厂商则需要以接口的形式开放给第三方开发者,这样满足了用户的多样性需求,也可以让自己获得利益,让数据流动起来,形成给一个良性的生态环境,最终达到用户、平台商、第三方开发者共赢。
2828 0
|
9月前
|
JSON 前端开发 数据格式
SpringSecurity基础-认证授权结果处理
在传统的应用中,认证成功后页面需要跳转到认证成功页面或者跳转到个人中心页,但是在前后端分离的项目通常是使用Ajax请求完成认证,这时候我们需要返回一个JSON结果告知前端认证结果,然后前端自行跳转页面。 要做到上述功能,我们需要自定义认证成功处理器实现AuthenticationSuccessHandler接口复写 onAuthenticationSuccess方法,该方法其中一个参数是Authentication ,他里面封装了认证信息,用户信息UserDetails等,我们需要在这个方法中使用Response写出json数据即可
87 0
|
9月前
|
JSON 前端开发 数据格式
六.SpringSecurity基础-认证授权结果处理
SpringSecurity基础-认证授权结果处理
|
9月前
|
存储 缓存 安全
SpringSecurity基础-认证和授权概述
RBAC是基于角色的访问控制(Role-Based Access Control )在 RBAC 中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便。
66 0
|
9月前
|
存储 缓存 安全
一.SpringSecurity基础-认证和授权概述
SpringSecurity基础-认证和授权概述
|
存储 JSON 前端开发
授权机制OAuth2.0
授权机制OAuth2.0
189 0
|
存储 安全 Java
案例之oauth2认证所需资源说明|学习笔记
快速学习案例之oauth2认证所需资源说明
104 0
案例之oauth2认证所需资源说明|学习笔记
|
JSON 缓存 安全
oAuth2+JWT+Security实现权限认证体系(上)
oAuth2+JWT+Security实现权限认证体系
176 0
|
Java 测试技术 Spring
oAuth2+JWT+Security实现权限认证体系(下)
oAuth2+JWT+Security实现权限认证体系
168 0
|
安全 数据安全/隐私保护
OAuth 2.0授权框架详解
OAuth 2.0授权框架详解
OAuth 2.0授权框架详解