首页 > 其他分享 >OAuth

OAuth

时间:2023-12-22 23:32:43浏览次数:17  
标签:令牌 用户 认证 服务器 OAuth 授权 客户端

简介

OAuth 是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是 2.0 版。

OAuth 在客户端与服务端之间,设置了一个授权层(authorization layer)。客户端不能直接登录服务端,只能登录授权层,以此将用户与客户端区分开来。客户端登录授权层所用的令牌(token),与用户的密码不同。

用户可以在登录的时候,指定授权层令牌的权限范围和有效期。客户端登录授权层以后,服务端根据令牌的权限范围和有效期,向客户端开放用户储存的资料。OAuth 2.0 定义了四种授权方式:授权码模式(authorization code)、简化模式(implicit)、密码模式(resourceowner password credentials)和客户端模式(client credentials)。

流程

• 用户打开客户端以后,客户端要求用户给予授权

• 用户同意给予客户端授权

• 客户端使用上一步获得的授权,向认证服务器申请令牌

• 认证服务器对客户端进行认证以后,确认无误,同意发放令牌

• 客户端使用令牌,向资源服务器申请获取资源

• 资源服务器确认令牌无误,同意向客户端开放资源

授权码模式

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

其流程为:

• 用户访问客户端,后者将前者导向认证服务器

• 用户选择是否给予客户端授权

• 假设用户给予授权,认证服务器将用户导向客户端事先指定的” 重定向 URI”(redirection URI),同时附上一个授权码

• 客户端收到授权码,附上早先的” 重定向 URI”,向认证服务器申请令牌

• 认证服务器核对了授权码和重定向 URI,确认无误后,向客户端发送访问令牌(access token)和更新令牌(refresh token)

A 步骤中,客户端申请认证的 URI,包含以下参数:

• response_type:表示授权类型,必选项,此处的值固定为 code

• client_id:表示客户端的 ID,必选项

• redirect_uri:表示重定向 URI,可选项

• scope:表示申请的权限范围,可选项

• state:表示客户端的当前状态,需动态指定,防止 CSRF


标签:令牌,用户,认证,服务器,OAuth,授权,客户端
From: https://blog.51cto.com/u_14156098/8939497

相关文章

  • OAuth2 认证详解
    摘自网上内容,写的很好。是一种开放标准的授权框架,用于授权第三方应用程序访问受保护的资源,而无需提供直接的用户名和密码。它提供了一种安全的授权机制,允许用户授权第三方应用程序代表他们访问受保护的资源。下面将详细解释OAuth2的认证过程和相关概念。OAuth2认证的主要参与者......
  • OAuth2.0详细介绍与实践
    一、OAuth2.0介绍1.1概述OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。oAuth......
  • Caused by: io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication
    原文链接:https://blog.csdn.net/De_Buffer/article/details/132492287最终解决方法虽然通过更换连接客户端为jedis解决了问题,但不符合发展趋势,lettuce已成为主流redis客户端,springboot2官方推荐,因此在这个保底方案基础上继续探究。终于!!找到解决我的问题的一篇文章,跟着他的思......
  • Microsoft 标识平台和 OAuth 2.0 代理流
    参考:Microsoft标识平台和OAuth2.0代理流https://learn.microsoft.com/ZH-CN/entra/identity-platform/v2-oauth2-on-behalf-of-flow///<summary>///获取B数据///</summary>///<returns></returns>publicasyncTas......
  • OAuth2.0授权
    OAuth2.0OAuth2.0是一个开放标准,允许用户授权第三方应用程序访问他们存储在另外的服务器上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。OAuth2.0协议的认证流程,简单理解,就是允许我们将之前的授权和认证过程交给一个独立的第三方进行担保。OAuth2.0协议......
  • oauth2.1.sql
    --------------------------------1.创建数据库------------------------------CREATEDATABASEIFNOTEXISTSoauth2_serverDEFAULTCHARACTERSETutf8mb4DEFAULTCOLLATEutf8mb4_general_ci;--------------------------------2.创建表---------------------......
  • OAuth原理
    1.快递员场景问题:如何让快递员通过门禁系统进入小区送货?①.把自己的密码告诉快递员=>不太合适a.拥有和我同样的权限.b.我想取消他进入小区的权力=>自己的密码需要改,还得通知其他的快递员.②.让快递员能够自由进入小区a.不必知道小区居民的密码.......
  • CollectiveOAuth第三方登录整合库
    .NET开源最全的第三方登录整合库-CollectiveOAuth前言 我相信很多同学都对接过各种各样的第三方平台的登录授权获取用户信息(如:微信登录、支付宝登录、GitHub登录等等)。今天给大家推荐一个.NET开源最全的第三方登录整合库:CollectiveOAuth。 官方项目介绍 .Net平台(C#)......
  • 如何实现一套简单的oauth2授权码类型认证,一些思路,供参考
    背景组内人不少,今年陆陆续续研发了不少系统,一般都会包括一个后台管理系统,现在问题是,每个管理系统都有RBAC那一套用户权限体系,实在是有点浪费人力,于是今年我们搞了个统一管理各个应用系统的RBAC的系统,叫做应用权限中心,大致就是:各个应用在我们系统注册,并录入应用支持的各类权限(如......
  • OAuth2
    参考:265Stuff:OAuth2.0SimpleExample周志明:《凤凰架构-架构安全性-授权-OAuth2》Google:OpenIDConnect 为了对OAuth2有一个直观的认识。我们先从一个例子开始。谷歌的OpenIdConnect是OAuth2的一个实践,集成了谷歌OpenIdConnect的网站,可以实现用谷歌账号登录它......