oAuth

导读:本篇文章讲解 oAuth,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

简介

OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时,任何第三方都可以使用OAUTH认证服务,任何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP、JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。互联网很多服务如Open API,很多大公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权的标准。
在官方网站的首页,可以看到下面这段简介:

An open protocol to allow secure API authorization in a simple and standard method from web, mobile and desktop applications.

大概意思是说OAUTH是一种开放的协议,为桌面、手机或web应用提供了一种简单的,标准的方式去访问需要用户授权的API服务。OAUTH类似于Flickr Auth、Google’s AuthSub、Yahoo’s BBAuth、 Facebook Auth等。

协议特点

(1). 简单:不管是OAUTH服务提供者还是应用开发者,都很易于理解与使用;

(2). 安全:没有涉及到用户密钥等信息,更安全更灵活;

(3). 开放:任何服务提供商都可以实现OAUTH,任何软件开发商都可以使用OAUTH;

OAuth2四种授权模式

2.1 授权码模式
授权码模式(authorization code)是功能最完整、流程最严密的授权模式,code保证了token的安全性,即使code被拦截,由于没有app_secret,也是无法通过code获得token的。

2.1.1 角色行为与功能
资源所有者
只需要允许或拒绝第三方应用获得授权

第三方应用
申请成为资源服务器的第三方应用
获取资源服务器提供的资源

授权服务器
提供授权许可code、令牌token等

资源服务器
提供给第三方应用注册接口,需要提供给第三方应用app_id和app_secret
提供给第三方应用开放资源的接口

2.1.2 授权码模式授权方式顺序图
在这里插入图片描述
2.2隐式授权模式/简化模式
和授权码模式类似,只不过少了获取code的步骤,是直接获取令牌token的,适用于公开的浏览器单页应用,令牌直接从授权服务器返回,不支持刷新令牌,且没有code安全保证,令牌容易因为被拦截窃听而泄露。

2.3密码模式
使用用户名/密码作为授权方式从授权服务器上获取令牌,一般不支持刷新令牌。

2.4客户端凭证模式
一般用于资源服务器是应用的一个后端模块,客户端向认证服务器验证身份来获取令牌。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/101422.html

(0)
小半的头像小半

相关推荐

半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!