`
peter.e.king
  • 浏览: 3021 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

OAuth 2.0 认证框架介绍

 
阅读更多

1.  介绍

在传统的客户端-服务器认证模式中,当客户端请求访问服务器上受限制(受保护)的资源时,要通过服务器检查他是否有资源拥有着的证书来鉴定。为了让第三方应用能够访问受保护的资源,资源拥有者将他的证书分享给第三方应用,这就产生了如下几个问题和局限:

第三方应用必须保存资源拥有者的证书以备将来所用,典型的是一段明文密码。

o 服务器必须提供密码验证支持,尽管密码验证一直存在安全漏洞。

第三方应用获得了超出访问资源拥有者的保护资源,使得资源拥有者无力对资源的访问时段或对资源的子集访问进行    限制。

资源拥有者无法吊销单个第三方应用的访问权限,除非他吊销所有应用的访问权限,并修改密码。

o 危害任何第三方应用的结果就会危害终端用户的密码和通过该密码保护的所有数据。

 

OAuth 通过是引进一个认证层并将客户端资源拥有者的角色分离来解决上述问题。在OAuth中,客户端请求访问由资源拥有者掌控并由资源服务器托管的资源,并产生一套不同于资源拥有者的证书。

 

不是用资源拥有者的证书来访问受保护资源,客户端获得一个访问令牌——一段用来表明特定范围,生命周期,以及其他访问属性的字符串。访问令牌是通过认证服务器在经过资源拥有者同意后发布给第三方客户端的。客服端通过访问令牌访问经资源服务器托管的是受保护资源。

 

例如,一个终端用户资源拥有者)可以授权一个打印服务客户端)访问她放在分享服务器资源服务器)上的受保护图片资源)。不用将她的用户名和密码分享给打印服务,而是直接在一个分享服务器所信任的服务器认证服务器)上做认证,该服务器分配给打印服务一组特定委托的证书(访问令牌)。

 

这份声明是设计在http上的应用,OAuth在非http协议上的应用超出本声明的范围。

 


1.1. 角色

 

OAuth定义了四个角色:

 

资源拥有者

能够对的受保护资源的访问做授权的实体。当资源拥有者一个人的时候,它对指的是一个终端用户

资源服务器

对受保护资源进行托管的服务器,能够接受和响应使用访问令牌访问受保护资源的请求。

客服端

 

认证服务器

该服务器在客服端经资源拥有者鉴定成功并获得授权后给其发放访问令牌。

 

 

分享到:
评论

相关推荐

    OAuth 2.0授权框架.pdf

    OAuth 2.0授权框架定义了四种授权许可类型,它们分别是: 1. 授权码许可(Authorization Code) 2. 隐式许可(Implicit) 3. 资源所有者密码凭证许可(Resource Owner Password Credentials) 4. 客户端凭证许可...

    webapi基于Owin中间件的oauth2.0身份认证

    OAuth2.0是一种授权框架,广泛应用于Web API的身份验证和授权。它允许第三方应用在用户授权的情况下,访问该用户的特定资源,而无需获取用户的用户名和密码。OAuth2.0的核心是将认证和授权分离,提高了安全性,同时...

    完整Oauth 2.0实现实例

    - `OAuth2Authentication` 代表一个认证的 OAuth 2.0 请求。 - `AccessToken` 和 `RefreshToken` 分别表示访问令牌和刷新令牌。 通过这个完整的 OAuth 2.0 实例,你可以了解到如何在 Java 环境下实现这一授权框架...

    spring security oauth2.0 (讲义+代码)

    总而言之,通过学习Spring Security OAuth2.0,开发者能够掌握一套完整的认证授权解决方案,从而为Web应用和API提供安全的访问控制。这个讲义结合代码的实践学习将帮助你深入理解并熟练运用这些概念。

    cas3.5.0集成oauth2.0协议

    OAuth2.0是一种授权框架,允许第三方应用在用户许可的情况下,访问特定资源。它主要用于安全地实现用户数据的共享,比如社交媒体登录、云存储服务等。OAuth2.0的核心是将用户的授权过程与实际的服务提供者分离,这样...

    API接口设计 OAuth2.0认证

    API接口设计OAuth2.0认证是一种广泛应用于现代Web服务的安全授权框架,用于保护资源服务器上的敏感数据。OAuth2.0允许第三方应用在用户许可的情况下访问其存储在特定服务提供商(如Google、Facebook)上的信息,而...

    Oauth2.0 协议 服务端 客户端 thinkphp5.0

    总而言之,将OAuth2.0整合到ThinkPHP5.0框架中,涉及服务端和客户端的交互,包括用户授权、令牌请求和资源访问等多个环节。理解并掌握OAuth2.0的核心原理和流程,对于开发安全、可扩展的Web应用至关重要。在这个小...

    微信oauth2.0授权

    OAuth2.0是一个授权框架,允许第三方应用在用户许可的情况下访问其存储在特定服务提供商(如微信)上的资源。这个框架提供了安全的身份验证和授权机制,使得开发者无需直接处理用户的登录凭据。 二、微信OAuth2.0...

    视频配套笔记_Spring Security OAuth2.0认证授权_v1.1.rar

    这个压缩包文件"视频配套笔记_Spring Security OAuth2.0认证授权_v1.1.rar"包含了对这一主题的详细解释和实例代码,旨在帮助开发者深入理解和应用OAuth2.0与Spring Security的集成。 首先,Spring Security是Spring...

    基于Django2.1.2的OAuth2.0授权登录

    在Django框架中实现OAuth2.0授权登录,可以让开发者轻松地为他们的Web应用添加安全的第三方登录功能。以下是关于这个主题的一些关键知识点: 1. **Django框架基础**: Django是Python的一个高级Web框架,它遵循MVT...

    java实现oauth2.0服务端+客户端(含JWT)

    - **OAuth2AuthenticationProvider**:处理OAuth 2.0认证的提供者,用于验证令牌的有效性。 - **OAuth2AccessTokenGenerator**:生成JWT访问令牌,包括设置有效时间、签发者等信息。 最后,测试和部署服务端和...

    c# OAuth2.0

    OAuth2.0是一种授权框架,广泛应用于Web应用和API接口的安全访问控制,允许第三方应用在用户许可的情况下,访问其存储在服务提供商上的特定资源。在C#开发环境中,我们可以使用OAuth2.0来实现社交平台如QQ和新浪的...

    spring cloud + vue + oAuth2.0全家桶实战

    Spring Cloud作为Java领域的微服务治理框架,Vue.js作为前端的轻量级库,以及OAuth2.0作为授权框架,三者结合可以构建出高效、安全、易维护的前后端分离系统。本实战教程将详细介绍如何利用这些技术打造一个模拟商城...

    OAuth2.0最简向导.pdf

    课程讲义所提及的视频资源和文章可以作为学习OAuth 2.0的入门材料,帮助开发者从基础开始深入理解并运用OAuth 2.0授权框架。通过这些材料,开发者可以学习如何为应用程序实现授权流程,以及如何正确使用AccessToken...

    spring security + oauth 2.0 实现单点登录、认证授权

    Spring Security和OAuth 2.0是两个在Web应用安全领域广泛应用的框架,它们结合使用可以构建强大的单点登录(SSO)和认证授权系统。在这个系统中,`xp-sso-server`代表了认证服务器,而`xp-sso-client-a`和`xp-sso-...

    OAuth2.0 使用到的jar包

    OAuth2.0是一种广泛应用于各种在线服务的授权框架,它允许第三方应用安全地访问用户的受保护资源,而无需用户直接共享他们的登录凭证。在Java环境中实现OAuth2.0,通常会依赖于一些特定的jar包。这些jar包包含了处理...

    Jwt.zip_jwt_oauth2.0_oauth2.0 加解密_php解密工具

    OAuth 2.0 是一个授权框架,它允许第三方应用在用户许可的情况下访问其私有资源。OAuth 2.0 主要用于 API 的身份验证和授权,如 Google、Facebook 和 GitHub 等大型服务提供商广泛使用它来管理用户授权。 在 OAuth ...

    Java的oauth2.0 服务端与客户端的实现(源码)

    OAuth 2.0 是一个授权框架,用于安全地允许第三方应用访问用户的数据,而无需共享用户的登录凭据。在Java中实现OAuth 2.0,我们可以利用Spring Security OAuth2库,它提供了服务端(Authorization Server)和客户端...

    springboot OAuth2.0-demo

    **OAuth2.0简介** OAuth2.0 是一个授权框架,允许第...同时,也可以作为模板,为自己的项目添加OAuth2.0认证功能。在实际开发中,还可以考虑添加刷新令牌功能,以及更复杂的权限控制策略,以适应不同业务场景的需求。

    springboot集成oauth2.0

    SpringBoot集成OAuth2.0是将流行的OAuth2.0安全框架与SpringBoot应用程序相结合的过程,以便为API和Web应用提供安全的访问控制。OAuth2.0是一个授权框架,允许第三方应用在用户授权的情况下访问其受保护的资源,而...

Global site tag (gtag.js) - Google Analytics