• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    OAuth 2.0 概念及授权流程梳理

    OAuth2 的概念

    OAuth是一个关于授权的开放网络标准,OAuth2是其2.0版本。

    它规定了四种操作流程(授权模式)来确保安全

    应用场景有第三方应用的接入、微服务鉴权互信、接入第三方平台、第一方密码登录等

    Java王国中Spring Security也对OAuth2标准进行了实现。

    OAuth2授权模式

    OAuth2定义了四种授权模式(授权流程)来对资源的访问进行控制

    无论哪个模式(流程)都拥有三个必要角色:客户端授权服务器资源服务器,有的还有用户(资源拥有者),下面简单介绍下授权流程

    授权码模式(Authorization Code Grant)

    授权码模式是OAuth2目前最安全最复杂的授权流程,先放一张图,稍做解释

    如上图,我们可以看到此流程可大致分为三大部分

    整体上来说,可以用一句话概括授权码模式授权流程

    客户端换取授权码,客户端使用授权码换token,客户端使用token访问资源

    接下来对这三部分进行一些说明 :

    前提条件:

    Client Side

    客户端换取授权码

    这个客户端可以是浏览器,

    Server Side

    客户端使用授权码换token

    Check Access Token

    客户端使用token访问资源

    这里的说明省去了一些参数,如scope(请求token的作用域)、state(用于保证请求不被CSRF)、redirect_uri(授权服务器回调uri),先理解概念,实现的时候再去要求

    隐式授权模式(Implicit Grant)

    隐式授权模式大致可分为两部分:

    用一句话概括隐式授权模式授权流程

    客户端让用户登录授权服务器换token,客户端使用token访问资源

    Client Side

    客户端让用户登录授权服务器换token

    Check Access Token

    客户端使用token访问资源

    密码模式(Resource Owner Password Credentials Grant)

    密码模式大体上也分为两部分:

    一句话概括用户名密码模式流程:

    用户在客户端提交账号密码换token,客户端使用token访问资源

    Client Side
    用户在客户端提交账号密码换token

    Check Access Token

    客户端使用token访问资源

    客户端模式(Client Credentials Grant)

    客户端模式大体上分为两部分:

    一句话概括客户端模式授权流程:

    客户端使用自己的标识换token,客户端使用token访问资源

    Server Side

    客户端使用自己的标识换token

    Check Access Token

    客户端使用token访问资源

    OAuth2授权模式的选型

    考虑到授权场景的多样性,可以参考以下两种选型方式

    按授权需要的多端情况

    按客户端类型与所有者

    后记

    学习OAuth2有一段时间了,把学到的知识分享出来,行文中难免有错误,如果发现还请留言指正,谢谢合作

    参考文章与资料:

    https://time.geekbang.org/course/intro/84 作者:杨波

    https://blog.csdn.net/sinat_25295611/article/details/84980987 作者:Kayfen

    How OAuth 2.0 works and how to choose the right flow 作者:Lorenzo Spyna

    原文出处https://www.cnblogs.com/hellxz/p/oauth2_process.html

    到此这篇关于OAuth 2.0 概念及授权流程梳理的文章就介绍到这了,更多相关OAuth2.0 授权流程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • nodejs实现OAuth2.0授权服务认证
    • 微信公众号OAuth2.0网页授权问题浅析
    • Android仿新浪微博oauth2.0授权界面实现代码(2)
    • 微信网页授权(OAuth2.0) PHP 源码简单实现
    • ASP.NET实现QQ、微信、新浪微博OAuth2.0授权登录
    上一篇:详解git commit --amend 用法
    下一篇:详解git submodule使用以及注意事项
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    OAuth 2.0 概念及授权流程梳理 OAuth,2.0,概,念及,授权,流程,