1. 介绍
在传统的客户端-服务器认证模式中,当客户端请求访问服务器上受限制(受保护)的资源时,要通过服务器检查他是否有资源拥有着的证书来鉴定。为了让第三方应用能够访问受保护的资源,资源拥有者将他的证书分享给第三方应用,这就产生了如下几个问题和局限:
o 第三方应用必须保存资源拥有者的证书以备将来所用,典型的是一段明文密码。
o 服务器必须提供密码验证支持,尽管密码验证一直存在安全漏洞。
o 第三方应用获得了超出访问资源拥有者的保护资源,使得资源拥有者无力对资源的访问时段或对资源的子集访问进行 限制。
o 资源拥有者无法吊销单个第三方应用的访问权限,除非他吊销所有应用的访问权限,并修改密码。
o 危害任何第三方应用的结果就会危害终端用户的密码和通过该密码保护的所有数据。
OAuth 通过是引进一个认证层并将客户端和资源拥有者的角色分离来解决上述问题。在OAuth中,客户端请求访问由资源拥有者掌控并由资源服务器托管的资源,并产生一套不同于资源拥有者的证书。
不是用资源拥有者的证书来访问受保护资源,客户端获得一个访问令牌——一段用来表明特定范围,生命周期,以及其他访问属性的字符串。访问令牌是通过认证服务器在经过资源拥有者同意后发布给第三方客户端的。客服端通过访问令牌访问经资源服务器托管的是受保护资源。
例如,一个终端用户(资源拥有者)可以授权一个打印服务(客户端)访问她放在分享服务器(资源服务器)上的受保护图片(资源)。不用将她的用户名和密码分享给打印服务,而是直接在一个分享服务器所信任的服务器(认证服务器)上做认证,该服务器分配给打印服务一组特定委托的证书(访问令牌)。
这份声明是设计在http上的应用,OAuth在非http协议上的应用超出本声明的范围。
1.1. 角色
OAuth定义了四个角色:
资源拥有者
能够对的受保护资源的访问做授权的实体。当资源拥有者是一个人的时候,它对指的是一个终端用户。
资源服务器
对受保护资源进行托管的服务器,能够接受和响应使用访问令牌访问受保护资源的请求。
客服端
认证服务器
该服务器在客服端经资源拥有者鉴定成功并获得授权后给其发放访问令牌。
分享到:
相关推荐
RFC 6749 OAuth 2.0 授权框架 (正式版中文翻译,PDF)
Spring Security框架 oAuth2.0协议标准,实现认证服务器和资源服务器,并实现oAuth2.0自定义登陆和授权界面,Access_token和Refresh_token过期时间的设置,以及数据库表结构建表语句,参考博客能更好的学习和了解,...
含有详细文档+开放Demo实例。使用C#语言开发,MVC框架调用新浪微博第三方登录OAuth2.0接口。 详细介绍相关开发步骤信息。
OAuth2.0协议是当前开放流行的认证协议,本课程使用流行的Spring Security认证框架及OAuth2.0协议实现单体及分布式系统的认证授权技术解决方案。
oauth2.0认证例子,使用Mysql数据库,重写IdentityUser,可自定义用户权限。 可做EF框架之CodeFirst开发模式小例子参考,修改web.config连接字符串,运行程序可生成数据库及表结构。
一个轻量级 Java 权限认证框架,让鉴权变得简单、优雅!...Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题
提出了基于差异流量分析的脆弱性应用程序编程接口(API)识别方法和基于授权认证网络流量监测的账号劫持攻击验证方法,设计并实现了面向OAuth2.0授权服务API的账号劫持攻击威胁检测框架OScan。通过对Alexa排名前10 ...
spring cloud + vue + oAuth2.0全家桶实战,前后端分离模拟商城,完整的购物流程、后端运营平台,可以实现快速搭建企业级微服务项目。支持微信登录等三方登录。 功能点: 模拟商城,完整的购物流程、后端运营平台...
基于springcloud+vue+oAuth2.0全家桶实战并实现前后端分离模拟商城.zip 功能点: 模拟商城,完整的购物流程、后端运营平台对前端业务的支撑,和对项目的运维,有各项的监控指标和运维指标。 技术点: 核心技术为...
一个轻量级 Java 权限认证框架,让鉴权变得简单、优雅!...—— 内置三种单点登录模式:无论是否跨域、是否共享Redis,都可以搞定OAuth2.0认证 —— 轻松搭建 OAuth2.0 服务,支持openid模式二级认证
Spring Security框架 oAuth2.0协议标准,实现认证服务器和资源服务器,并实现oAuth2.0自定义登陆和授权界面,Access_token和Refresh_token过期时间的设置,以及数据库表结构建表语句,参考博客能更好的学习和了解,...
这章准备一堆 api ,后面基于这些 api 做 认证授权 主要内容 处理静态资源和异常 配置拦截器 文件上传下载 异步请求开发 Restful API 开发常用辅助框架 生成服务文档 mock : 伪造服务 GET /user (用户分页查询)...
#微服务框架认证授权中心 项目采用spring cloud、oauth2、spring security # 依赖环境 JDK8、 Maven、 Mysql、 Redis 、nacos 注册中心采用阿里巴巴 nacos 缓存使用的是redis oauth2数据存储在数据库中 ...
跨平台开发工具如Xamarin、React Native和Flutter,让开发者使用一种语言或框架编写可以在多个操作系统上运行的应用程序。 文档编写与API管理: 文档生成工具可以自动生成代码注释文档,便于团队内外理解和使用...
在线资料Sa-Token 介绍Sa-Token是一个轻量级Java权限认证框架,主要解决:登录认证、权限认证、Session会话、单点登录、OAuth2.0、微服务网关鉴权 等一系列权限相关问题框架集成简单、开箱即用、API设计清爽,通过Sa...
Spring Cloud 实战项目 项目介绍 ... 安全框架:Spring Security Spring Cloud Oauth2 分布式任务调度:elastic-job 持久层框架:MyBatis、通用Mapper4、Mybatis_PageHelper 数据库连接池:Alibab
OAuth2.0认证 —— 基于RFC-6749标准编写,OAuth2.0标准流程的授权认证,支持openid模式 二级认证 —— 在已登录的基础上再次认证,保证安全性 Basic认证 —— 一行代码接入 Http Basic 认证 ......
一个springboot为框架的security oauth2应用例子,同时集成了swagger2的 restful API查看页面,druid数据源监控, mybatis自动生成和分页插件,远程资源服务器的认证和授权,也可以去github下载 ...
然后对开放平台中Oauth认证机制进行了分析和讨论,如对Oauth2.0认证体系、认证角色第三方应用开发者、普通用户、鉴权服务器、资源服务器进行了功能分析,并分析了它们之间的相互信任模型。最后以人人网 Oauth2.0...
sa-token是一个轻量级Java权限认证框架,主要解决:登录认证,权限认证,会话会话,单点登录,OAuth2.0等长度权限相关问题框架针对踢人下线,自动续签,前后台分离,分散会话……等常见业务进行N多适应,通过sa-...