基于 OAuth 2.0 协议的授权登录

OAuth2.0是用于授权的安全协议,它简化了第三方应用获取用户资源的流程。授权分为授权码模式、简化模式、密码模式和客户端模式。授权码模式是最完整的,涉及用户授权、客户端申请令牌、资源访问等步骤。简化模式则跳过授权码步骤,直接在浏览器中获取令牌。密码模式下,用户需提供密码,客户端不应存储。客户端模式中,客户端以自身名义认证。每个模式都有其适用场景和安全考量。
摘要由CSDN通过智能技术生成

基于 OAuth 2.0 协议的授权登录

1. OAuth 简史:

云计算引出了大量的开放平台,各种第三方应用建立在开放平台之上。
出于安全性的要求便出现了oauth协议。
2007年发布了Oauth1.0协议, 2011年发布了2.0协议;
OAuth 2.0是OAuth协议的下一版本,但不向后兼容OAuth 1.0。
OAuth 2.0关注客户端开发者的简易性,同时为Web应用,桌面应用,手机和起居室设备提供专门的认证流程。

2. OAuth1.0 与 OAuth2.0

  • OAuth1.0 与 OAuth2.0 是相互不兼容的,因为提供了不同的授权方式
  • 目前许多大型的互联网公司都在使用 OAuth2.0 协议进行开放授权服务

2.1 OAuth 2.0 的授权分3步:

  • 用户到授权服务器,请求授权,然后返回授权码(AuthorizationCode)
  • 客户端由授权码到授权服务器换取访问令牌(access token)
  • 用访问令牌去访问得到授权的资源

2.2 OAuth1.0 的授权分4步:

  • 客户端到授权服务器请求一个授权令牌(requesttoken&secret)
  • 引导用户到授权服务器请求授权
  • 用访问令牌到授权服务器换取访问令牌(accesstoken&secret)
  • 用访问令牌去访问得到授权的资源

3. OAuth 简介

3.1 Oauth 2.0 的运行流程

Oauth 2.0 的运行流程
(A)用户打开客户端以后,客户端要求用户给予授权。
(B)用户同意给予客户端授权。***
(C)客户端使用上一步获得的授权,向认证服务器申请令牌。
(D)认证服务器对客户端进行认证以后,确认无误,同意发放令牌。
(E)客户端使用令牌,向资源服务器申请获取资源。
(F)资源服务器确认令牌无误,同意向客户端开放资源。

3.2 名词释义

  1. Third-party application:第三方应用程序,也称为客户端,例如有道云笔记
  2. HTTP service:HTTP服务提供商,例如腾讯接口
  3. Resource Owner:资源所有者,也称为用户
  4. User Agent:用户代理,指浏览器
  5. Authorization server:认证服务器,即服务提供商专门用来处理认证的服务器
  6. Resource server:资源服务器,即服务提供商存放用户生成的资源的服务器,它与认证服务器,可以是同一台服务器,也可以是不同的服务器

3.3 OAuth的思路

OAuth在"客户端"与"服务提供商"之间,设置了一个授权层(authorization layer)。
"客户端"不能直接登录"服务提供商",只能登录授权层,以此将用户与客户端区分开来。
"客户端"登录授权层所用的令牌(token),与用户的密码不同。
用户可以在登录的时候,指定授权层令牌的权限范围和有效期。
"客户端"登录授权层以后,"服务提供商"根据令牌的权限范围和有效期,向"客户端"开放用户储存的资料。

3.4 客户端的常用四种授权模式:

3.4.1 客户端模式(Client Credentials Grant):
用户直接向客户端注册,客户端以自己的名义要求服务提供商提供服务。
3.4.2 密码模式(Password Credentials Grant):
用户必须把自己的密码给客户端,但是客户端不得储存密码,认证服务器只有在其他授权模式无法执行的情况下,才会考虑使用这种模式
3.4.3 授权码模式(Authorization Code):
功能最完整、流程最严密的授权模式。它的特点就是通过客户端的后台服务器,与服务提供商的认证服务器进行互动。
3.4.4 简化模式(Implicit Grant Type):
不通过第三方应用程序的服务器,直接在浏览器中向认证服务器申请令牌,跳过了“授权码”这个步骤

4. 授权码模式:

  • 授权码模式(authorization code)是功能最完整、流程最严密的授权模式。它的特点就是通过客户端的后台服务器,与"服务提供商"的认证服务器进行互动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值