初识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) 资源服务器验证令牌通过, 返回客户端所需资源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值