• 初识OAuth2.0


    活动地址:CSDN21天学习挑战赛

    Oauth2.0协议文档: https://www.rfc-editor.org/rfc/rfc6749.html

    概述

    1. 是什么

      OAuth 即 Open standard for Authorization(开放式授权标准),允许用户授权第三方访问自身存储在其他服务端上的信息,而无需向第三方提供相应的账户密码.

      OAuth作为一个公开的网络授权协议标准.它为客户端提供了一种资源拥有者访问受限资源得方法. 客户端在访问受限资源之前, 需要先得到资源拥有者的授权,通过授权换取一个访问令牌, 随后客户端向受限资源服务器出示令牌来获取所需资源.

    2. 主要解决什么问题?

      举个例子: A第一次在京东买东西, 需要注册为京东用户才能使用, 但是A不想在注册, 这是京东的登录有微信第三方登录标记, A直接使用微信进行了登录,并成功购买了东西.

      这里涉及到了 三个角色 A, 京东 , 微信, A选择微信登录京东,也就意味着A授权京东去微信上拉取自己的个人信息, 并且A也同意微信提供自己的信息出去.

      这其中的授权与资源暴露都遵守了OAuth协议.使得资源在资源所有人允许的情况下达到了共享联通得效果.

    3. 优点

      • 安全: Oauth2.0客户端不在交互用户密码, 服务端集中管理
      • 标准应用广泛,通用高
      • 资源控制以及授权管理独立

    基本概念

    专业术语

    1. 受保护资源:能够使用 OAuth 请求获取的访问限制性资源。(例如:图片)
    2. 资源服务器:能够接受和响应受保护资源请求的服务器。(例如:图片共享服务)
    3. 客户端:获取授权和发送受保护资源请求的应用。(例如:打印服务)
    4. 资源拥有者:能够对受保护资源进行访问许可控制的实体。(例如:web 用户)
    5. 终端用户:起到资源拥有者角色的用户。
    6. 令牌:分发给客户端的代表访问授权的字符串。通常这个字符串对客户端来说是不 透明的。令牌代表资源拥有者许可的访问作用域和持续时间,并由资源服务器和授 权服务器强制保证。这个令牌可以代表一个标识符,用于检索授权信息,或以一种 可验证的方式自包含授权信息(即一个包含数据和签名的令牌字符串)。令牌可能 只代表纯粹的访问能力。而为了让客户端使用令牌,也可能需要一些多余的特定验 证证书。
    7. 访问令牌:被客户端用来代表资源拥有者发送验证请求的令牌。
    8. 刷新令牌:被客户端用来获取新的访问令牌的令牌,而不用资源拥有者的参与。
    9. 授权码:一个短期令牌,代表终端用户的授权。授权码用于获取一个访问令牌和一 个刷新令牌。
    10. 访问许可:用于描述中间形式的私有证书(如终端用户的密码或授权码)的一个通 用词汇,代表资源拥有者的授权。客户端使用访问许可来获取访问令牌。通过将各 种形式的访问许可都交换成访问令牌,资源服务器只需要支持一种验证机制。
    11. 授权服务器:能够成功验证资源拥有者和获取授权,并在此之后分发令牌的服务器。 授权服务器可以和资源服务器是同一个服务器,也可以是不同的实体。单独一个授 权服务器可以为多个资源服务器分发令牌。

    角色

    OAuth2.0主要包含了一下几个角色

    • Resource Owner : 资源所有者,可以理解为用户自身
    • Authiruzation Server : 授权服务器, 用于认证资源所有者,并提供授权审批的功能, 颁发令牌,用于获取资源. 授权服务器和资源服务器可以是同一服务器,也可以不同. 一个授权服务器可以为多个资源服务器颁发令牌.
    • Resource server : 资源服务器,能够接受和响应受保护资源请求的服务器。
    • Client : 客户端 获取授权和发送受保护资源请求的应用。
    • user-agent : 用户代理

    认证流程

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7LrHTpkI-1659865184623)(OAuth2.0.assets/image-20220807164948167.png)]

    (A) 客户端向资源拥有者发送访问受限资源的认证授权请求

    (B) 资源拥有者允许授权并返回访问许可

    © 客户端携带着自己的证书 ,请求认证服务器, 出示访问许可 来换取一个访问令牌

    (D) 认证服务器校验证书以及访问许可的有效性, 成功则颁发一个访问令牌

    (E) 客户端拿到访问令牌,向资源服务器请求保护资源.

    (F) 资源服务器验证令牌通过, 返回客户端所需资源

  • 相关阅读:
    maven-plugin-shade 详解1
    牛批 阿里P8熬夜冠军手码的Docker容器+k8s技术PDF,你还等啥呢
    Linux openvino源码编译笔记
    wsl2 执行exe文件提示 无法执行二进制文件:可执行文件格式错误
    MySQL启动后反复重新启动故障
    用红黑树封装map和set
    【JavaScript-32】使用js获取css样式内容
    肝通宵写了三万字把SQL数据库的所有命令,函数,运算符讲得明明白白讲解,内容实在丰富,建议收藏+三连好评!
    Python基础分享之缩进和选择
    Spring MVC
  • 原文地址:https://blog.csdn.net/qq_39236265/article/details/126208809