`
臻是二哥
  • 浏览: 183844 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
Group-logo
Java技术分享
浏览量:0
社区版块
存档分类
最新评论

理解OAuth2.0

阅读更多
1. 为了理解OAuth的适用场合,让我举一个假设的例子。
有一个"云冲印"的网站,可以将用户储存在Google的照片,冲印出来。用户为了使用该服务,必须让"云冲印"能够读取用户自己储存在Google上的照片。

如何让云冲印能够访问位于Google上的照片呢?传统方法是,用户将自己的Google用户名和密码,告诉"云冲印",后者就可以读取用户的照片了。这样的做法有很多的缺点,比如:
a) 云冲印有了访问Google全部照片的权限,而实际情况是我们可能仅仅想打印Google中的某一张照片
b) 如果云冲印的网站被黑了,那么保存在云冲印网站上的能够访问Google照片的用户名和密码也就不安全了,但实际上Google网站一直是安全的.
以上只是这种做法众多缺点中的两个缺点,显然这种做法不安全.

2. 为此有了OAuth2.0协议.OAuth2.0协议的全程为Open Standard for Authentication.他的思路是在云冲印和Google之间添加一个授权层,授权层为云冲印颁发一个可以访问Google的AccessToken,而这个行为的授权需要Google照片的拥有者来完成.OAuth2.0有4种授权模式,我们以最复杂的授权码模式为例,来说明OAuth2.0的工作流程.

3. 在讲解OAutn2.0的工作流程之前,先来看几个专用名词.
a)Client:第三方应用程序,本文中又称"客户端"(client),在本文中是"云冲印"应用。
b)Resource server:资源服务器,即服务提供商存放用户生成的资源的服务器。它与认证服务器,可以是同一台服务器,也可以是不同的服务器。
c)User Agent:用户代理,本文中就是指浏览器。
d)Authorization server:认证服务器,即服务提供商专门用来处理认证的服务器。
e)Resource Owner:资源所有者,本文中又称"用户"(user)。

4. 下图是用户通过浏览器为客户端授权的过程.



   1)用户点击授权按钮
   2)Client服务器重定向请求到权限服务器,同时将Client相关信息以及请求授权的相关信息以及重定向服务器的地址(这里是指Client地址)作为参数发送给权限服务器.
   3)权限服务器返回授权页面,此页面需要用户点击确定
   4)用户确定授权
   5)权限服务器重定向到Client服务器并将授权码作为参数传递给Client服务器.
   6)Client服务器拿着授权码向权限服务器请求AccessToken
   7)权限服务器进行验证后返回AccessToken
   8]Client服务器返回授权成功页面.

5. 用户为Client服务器授予访问某个Resource Server的临时权限后,就可以直接使用Client了.即可以直接使用云冲印打印位于Google上的招聘了,这个过程,用户不需要感知了.因为他已经授予Client服务器服务Google服务器的权限了.过程如下图:




  1)用户访问Client服务器提供的需要访问Resource Server的应用.
  2)Client进行相关服务操作,这个过程需要访问Resource Server
  3)返回结果给Client服务器
  4)返回结果

  • 大小: 1.7 MB
  • 大小: 1.5 MB
0
1
分享到:
评论

相关推荐

    Spring Security OAuth2.0学习笔记.zip

    Spring Security OAuth2.0学习笔记 什么是认证、授权、会话。 Java Servlet为支持http会话做了哪些事儿。 基于session认证机制的运作流程。 基于token认证机制的运作流程。 理解Spring Security的工作原理,Spring ...

    阮一峰_理解OAuth 2.01

    一、应用场景为了理解OAuth的适用场合,让我举一个假设的例子 二、名词定义在详细讲解OAuth 2.0之前,需要了解几个专用名词 三、OAuth的思路OAut

    OAuth 2.0中文译本

    OAuth 2.0很可能是下一代的“用户验证和授权”标准,目前在国内还...为了弘扬“开放精神”,让业内的人更容易理解“开放平台”相关技术,进而长远地促进国内开放平台领域的发展,笔者特意将OAuth 2.0协议翻译成中文。

    OWIN实现OAuth 2.0 之客户端模式(Client Credential)

    换句话说,如果你的项目使用OWIN实现OAuth 2.0 之客户端模式,但是没有配置machineKey,也没有在认证服务中自定义认证。那么我就可以利用OWIN实现OAuth 2.0 之客户端模式的基本原理生成一个token,你会发现我这个...

    OAuth_2.0中文译本.rar

    OAuth 2.0 很可能是下一代的“用户验证和授权”标准,目前在国内还没有很靠谱 的技术资料。为了弘扬“开放精神”,让业内的人更容易理解“开放平台”相关技术, 进而长远地促进国内开放平台领域的发展,笔者特意将...

    《OAuth 2.0 入门指南:掌握授权码模式》这篇文章的demo示例源码

    这个示例源码旨在提供一个实际的、可操作的示范,让读者可以直观地理解和学习 OAuth 2.0 授权码模式的实现细节。 源码包括了设置授权服务器、配置客户端应用,以及实现授权码获取和使用的所有必要步骤。 此资源对于...

    Master OAuth 2.0

    OAuth 2.0工作机制的举例描述,非常适合你理解和掌握。

    oauth_2.0 协议中文版

    oauth 2.0 中文翻译 OAuth 2.0很可能是下一代的“用户验证和授权”...为了弘扬“开放精神”,让业内的人更容易理解“开放平台”相关技术,进而长远地促进国内开放平台领域的发展,笔者特意将OAuth 2.0协议翻译成中文。

    OAuth_2.0认证中文翻译版

    OAuth 2.0很可能是下一代的“用户验证和...为了弘扬“开放精神”,让业内的人更容易理解“开放平台”相关技术,进而长远地促进国内开放平台领域的发展,本人特意将OAuth 2.0协议中文版上传供大家分享。(非本人翻译)

    oauth2.0中文译本.doc

    OAuth 2.0很可能是下一代的“用户验证和授权”标准,目前在国内还没有...为了弘扬“开放精神”,让业内的人更容易理解“开放平台”相关技术,进而长远地促进国内开放平台领域的发展,笔者特意将OAuth 2.0协议翻译成中文

    基于 OAuth2.0 协议的跨域认证授权开发套件.zip

    文档生成工具可以自动生成代码注释文档,便于团队内外理解和使用项目代码。 API管理工具则方便开发者创建、测试、发布和维护API接口。 持续集成与持续部署(CI/CD): Jenkins、Travis CI、GitHub Actions等...

    Auth一站式提供OAuth 2.0的各种提供商。-Node.js开发

    该项目包含针对各种提供程序的OAuth 2.0实现,并帮助您理解以下OAuth 2.0流程:显示平台对话框获取访问令牌使用令牌获取用户详细信息在此示例代码存储库中实现的实际步骤:为各个平台创建重定向URL将用户重定向至...

    浅谈微信小程序登陆与Oauth

    理解OAuth 2.0 小程序官方文档 微信小程序之登录态维护(十一) 微信的登陆认证方式跟Oauth的授权码认证模式非常相似,接下来我大致讲解Oauth的三种常用模式以及与微信登陆认证的关联。 Oauth的三种常用模式 密码模式 ...

    6spring boot+security+oauth2 第三方登录1

    1.理解OAuth 2.0http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html2.github第三方登录h

    android新浪微博OAuth2认证demo

    OAuth2.0授权机制我在这里就不浪费口舌了,有很多大牛都发表过相关的文章解释OAuth2.0认证的流程。这个demo很简单,很容易给初学者理解,给一些初学者参考学习学习。

    MCloud - OAuth2 认证中心

    **OAuth2**认证流程可参考博客 [理解OAuth 2.0](http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html) ,此处不再赘述。 ## Features - **认证服务器** 使用Spring Security 结合 JWT Token 实现认证服务,...

    springboot-oauth2-jwt:带有数据库的Spring Boot 2.1.x OAuth2 JWT授权服务器(JPA,Hibernate,PostgreSQL,Liquibase)

    产品特点OAuth2.0授权服务器OAuth2.0资源服务器我们使用 我们使用 我们使用 我们使用来简化对应用程序流程的理解。 我们使用令牌RSA,已经可以生产了。 文件上传API(使用Oauth2资源服务器) 如何使用验证。 如何将...

    微信开发 网页授权获取用户基本信息

    微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友在使用这个的时候失败了或者无法理解其内容,希望我出个教程详细讲解一下,于是便有了这篇文章。 一、什么是...

    ScuffedAuth

    ScuffedAuth是我的学习项目,基于OAuth 2.0授权框架文档。 这并不意味着要准备好生产。 我正在编写它,就像其他任何businnes应用程序一样。 首先应该快速,轻松地进行授权申请,即使是以良好做法和可读性为代价。 ...

    前后端分离模式,基于Spring Cloud、Vue的考试系统.zip

    基于Spring Cloud、Vue的考试系统,使用Spring Security OAuth2.0做认证授权,实现用户、角色、菜单RDBC模式下的权限管理,支持客观题自动阅卷。主要涉及的技术栈有Spring Boot、Spring Cloud & 毕业设计是...

Global site tag (gtag.js) - Google Analytics