身份认证系统(三)什么是OAuth2

本文准备用最简单的语言告诉大家什么是OAuth2 ,OAuth2是干什么的。

我们有一个资源服务器,资源服务器中有一系列的用户数据。

现在有一个应用想想要获取我们的用户数据。

那么最简单的方法就是我们开发一个API。

可是某天来了个恶意应用,或者是我们不想给它数据的应用,我们就会造成数据的泄漏。

所以我们就需要对第三方的应用进行校验,比如最原始的方法是使用IP地址,如果是不认识的IP地址就不给他资源。

可是这种方案有两个严重的缺点:

1、当客户应用换了IP地址之后,我们也要同时维护更换IP地址。

2、当客户应用是分布式部署很多份的时候,我们就要为同一个用户维护很多份IP地址。

3、ip是可以伪装的。

这样无疑是繁琐麻烦、难以维护的。

所以一般业界的解决方案是给予客户应用一个“出入证”——专业称为访问令牌(Access Token)。如果来访问的客户应用带有合法的访问令牌,则可以给他数据,否则便拒绝。

那么Access Token哪里来的呢?我们一般是由一个授权服务器颁发的。每个允许其访问资源的客户应用都现在我们的系统中注册一个appkey,然后每次用这个appkey向我们的授权服务器申请Access Token。这样不论客户应用换不换ip、有多少ip,只要客户应用的appkey是唯一不变的就不用做任何修改,也不用担心ip伪装的问题。

到此为止我们其实还面临着一个问题,那就是当我们获取用户数据的时候,虽然我们允许第三方的客户应用获取用户数据,用户本人却不一定允许。比如,用户在我们系统里存储了图片、文档、视频等数据,用户只允许第三方应用获取他的文档,而不允许第三方应用获取他的图片和视频。所以在我们颁发给客户应用相关权限的Access Token的时候,需要经过用户的同意。

OAuth2.0本质上就是将这里的客户应用向授权服务器请求令牌与授权服务器颁发令牌的过程标准化了,根据这样一套标准与解决方案,我们就可以安全的让第三方应用访问存储在我们服务器上的用户数据了。

转:https://www.cnblogs.com/meibaorui/p/9182660.html

原文地址:https://www.cnblogs.com/panchanggui/p/11588557.html

时间: 2024-08-29 16:58:22

身份认证系统(三)什么是OAuth2的相关文章

身份认证系统(四)OAuth2运行流程

上一节介绍过什么是OAuth2,这节准备用生动的事例来告诉大家OAuth2运行的流程. 我们来想这样一个场景:假设我们有一个叫做万方网盘的服务是用来帮助用户存储论文文档的,我们向外提供了符合OAuth2标准的APi,可以让第三方程序获取到用户的论文.有一个第三方的程序可以调用我们平台的接口获取用户论文,来帮助用户投稿. 在OAuth中,我们管用户叫做资源拥有者(Resource Owner,RO),投稿应用叫做Client,万方网盘叫做资源服务(Resource Server,RS),昨天我们还

基于DDD + SD.Framework实现的统一身份认证系统

项目地址 http://git.oschina.net/lishilei0523/ShSoft.UAC 项目说明 本项目开发的目的有三: 1.作为一个使用SD.Framework框架开发的项目样板 2.探索基于ASP.NET MVC的前端架构 3.做一套统一身份认证系统 注意事项: 如果编译失败,请安装PostSharp-4.1.15.exe(项目根目录下或附件中有) 请先修改服务端AppService项目配置文件中连接字符串,数据库会自动生成 先运行服务端,再运行客户端 如果服务端运行失败,请

java统一身份认证系统

每天记录学习,每天会有好心情.*^_^* 最近了解了基于java的统一身份认证系统项目,在这个平台记录一下这个基于java的统一身份认证系统项目,方便以后再次使用或学习的时候能够及时的翻阅.在完成基于java的统一身份认证系统项目的时候,考虑了很多框架.最终决定选用SSM(MYECLIPSE),该框架具有极强的移植性,多平台性,便于操作性等优点.此框架能在MYECLIPSE开发工具中完美的编写和运行,基于java的统一身份认证系统为一个 后台项目.本文主要针对媒体传播类网站中数据的安全级别采用动

身份认证系统(一)单WEB应用的身份认证

身份认证技术,也就是所谓的登录功能,是现代WEB系统最常见的功能之一.本系列文章就试图为大家详细的介绍身份认证技术. Basic认证模式 Basic认证模式是较早被广泛应用的一种HTTP标准提供的认证模式.最常见的形式之一就是在url中直接写上用户名密码向服务器提供身份: http://user:[email protected]/index.html 在Basic模式之中,每次向服务器请求受保护资源的时候都要在url中带上明文或仅被Base64编码过的用户名密码.而且在这种模式下,如果我们要实

身份认证系统 OAuth2的四种模式

OAuth2标准为了应对不同的场景,设计了四种不同的标准模式. 1.授权码模式 授权码模式是四种模式中最繁琐也是最安全的一种模式. client向资源服务器请求资源,被重定向到授权服务器(AuthorizationServer) 浏览器向资源拥有者索要授权,之后将用户授权发送给授权服务器 授权服务器将授权码(AuthorizationCode)转经浏览器发送给client client拿着授权码向授权服务器索要访问令牌 授权服务器返回Access     Token和Refresh Token给

SSO单点登录统一身份认证系统

什么是单点登录 简单点说就是公司有A,B两个系统,我登录了A系统之后再跳转到B系统可以直接访问,而不需要再次登录B系统. 几种常见的单点登录实现方式 在讲解单点登录之前先讲解几个基本的概念: Cookie: Cookie是一段不超过4KB的小型文本数据,是保存在用户本地的,常见格式为: Expires属性:设置Cookie的生存期 Domain属性:指定了可以访问该 Cookie 的 Web 站点或域 比如图中的Domain:192.168.1.72这就表示只能只有1.72下的请求可以使用这个c

Django用户认证系统(三)组与权限

Django的权限系统很简单,它可以赋予users或groups中的users以权限. Django admin后台就使用了该权限系统,不过也可以用到你自己的代码中. User对象具有两个ManyToManyField字段,groups和user_permissions groups = models.ManyToManyField(Group, verbose_name=_('groups'), blank=True, help_text=_('The groups this user bel

Spring Security 之身份认证

Spring Security可以运行在不同的身份认证环境中,当我们推荐用户使用Spring Security进行身份认证但并不推荐集成到容器管理的身份认证中时,但当你集成到自己的身份认证系统时,它依然是支持的. 1. Spring Security中的身份认证是什么? 现在让我们考虑一下每个人都熟悉的标准身份认证场景: (1)用户打算使用用户名和密码登陆系统 (2)系统验证用户名和密码合法 (3)得到用户信息的上下文(角色等信息) (4)为用户建立一个安全上下文 (5)用户接下来可能执行一些权

一种基于主板BIOS的身份认证方案及实现

一.BIOS简介 BIOS是只读存储器基本输入/输出系统,它是被固化到计算机中的一组程序,为计算机提供最低级的.最直接的硬件控制,在计算机系统中起着非常重要的作用.BIOS是硬件与软件程序之间的接口,负责解决硬件的即时需求,并按软件对硬件的操作要求具体执行.BIOS的功能包括自检及初始化.硬件中断处理.程序服务处理. 1. 自检及初始化 这个部分的功能是启动计算机,包括三个部分,第一个部分是用于计算机刚接通电源时对硬件部分的检测,也叫做加电自检(POST),功能是检查计算机是否良好.第二个部分是