基于OAuth 2.0的第三方授权

OAuth 2.0



什么是OAuth

OAuth是Open Authorization的缩写,为用户资源的授权提供了一个安全的、开放而又简易的标准。

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

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

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

值得注意的是OAuth 2.0虽然是OAuth 1.0的下一个版本,但并不向后兼容OAuth 1.0。

OAuth 2.0授权的基本流程


oauth流程(qq为例):

  第一步:用户选择第三方账号登陆。

  第二步:用户输入第三方账号密码,点击授权登陆。

  第三步:授权成功,返回临时code,code每次请求都不相同。

  第四步:通过code获取认证令牌access_token,token有一定的时效性。

  第五步:通过access_token获取用户的open_id。

  第六步:通过open_id获取用户授权的信息。

PS:眼过千遍不如手过一遍

时间: 2024-11-02 09:40:42

基于OAuth 2.0的第三方授权的相关文章

谈谈基于OAuth 2.0的第三方认证 [下篇]

从安全的角度来讲,<中篇> 介绍的Implicit类型的Authorization Grant存在这样的两个问题:其一,授权服务器没有对客户端应用进行认证,因为获取Access Token的请求只提供了客户端应用的ClientID而没有提供其ClientSecret:其二,Access Token是授权服务器单独颁发给客户端应用的,照理说对于其他人(包括拥有被访问资源的授权者)应该是不可见的.Authorization Code类型的Authorization Grant很好地解决了这两个问题

谈谈基于OAuth 2.0的第三方认证 [上篇]

对于目前大部分Web应用来说,用户认证基本上都由应用自身来完成.具体来说,Web应用利用自身存储的用户凭证(基本上是用户名/密码)与用户提供的凭证进行比较进而确认其真实身份.但是这种由Web应用全权负责的认证方式会带来如下两个问题: 对于用户来说,他们不得不针对不同的访问Web应用提供不同的用户凭证.如果这些凭证具有完全不同的密码,我们没有多少人能够记得住,所以对于大部分整天畅游Internet的网友来说,我想他们在不同的网站注册的帐号都会采用相同的密码.密码的共享必然带来安全隐患,因为我们不能

谈谈基于OAuth 2.0的第三方认证 [中篇]

虽然我们在<上篇>分别讨论了4种预定义的Authorization Grant类型以及它们各自的适用场景的获取Access Token的方式,我想很多之前没有接触过OAuth 2.0的读者朋友们依然会有“不值所云” 之感,所以在介绍的内容中,我们将采用实例演示的方式对Implicit和Authorization Code这两种常用的Authorization Grant作深入介绍.本章着重介绍Implicit Authorization Grant. Implicit Authorizatio

一个功能完备的.NET开源OpenID Connect/OAuth 2.0框架&mdash;&mdash;IdentityServer3

今天推荐的是我一直以来都在关注的一个开源的OpenID Connect/OAuth 2.0服务框架--IdentityServer3.其支持完整的OpenID Connect/OAuth 2.0标准,使用它就可以轻易地搭建一个单点登录服务器. 说是一直关注,是因为1年前,要为一个平台搭建一个OAuth 2.0服务器,当时由于IdentityServer3还处于开发阶段,核心还不稳定,扩展功能也不完备.无奈只好熟读OAuth 2.0的规范,并根据www.asp.net网站上的一个简单示例自己实现了

OAuth 2.0文档翻译(第一章)

OAuth 2.0 授权框架 概要 OAuth 2.0授权框架使得第三方应用获得有限的http服务,也代表了用户(资源拥有者)通过策划一个批准通信在用户和http服务之间,或者运行第三方应用代表自身获得权限.这个说明文档取代了在RFC 5849描述的过时的OAuth 1.0协议. 这份备忘录的地位 这是一个互联网标准跟踪文档. 这份文档是IETF(Internet Engineering Task Force:互联网工程任务小组)的作品.代表了IETF团队的一致意见.接受了公共的审查并且被IES

构建微服务-使用OAuth 2.0保护API接口

微服务操作模型 基于Spring Cloud和Netflix OSS 构建微服务-Part 1 基于Spring Cloud和Netflix OSS构建微服务,Part 2 在本文中,我们将使用OAuth 2.0,创建一个的安全API,可供外部访问Part 1和Part 2完成的微服务. 关于OAuth 2.0的更多信息,可以访问介绍文档:Parecki - OAuth 2 Simplified 和 Jenkov - OAuth 2.0 Tutorial ,或者规范文档 IETF RFC 674

ASP.NET WebApi OWIN 实现 OAuth 2.0

原文:http://www.cnblogs.com/xishuai/p/aspnet-webapi-owin-oauth2.html OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. OAuth 允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据.每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的 2 小时内)内访问特定的资源(

OAuth 2.0: Bearer Token Usage

Bearer Token (RFC 6750) 用于HTTP请求授权访问OAuth 2.0资源,任何Bearer持有者都可以无差别地用它来访问相关的资源,而无需证明持有加密key.一个Bearer代表授权范围.有效期,以及其他授权事项:一个Bearer在存储和传输过程中应当防止泄露,须使用Transport Layer Security (TLS):一个Bearer有效期通常很短,最好不超过1小时. 一. 资源请求 Bearer实现资源请求有三种方式:Authorization Header.F

基于 IdentityServer3 实现 OAuth 2.0 授权服务【密码模式(Resource Owner Password Credentials)】

密码模式(Resource Owner Password Credentials Grant)中,用户向客户端提供自己的用户名和密码.客户端使用这些信息,向"服务商提供商"索要授权.基于之前的 IdentityServer3 实现 OAuth 2.0 授权服务[客户端模式(Client Credentials Grant)] 修改. 客户端 public class Clients { public static List<Client> Get() { return ne