spring cloud oauth2 简介


spring cloud oauth2 简介

oauth2是一个关于授权的开放网络标准,应用获取用户授权后就可直接使用

*************************

使用场景

三方应用授权使用:如jd不注册,直接获得用户微信、qq授权就可使用

          

单点登录:如登录了淘宝账号,就可免登录使用天猫、聚划算等应用

         

*************************

名词解释:以jd使用微信登录为例

third party application:三方应用,jd

http service:http服务商,微信

resource owner:资源所有者,微信注册用户

user agent:用户代理,web端(用户使用浏览器使用jd)、app端(用户使用app应用使用jd)

authorization server:认证服务器,微信处理认证的服务器

resource server:资源服务器,微信相关数据,jd后端服务

 

*************************

授权模式

******************

授权码模式:authorization code

               

客户端向用户获取授权,用户同意授权后返回授权码;

客户端使用授权码向authorization server申请token,authorization server检验通过后返回token;

客户端使用token向resource server申请所需要的资源,resource server经authorization server检验通过后发放resource

说明:该模式流程完善,将token存储在后端,安全性较高

******************

密码模式:password

              

用户使用密码向resource server申请token,resource server检验通过后发放token;

客户端使用token向resource server申请需要的资源,resource server通过authorization server检验通过后发放资源

说明:该模式使用密码认证,适用于高度信任的应用,安全性较授权码模式低

******************
简化模式:implicit

              

客户端向 authorization server 申请授权,authorization server验证通过后直接发放token;

客户端使用token向resource server申请获取resource,resource server通过authorization server验证通过后发放resource

说明:implicit模式直接向前端发放token,不安全,适用于安全性不高的场景

******************

客户端模式:client credentials

             

客户端使用命令行向authorization server申请token,authorization server验证通过后发放token;

客户端使用命令行携带token向resource server申请resource,resource server经authorization server验证通过后发放resource

说明:该模式适用于没有前端的应用,不常用

******************

更新令牌

令牌发放时,发放两个令牌:访问令牌和更新令牌;

在令牌到期前,使用更新令牌请求更新令牌,避免重新认证登陆

更新令牌请求:

http://host:port/oauth/token?
grant_type=refresh_token&
client_id=Client_id&
client_scret=Client_scret&
refresh_token=Refresh_token

grant_type:认证类型

client_id:客户端id

client_scret:客户端scret

refresh_token:更新令牌

发布了331 篇原创文章 · 获赞 92 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43931625/article/details/104091107