OAuth2.0的四种授权模式
2019-06-12 15:12
1056 查看
1. OAuth2简易实战(一)-四种模式
1.1. 隐式授权模式(Implicit Grant)
- 第一步:用户访问页面时,重定向到认证服务器。
- 第二步:认证服务器给用户一个认证页面,等待用户授权。
- 第三步:用户授权,认证服务器想应用页面返回Token
- 第四步:验证Token,访问真正的资源页面
1.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,访问真正的资源页面
案例Github自取:https://github.com/PinkPig-cq/springSecurityoAuth
1.3. 密码模式(Resource Owner Password Credentials Grant)
- 第一步:用户访问用页面时,输入第三方认证所需要的信息(QQ/微信账号密码)
- 第二步:应用页面那种这个信息去认证服务器授权
- 第三步:认证服务器授权通过,拿到token,访问真正的资源页面
优点:不需要多次请求转发,额外开销,同时可以获取更多的用户信息。(都拿到账号密码了)
缺点:局限性,认证服务器和应用方必须有超高的信赖。(比如亲兄弟?)
应用场景:自家公司搭建的认证服务器
1.4. 客户端凭证模式(Client Credentials Grant)
- 第一步:用户访问应用客户端
- 第二步:通过客户端定义的验证方法,拿到token,无需授权
- 第三步:访问资源服务器A
- 第四步:拿到一次token就可以畅通无阻的访问其他的资源页面。
这是一种最简单的模式,只要client请求,我们就将AccessToken发送给它。这种模式是最方便但最不安全的模式。因此这就要求我们对client完全的信任,而client本身也是安全的。
因此这种模式一般用来提供给我们完全信任的服务器端服务。在这个过程中不需要用户的参与。
ps:个人理解,如有错误,请帮我指出下,谢谢。
相关文章推荐
- oauth2.0授权码模式详解
- OAuth 2.0 协议 授权码授权模式(Authorization Code Grant) -----四种授权模式最常用模式之一
- 实现OAuth2.0服务端【授权码模式(Authorization Code)】
- OAuth2.0详解(授权模式篇)
- 实现OAuth2.0服务端【授权码模式(Authorization Code)】
- OAuth2.0学习(1-4)授权方式1-授权码模式(authorization code)
- OAuth2.0学习(1-5)授权方式2-简化模式(implicit grant type)
- OAuth2.0学习(1-6)授权方式3-密码模式(Resource Owner Password Credentials Grant)
- OAuth2.0学习(1-7)授权方式4-客户端模式(Client Credentials Grant)
- Spring Boot整合oauth2.0搭建统一授权服务(密码模式)
- Oauth2.0认证---授权码模式
- Android中的Activity四种启动模式(launchMode)
- ThinkPHP支持的URL模式有四种
- Android中Activity的四种启动模式详解
- Activity四种启动模式之singleTask应用
- 关于android中activity的四种启动模式
- Android的四种启动模式
- Activity的四种加载模式
- activity 的四种启动模式
- 四种典型大数据可视化交互模式及实例