OAuth2.0安全设计之Authorization Code】的更多相关文章

OAuth 2.0 有 4 种认证流程: 授权码模式(authorization code) 简化模式(implicit) 密码模式(resource owner password credentials) 客户端模式(client credentials) 下面以微信为例介绍最常见的也是最安全的 Authorization Code认证流程. 一.授权流程说明 微信OAuth2.0授权登录让微信用户使用微信身份安全登录第三方应用或网站,在微信用户授权登录已接入微信OAuth2.0的第三方应用后…
RFC 6749 - The OAuth 2.0 Authorization Framework https://tools.ietf.org/html/rfc6749 The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestr…
一.OAuth2.0 1.OAuth2.0概念 OAuth2.0(Open Authorization)是一个开放授权协议:第三方应用不需要接触到用户的账户信息(如用户名密码),通过用户的授权访问用户资源 OAuth的步骤一般如下: 1.客户端要求用户给予授权2.用户同意给予授权3.根据上一步获得的授权,向认证服务器请求令牌(token)4.认证服务器对授权进行认证,确认无误后发放令牌5.客户端使用令牌向资源服务器请求资源6.资源服务器使用令牌向认证服务器确认令牌的正确性,确认无误后提供资源 该…
OAuth是一个开放协议,允许用户让第三方应用以安全且标准的方式获取该用户在某一网站上存储的私密资源(如用户个人信息.照片.视频.联系人列表),而无须将用户名和密码提供给第三方应用.本文将详细介绍OAuth协议以及在微信里的具体实现. OAuth2.0协议介绍 OAuth2.0是OAuth协议的下一版本,但不向后兼容OAuth 1.0. OAuth 2.0关注客户端开发者的简易性,同时为Web应用,桌面应用和手机,和起居室设备提供专门的认证流程. OAuth2.0允许用户提供一个令牌,而不是用户…
转自:http://www.cuiyongzhi.com/post/78.html 好长时间没有写文章了,主要是最近的工作和生活上的事情比较多而且繁琐,其实到现在我依然还是感觉有些迷茫,最后还是决定静下心来坚持一开始的选择,继续我们的微信系列文章的后续更新,也希望在自己有时间的时候能把更多的内容呈现给大家,前面一系列的文章讲述了很多微信开发相关的基础知识点 [微信系列文章],那么从这一篇开始将讲述微信较深一层次或者说在产品应用中时刻会用到的一些技术点,那么下面就让我们进入正题吧,这一篇我要讲述的…
写在前面: 在前一篇博客<OAuth2.0 原理简介>中我们已经了解了OAuth2.0的原理以及它是如何工作的,那么本篇我们将来聊一聊OAuth的一种授权许可方式:授权码(Authorization Code) 什么是Authorization Code ? 简单来说授权码就是的在第三方应用程序请求Authrization Server来获取AccessToken之前的预先校验,增加了获取token的安全性.比如你吭哧吭哧写了一天的代码,急于回家吃上一口媳妇做的热饭.当你走到小区门口的时候你需…
要实现OAuth服务端,就得先理解客户端的调用流程,服务提供商实现可能也有些区别,实现OAuth服务端的方式很多,具体可能看 http://oauth.net/code/ 各语言的实现有(我使用了Apache Oltu): Java Apache Oltu Spring Security for OAuth Apis Authorization Server (v2-31) Restlet Framework (draft 30) Apache CXF NodeJS NodeJS OAuth 2…
Authorization Code 方式适用于有自己的服务器的应用.之所以叫这个名字,是因为流程中引入了一个叫做 authorization code 的东西.这个东西是一个一次性的临时凭证,用来换取 access token 和 refresh token. 鉴权服务器提供了一个类似这样的接口: https://www.xxx.com/exchange?code=&client_id=&client_secret= 需要传入 code.client_id 以及 client_secre…
统一登录是个很多应用系统都要考虑的问题,多个项目的话最好前期进行统一设计,否则后面改造兼容很麻烦: cas认证的方式:新公司都是老项目,用的是cas认证的方式,比较重而且依赖较多,winform的项目也未集成进来,用户基础数据如组织机构权限等也未维护进来:其实就是cas登录后拿到usercode,然后去子系统映射相应usercode的用户的组织机构,权限信息, 缺点较多,暂不讨论: token验证的方式:上家公司采用的方式,用的是基础数据平台统一登录(简称登录服务器),生成token,随url或…
写在前面 前几天看了园友的一篇文章被广泛使用的OAuth2.0的密码模式已经废了,放弃吧 被再次提起: Implicit Flow Password Grant,均已被标记为Legacy,且OAuth2.1里面已经删除了,目前OAuth2.1只剩三种flow: Authorization Code+ PKCE Client Credentials Device Code 作为完美踩坑Implicit 和 Password 两种flow的人,有点感慨,特来发表下自己的愚见: 并带着以下问题: 在S…
参与者列表: (1) Third-party application:第三方应用程序,又称客户端(client),如:"云冲印".社交应用. (2)HTTP service:HTTP服务提供商,如:百度网盘.腾讯. (3)Resource Owner:资源所有者,如:网盘用户.QQ用户(user). (4)User Agent:用户代理,浏览器. (5)Authorization server:认证服务器,即服务提供商专门用来处理认证的服务器. (6)Resource server:资…
本文转自:http://www.cnblogs.com/highend/archive/2012/07/06/oautn2_authorization_code.html I:OAuth 2.0 开发前期准备 天上不会自然掉馅饼让你轻松地去访问到人家资源服务器里面的用户数据资源,所以你需要做的前期开发准备工作就是把AppKey, AppSecret取到手 新浪获取传送门,腾讯获取传送门 这里说一下,在申请AppKey和AppSecret的过程中,新浪和腾讯的申请做法是有区别的. 在新浪微博的Ap…
之前已经简单实现了OAUTH2的授权码模式(Authorization Code),但是基于JAVA的,今天花了点时间调试了OWIN的实现,基本就把基于OWIN的OAUHT2的四种模式实现完了.官方推荐的.NET 包有 .NET DotNetOpenAuth Thinktecture IdentityServer 现Katana已经不更新了,新的版本是已经是asp.net core 1.0的一部分,实现OAUTH2好的选择可以考虑使用新版或IdentityServer3对应asp.net cor…
一.前言 昨天小组开了个会,让我今天实现一个微信网页授权的功能,可以让用户在授权之后无需再次登录既可进入用户授权界面.在这之前我也从没接触过微信公众号开发之类的,也不知道公众号后台是啥样子的,自己所在的小组也没有自己的认证公众号,就在这种情况下用一天的实现微信网页授权的功能. 二.准备工作 1.一个怎样的项目 上面也说了我所在的小组没有自己的认证公众号(普通申请的公众号是不会开放高级接口的)也就说自己申请的公众号是无法实现这类功能的.还有一点是我们所要实现的这个微信网页授权并不是针对某个公众号的…
I:OAuth 2.0 开发前期准备 天上不会自然掉馅饼让你轻松地去访问到人家资源服务器里面的用户数据资源,所以你需要做的前期开发准备工作就是把AppKey, AppSecret取到手 新浪获取传送门 ,腾讯获取传送门 这里说一下,在申请AppKey和AppSecret的过程中,新浪和腾讯的申请做法是有区别的. 在新浪微博的AppKey,AppSecret申请时会验证你是否拥有域名的所有权  而腾讯在这一块上面则没有这个要求! PS:申请成为开放平台开发者时需要上传身份证电子文件..... II…
asp.net权限认证系列 asp.net权限认证:Forms认证 asp.net权限认证:HTTP基本认证(http basic) asp.net权限认证:Windows认证 asp.net权限认证:摘要认证(digest authentication) asp.net权限认证:OWIN实现OAuth 2.0 之客户端模式(Client Credential) asp.net权限认证:OWIN实现OAuth 2.0 之密码模式(Resource Owner Password Credentia…
背景: 最近在调用对方提供的oauth2.0接口的时候,返回code在URL显示,但是会影响到本系统调用其他的菜单项的操作,所以想把返回的code值去掉. 解决办法:     想了各种解决办法,目前把自己解决办法的经过介绍给大家,有些办法存在弊端,但是最终我还是使用了一个影响几乎不大的办法,供大家学习参考! 方法一: 本人首先想到的是在源头把code去掉,就是在后端获取到code,accessToken,refreshToke等参数之后,把返回的URL地址修改掉,可是发现这个办法有点难,因为oa…
目录 前言 OAuth2.0简介 授权模式 (SimpleSSO示例) 使用Microsoft.Owin.Security.SimpleSSO模拟OpenID认证 通过authorization code授权模式申请令牌 通过implicit授权模式申请令牌 通过password模式申请令牌 通过client credentials模式申请令牌 后话 前言 之前有分享这个项目源码及简介,不过因为文字讲解太少,被和谐了.我重新总结下:   源码:https://github.com/zhoufei…
不吐不快 因为项目需求开始接触OAuth2.0授权协议.断断续续接触了有两周左右的时间.不得不吐槽的,依然是自己的学习习惯问题,总是着急想了解一切,习惯性地钻牛角尖去理解小的细节,而不是从宏观上去掌握,或者说先用起来(少年,一辈子辣么长,你这么着急合适吗?).好在前人们已经做好了很好的demo,我自己照着抄一抄也就理解了大概如何用,依旧手残党,依旧敲不出好代码.忏悔… WHAT? 项目之中实际使用OAuth2.0实现是用的Spring Security OAuth2.0,一套基于Spring S…
1. 引言 如果你开车去酒店赴宴,你经常会苦于找不到停车位而耽误很多时间.是否有好办法可以避免这个问题呢?有的,听说有一些豪车的车主就不担心这个问题.豪车一般配备两种钥匙:主钥匙和泊车钥匙.当你到酒店后,只需要将泊车钥匙交给服务生,停车的事情就由服务生去处理.与主钥匙相比,这种泊车钥匙的使用功能是受限制的:它只能启动发动机并让车行驶一段有限的距离,可以锁车,但无法打开后备箱,无法使用车内其他设备.这里就体现了一种简单的"开放授权"思想:通过一把泊车钥匙,车主便能将汽车的部分使用功能(如…
OAuth2.0简单笔记(四种授权模式) 金天:坚持写东西,不是一件容易的事,换句话说其实坚持本身都不是一件容易的事.如果学习有捷径,那就是不断实践,不断积累.写笔记,其实是给自己看的,是体现积累的一种方式,要坚持. OAuth2.0已经大行其道,本文仅仅作为个人备忘记录. 作为OAuth2.0客户端,需要注意一下几点: 1. OAuth2.0 Server Side支持几种授权方式 2. 作为用户OAuth2.0的客户端, 你打算使用那种授权方式 一直提倡看官方文档一手文档,如果想对OAuth…
                一.先来一个讲TCP.UDP和HTTP关系的 1.TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中有TCP协议与UDP协议. 在应用层有FTP.HTTP.TELNET.SMTP.DNS等协议. 因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议. 2.HTTP协议是建立在请求/响应模型上的.首先由客户建立一条与服务器的TCP链接,…
OAuth2.0说明文档 1.OAuth 2.0 简介 OAuth为应用提供了一种访问受保护资源的方法.在应用访问受保护资源之前,它必须先从资源拥有者处获取授权(访问许可),然后用访问许可交换访问令牌(代表许可的作用域.持续时间和其它属性).应用通过向资源服务器出示访问令牌来访问受保护资源. 下图中的名词说明 Resource Owner:用户 User-Agent:浏览器 Client:应用服务器 Authorization Server:认证服务器(用户信息存放服务的认证服务器) Resou…
一.什么是OAuth2.0官方网站:http://oauth.net/ http://oauth.net/2/ 权威定义:OAuth is An open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications. OAuth是一个开放协议,允许用户让第三方应用以安全且标准的方式获取该用户在某一网站.移动或桌面应用上存储的私密的资…
目录: 1.功能描述 2.客户端的授权模式 3.授权模式认证流程 4.代码实现 1.功能描述 OAuth在"客户端"与"服务提供商"之间,设置了一个授权层(authorization layer)."客户端"不能直接登录"服务提供商",只能登录授权层,以此将用户与客户端区分开来. "客户端"登录授权层所用的令牌(token),与用户的密码不同.用户可以在登录的时候,指定授权层令牌的权限范围和有效期. 2.客…
前言 在上一篇中实现了resource owner password credentials和client credentials模式:http://www.cnblogs.com/skig/p/6079457.html ,而这篇介绍实现AuthorizationCode模式. OAuth2.0授权框架文档说明参考:https://tools.ietf.org/html/rfc6749 : ASP.NET Core开发OAuth2的项目使用了IdentityServer4,参考:https://…
Microsoft.Owin.Security.OAuth搭建OAuth2.0授权服务端 目录 前言 OAuth2.0简介 授权模式 (SimpleSSO示例) 使用Microsoft.Owin.Security.SimpleSSO模拟OpenID认证 通过authorization code授权模式申请令牌 通过implicit授权模式申请令牌 通过password模式申请令牌 通过client credentials模式申请令牌 后话 前言 之前有分享这个项目源码及简介,不过因为文字讲解太少…
微信公众平台开发 OAuth2.0网页授权认证 网页授权获取用户基本信息 作者:方倍工作室 微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友在使用这个的时候失败了或者无法理解其内容,希望我出个教程详细讲解一下,于是便有了这篇文章. 一.什么是OAuth2.0 官方网站:http://oauth.net/   http://oauth.net/2/ 权威定义:OAuth is An open protocol to allow secure…
在登陆一些网站的时候,可以选择登陆方式为第三方登陆,例如微博登陆,以爱奇艺为例,进入首页,点击 ”登陆“,会弹出登录框: 除了本站登陆外,还可以选择其他第三方登陆,比如微博登陆.QQ 登陆.微信登陆等. 选择微博登陆后,爱奇艺会向用户申请授权用于微博登陆(当用户已经登陆了微博时会直接申请授权,当用户没有登陆时会提示用户登陆微博): 此时提示窗口的 url 为:https://api.weibo.com/oauth2/authorize?scope=&redirect_uri=http%3A%2F…
标题还是一如既往的难取. 我认为对于一个普遍问题,必有对应的一个简洁优美的解决方案.当然这也许只是我的一厢情愿,因为根据宇宙法则,所有事物总归趋于混沌,而OAuth协议就是混沌中的产物,不管是1.0.1.0a还是2.0,单看版本号就让人神伤. 对接过各类开放平台的朋友对OAuth应该不会陌生.当年我小试了下淘宝API,各种token.key.secret.code.id,让我眼花缭乱,不明所以,虽然最终调通,但那种照猫画虎的感觉颇不好受.最近公司计划,开放接口的授权协议从1.0升到2.0,这个任…