Oauth2.0介绍:
第三方认证技术方案最主要是解决认证协议的通用标准 问题,因为要实现 跨系统认证,各系统之间要遵循一定的接口协议。
OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时,任何第三方都可以使用OAUTH认证服务,任何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP、JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。互联网很多服务如Open API,很多大公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权的标准。
Oauth协议目前发展到2.0版本,1.0版本过于复杂,2.0版本已得到广泛应用。
Oauth2.0第三方认证流程:
场景假设:你要访问某个不出名的网站, 该网站支持第三方认证,第三方为QQ
Oauth2包括以下角色:
Client: 客户端, 可以理解为就是你要访问的那个不出名的网站;
Resource Owner: 资源拥有者, 可以理解为用户本身,也就是你;
Authorization Server: 认证服务器, 可以理解为QQ的认证系统;
Resource Server: 资源服务器, 可以理解为QQ的用户管理系统;
认证流程:
A: 客户端 本身不存储资源,需要通过资源拥有者的授权去请求资源服务器的资源;
B: 资源拥有者确认授权给客户端;
C: 确认授权过后, 客户端带着确认授权的凭证去认证服务器申请令牌token;
D: 认证服务器颁发令牌token给客户端;
E: 客户端携带token请求资源服务器获取用户的信息;
F: 资源服务器将用户信息返回给客户端,登录认证成功.