博客
关于我
OAuth2图解
阅读量:186 次
发布时间:2019-02-28

本文共 1506 字,大约阅读时间需要 5 分钟。

OAuth2解决什么问题

OAuth2是一种用于开放系统间授权的协议,旨在解决以下核心问题:

1. 开放系统间的授权

照片拥有者希望在云冲印服务上打印照片,而云冲印服务需要访问云存储服务上的资源。这种场景需要一种安全的方式来允许云冲印服务在拥有者允许的情况下访问其资源。


2. 图例说明

  • 资源拥有者:照片的所有者。
  • 客户应用:如云冲印服务。
  • 受保护资源:照片。

3. 早期的解决方案:用户名密码复制

传统的方法是将云存储服务的用户名和密码直接暴露给云冲印服务。这种做法存在以下问题:

  • 安全性低:云冲印服务会永久保存用户密码,存在被滥用或泄露的风险。
  • 灵活性不足:用户无法限制云冲印服务获取资源的范围和有效期。
  • 依赖密码安全:单纯的密码登录并不能完全保障安全。
  • 影响其他服务:一旦用户更改密码,所有依赖此密码的第三方应用都会失效。
  • 潜在风险:第三方应用被破解时,可能导致用户密码泄露和数据安全问题。

这种方法仅适用于同一公司内部的多个系统,但不适用于不受信的第三方应用。


4. OAuth2的通用开发者密钥

另一种方法是使用预先约定的密钥(Development Key),主要用于合作伙伴或业务部门间的授权。这种方式适用于特定的业务场景,但并未完全解决通用授权的需求。


5. OAuth2的令牌机制

OAuth2通过颁发令牌(Token)来实现安全的资源访问。核心流程包括:

  • 申请令牌:客户应用请求令牌。
  • 颁发令牌:授权服务器审核请求后颁发令牌。
  • 令牌管理:包括令牌的生命周期管理、权限范围的定义以及令牌的吊销机制。

OAuth2简介

OAuth2(RFC 6749)是OAuth授权框架的最新版本,主要目标是标准化资源授权流程。其核心角色包括:

1. OAuth的主要角色

  • 授权服务器(Authorization Server):负责颁发和验证令牌。
  • 资源拥有者(Resource Owner):资源的原始所有者。
  • 客户应用(Client):请求资源的应用程序。
  • 资源服务器(Resource Server):存储和保护资源的服务器。

2. OAuth2的最简向导

OAuth2领域的专家川崎高彦开发了“OAuth2 as Service”服务,并撰写了《OAuth2最简向导》用于向投资人解释 OAuth2 的核心概念。该文章简明扼要地介绍了 OAuth2 的主要特点和应用场景。


OAuth2的应用

1. 微服务安全

在微服务架构下,系统和设备的多样化使得传统的用户名密码登录方式难以适用。OAuth2通过颁发令牌,提供了一种基于 token 的安全登录方式,解决了传统方法在复杂场景下的不足。

2. 社交登录

OAuth2也可以用于社交登录,例如通过微信、QQ等第三方账号登录目标应用。这种方式提升了用户体验,同时降低了账号泄露的风险。


OAuth2.0核心图解

1. OAuth2.0授权框架(RFC 6749)

OAuth2.0的核心流程包括以下几个步骤:

  • 客户应用授权服务器提出资源请求。
  • 授权服务器验证客户应用的身份,并决定是否授予访问权限。
  • 授权服务器向客户应用颁发一个访问令牌(Access Token),用于标识客户应用。
  • 客户应用使用访问令牌向资源服务器请求资源。
  • 资源服务器验证令牌的有效性,并允许访问资源。
  • 令牌的终结:资源服务器验证完成后,会将令牌终结,防止多次使用。
  • 2. 访问令牌的校验

    资源服务器必须具备验证访问令牌的能力,以确保只有合法的客户应用可以访问受保护资源。


    通过以上机制,OAuth2 不仅解决了资源共享的安全性问题,还为现代应用提供了一种灵活且安全的授权方式。

    转载地址:http://reqj.baihongyu.com/

    你可能感兴趣的文章
    Nginx 动静分离与负载均衡的实现
    查看>>
    Nginx 反向代理 MinIO 及 ruoyi-vue-pro 配置 MinIO 详解
    查看>>
    Nginx 反向代理解决跨域问题
    查看>>
    Nginx 反向代理配置去除前缀
    查看>>
    nginx 后端获取真实ip
    查看>>
    Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
    查看>>
    nginx 常用配置记录
    查看>>
    Nginx 我们必须知道的那些事
    查看>>
    Nginx 的 proxy_pass 使用简介
    查看>>
    Nginx 的配置文件中的 keepalive 介绍
    查看>>
    nginx 配置 单页面应用的解决方案
    查看>>
    nginx 配置~~~本身就是一个静态资源的服务器
    查看>>
    Nginx下配置codeigniter框架方法
    查看>>
    nginx添加模块与https支持
    查看>>
    Nginx的Rewrite正则表达式,匹配非某单词
    查看>>
    Nginx的使用总结(一)
    查看>>
    Nginx的是什么?干什么用的?
    查看>>
    Nginx访问控制_登陆权限的控制(http_auth_basic_module)
    查看>>
    nginx负载均衡的五种算法
    查看>>
    Nginx配置ssl实现https
    查看>>