Spring Security Oauth2 之 理解OAuth 2.0授权流程

本文详细介绍了OAuth 2.0授权流程,包括四个核心角色:资源所有者、资源服务器、客户端和授权服务器。讨论了四种授权模式:客户端模式、密码模式、授权码模式和简化模式,以及刷新令牌的使用。通过Spring Security Oauth2,深入理解OAuth 2.0在实际应用中的工作原理。
摘要由CSDN通过智能技术生成

      

总览

        本系列针对Security-Oauth2架构的剖析,包括:oauth2.0认证架构详解、架构源码解读、核心结构配置。

        本篇是对oauth2认证流程的概述,喜欢的多多pick!

        内容引用书籍:The OAuth 2.0 Authorization Framework

        gitHub 链接: https://github.com/vincent9309/seurity-oauth2

 

1.1 角色

OAuth定义了四个角色:

资源所有者
    一个能够授权访问受保护资源的实体。当资源所有者是一个人时,它被称为最终用户。
资源服务器
    托管受保护资源的服务器能够使用访问令牌接受和响应受保护的资源请求。
客户
    代表资源所有者及其授权的应用程序进行受保护的资源请求。术语客户端并不意味着任何特定的实现特征(例如,应用程序是在服务器,台式机还是其他设备上执行的)。
授权服务器
服务器在成功认证资源所有者并获得授权后向客户端发放访问令牌。

 

 

授权服务器和资源服务器之间的交互超出了本规范的范围。授权服务器可以是与资源服务器相同的服务器或独立的实体。一个授权服务器可能会发出多个资源服务器接受的访问令牌。

 

 

 

1.2 协议流程


  图1中所示的抽象OAuth 2.0流程描述了四个角色之间的交互,并包含以下步骤:


(A)
    客户端请求资源所有者的授权。授权请求可以直接给资源所有者(如图所示),或者优选间接地通过授权服务器作为中介。
(B)
    客户端接收授权许可,这是一种代表资源所有者授权的凭证,使用本规范中定义的四种授权类型之一或使用扩展授权类型表示。授权授予类型取决于客户端用于请求授权的方法以及授权服务器支持的类型。
(C)
    客户端通过向授权服务器进行认证并携带授权来请求访问令牌。
(D)
    授权服务器对客户端进行身份验证并验证授权,并且如果有效则发出访问令牌。
(E)
    客户端从资源服务器请求受保护的资源并通过携带访问令牌进行认证。
(F)
    资源服务器验证访问令牌,并且如果有效,则为该请求提供服务。


客户从资源所有者(步骤(A)和(B)中描述)获得授权许可的首选方法是使用授权服务器作为中介

 

 

 

 

2 模式

oauth2根据使用场景不同,分成了4种模式
  ● 客户端模式(client credentials)
  ● 密码模式(resource owner password credentials)
  ● 授权码模式(authorization code)
  ● 简化模式(implicit)

 

 Oauth基于客户端与认证服务器验证的能力定义了两种客户端类型(以及,维护客户端认证信息的能力): 客户端模式、密码模式。

基础参数定义:
grant_type (发放令牌类型)、
client_id (客户端标识id)
username(用户帐号)
password (用户密码)
client_secret(客户端标识密钥)
refresh_token (刷新令牌)
scope(表示权限范围,可选项)

 

 2.1 客户端模式

 认证服务器给客户端下发客户端标识

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏目 "

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值