OAuth2.0的四种授权模式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OAuth2.0的四种授权模式⽬录
隐式授权模式(Implicit Grant)
授权码授权模式(Authorization code Grant)
密码模式(Resource Owner Password Credentials Grant)
客户端凭证模式(Client Credentials Grant)
1.隐式授权模式(Implicit Grant)
第⼀步:⽤户访问页⾯时,重定向到认证服务器。
第⼆步:认证服务器给⽤户⼀个认证页⾯,等待⽤户授权。
第三步:⽤户授权,认证服务器想应⽤页⾯返回Token
第四步:验证Token,访问真正的资源页⾯
2.授权码授权模式(Authorization code Grant)
第⼀步:⽤户访问页⾯
第⼆步:访问的页⾯将请求重定向到认证服务器
第三步:认证服务器向⽤户展⽰授权页⾯,等待⽤户授权
第四步:⽤户授权,认证服务器⽣成⼀个code和带上client_id发送给应⽤服务器,然后,应⽤服务器拿到code,并⽤client_id去后台查询对应的client_secret 第五步:将code、client_id、client_secret传给认证服务器换取access_token和refresh_token
第六步:将access_token和refresh_token传给应⽤服务器
第七步:验证token,访问真正的资源页⾯
3.密码模式(Resource Owner Password Credentials Grant)
第⼀步:⽤户访问⽤页⾯时,输⼊第三⽅认证所需要的信息(QQ/微信账号密码)
第⼆步:应⽤页⾯那种这个信息去认证服务器授权
第三步:认证服务器授权通过,拿到token,访问真正的资源页⾯
优点:不需要多次请求转发,额外开销,同时可以获取更多的⽤户信息。
(都拿到账号密码了)
缺点:局限性,认证服务器和应⽤⽅必须有超⾼的信赖。
(⽐如亲兄弟?)
应⽤场景:⾃家公司搭建的认证服务器
4.客户端凭证模式(Client Credentials Grant)
第⼀步:⽤户访问应⽤客户端
第⼆步:通过客户端定义的验证⽅法,拿到token,⽆需授权
第三步:访问资源服务器A
第四步:拿到⼀次token就可以畅通⽆阻的访问其他的资源页⾯。
这是⼀种最简单的模式,只要client请求,我们就将AccessToken发送给它。
这种模式是最⽅便但最不安全的模式。
因此这就要求我们对client完全的信任,⽽client本⾝也是安全的。
因此这种模式⼀般⽤来提供给我们完全信任的服务器端服务。
在这个过程中不需要⽤户的参与。