关于OAuth2.0的介绍,请看下面链接(讲的挺好的):

http://blog.csdn.net/seccloud/article/details/8192707

我的理解:

一共四个角色,A:Client(访问者),B:资源拥有者,C:权限控制平台,D:资源中心

访问流程:Client(访问者)向 资源拥有者索要 资源访问权限, 资源拥有者 给 Client(访问者)开个授权书,Client(访问者)拿着授权书到  权限控制平台 索要访问令牌,Client(访问者)获取令牌,凭令牌访问资源

打个不恰当比法:C 欠 A 一笔钱,A没时间去向C 讨债,于是A给B开个委托书让B去拿钱,C 看了委托书确认了A确实委托了B,也确认了B的身份,于是C给了B一把保险柜的钥匙,让B 自己去取钱。

以上两个例子,相信你己了解什么是OAuth2.0了吧。

关于SSO 理解

去年看了博客园某大神的大作之后,记下了笔记没留URL,现就对着笔记进行回顾下。

客人访问A站点,需要登录,于是跳转到SSO进入登录,backurl带上A站点的URL,当登录成功之后,跳回A站点,并给SSO的凭证与A站点的凭证。

客人从A站点跳转到B站点,B站点需要验证客人的身份,带上SSO的凭证到SSO进入验证,通过之后,给B站点发B站点的凭证。

一个逻辑:接入站点先判断是否有SSO的凭证,有则判断是否有接入站点凭证。若没有SSO的凭证,有接入站点凭证需重新登录。若有SSO的凭证,没有接入站点凭证,从SSO站点获取接入站点凭证。

现在的问题是怎么将这两者结合一起成为一个系统?!

OK大片来了,以下将模拟腾讯开放平台中的QQ授权登录(以下内容仅个人结合oauth2.0与sso业务逻辑想象出来,还未验证)。
 
现有两个子站点如A.com ,B.com ,还有个是统一登录平台(sso.com)
 
首先接入站点需要从sso.com中获取私钥,指定一个notify页面。
1,客人client访问A.com ,需要登录A.com网站,跳转到sso.com指定页面(如:/login),带上redirect_url就是a.com的URL。
2,在这个登录页上输入帐号及密码登录成功之后,sso.com 会向a.com  之前提交的nofity页面回发用户的票据及state(公钥)。
3,a.com  的notify页面接受到票据与公钥之后,将自己的私钥与公钥 按照简单的算法处理下,再MD5之后,一起发回 sso.com,sso.com拿到a.com的身份信息之后确认正确,再将Token发给a.com。
4,sso.com发送token之后,再跳转回a.com的页面(redirect_url)。
 
 
根据我的设想与实际操作腾讯单点登录, 登录成功之后,会有较长时间在那等待,就是在完成,发送票据、验证client身份、下发token 的过程。
 
 
【转载请标注,From http://www.cnblogs.com/jackicalSong/】 
以上逻辑未进行生产验证,仅一个思路,后期有时间,我会验证下。
 
 
 

OAuth2.0 在 SSO中的应用~的更多相关文章

  1. OAuth2.0和SSO授权的区别

    OAuth2.0和SSO授权   一.OAuth2.0授权协议 一种安全的登陆协议,用户提交的账户密码不提交到本APP,而是提交到授权服务器,待服务器确认后,返回本APP一个访问令牌,本APP即可用该 ...

  2. Spring Cloud OAuth2.0 微服务中配置 Jwt Token 签名/验证

    关于 Jwt Token 的签名与安全性前面已经做了几篇介绍,在 IdentityServer4 中定义了 Jwt Token 与 Reference Token 两种验证方式(https://www ...

  3. OAuth2.0和SSO授权

    一.OAuth2.0授权协议 一种安全的登陆协议,用户提交的账户密码不提交到本APP,而是提交到授权服务器,待服务器确认后,返回本APP一个访问令牌,本APP即可用该访问令牌访问资源服务器的资源.由于 ...

  4. oauth2.0实现sso单点登录的方式和相关代码

    SSO介绍 什么是SSO 百科:SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他 ...

  5. SSO [ OAuth2.0 ]

    1) SSO英文全称Single Sign On,单点登录. SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. 它包括可以将这次主要的登录映射到其他应用中用于同一个用户的 ...

  6. .NET Core中JWT+Auth2.0实现SSO,附完整源码(.NET6)

    一.简介 单点登录(SingleSignOn,SSO) 指的是在多个应用系统中,只需登录一次,就可以访问其他相互信任的应用系统. JWT Json Web Token,这里不详细描述,简单说是一种认证 ...

  7. iOS OAuth2.0认证和SSO授权

    OAuth2.0和SSO授权   一.OAuth2.0授权协议 一种安全的登陆协议,用户提交的账户密码不提交到本APP,而是提交到授权服务器,待服务器确认后,返回本APP一个访问令牌,本APP即可用该 ...

  8. Senparc.Weixin.MP SDK 微信公众平台开发教程(十二):OAuth2.0说明

    紧接上一篇<Senparc.Weixin.MP SDK 微信公众平台开发教程(十一):高级接口说明>,这里专讲OAuth2.0. 理解OAuth2.0 首先我们通过一张图片来了解一下OAu ...

  9. C# 网络编程之豆瓣OAuth2.0认证具体解释和遇到的各种问题及解决

            近期在帮人弄一个豆瓣API应用,在豆瓣的OAuth2.0认证过程中遇到了各种问题,同一时候自己须要一个个的尝试与解决,终于完毕了豆瓣API的訪问.作者这里就不再吐槽豆瓣的认证文档了,毕 ...

随机推荐

  1. 服务器×××上的MSDTC不可用解决办法

    MSDTC(分布式交易协调器),协调跨多个数据库.消息队列.文件系统等资源管理器的事务.该服务的进程名为Msdtc.exe,该进程调用系统Microsoft Personal Web Server和M ...

  2. ref 和 out

    两者都是按地址传递的,使用后都将改变原来的数值.很多人在论坛上解释说out是按数值传递,是错误的.简单的测试后可以知道out使用也能改变数值的,所以肯定是按照地址传递的.其次:rel可以把参数的数值传 ...

  3. IOS- 单例

    单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 1.单例模式的要点: 显然单例模式的要点有三个:一是某个类只能有一个实例: ...

  4. ajax鼠标滚动请求 或 手机往下拉请求

    Zepto(function($){ var url = $('.page-url').val(); var cur = false; var href_url = $('.page-url').at ...

  5. October 2nd 2016 Week 41st Sunday

    The road to success is lined with many tempting parking spaces. 通往成功的路边充斥着许多诱人的休息区. Exhausted, I thi ...

  6. xml配置文件

    xml文件的层级结构      configuration 配置  properties 属性     settings 设置     typeAliases 类型命名     typeHa ...

  7. echarts基本使用

    基本操作: 1,准备好需要渲染chart图的div层 <div id="org-data-percent" class="org-data-percent" ...

  8. gcc【数学几何】

    GCC Time Limit: 1000MS Memory limit: 65536K 题目描述 The GNU Compiler Collection (usually shortened to G ...

  9. POJ1699 HDU 1560 Best Sequence(AC自动机 最短路)

    曾写过迭代加深搜索的方法,现在使用在AC自动上跑最短路的方法 dp[i][j]表示状态为到节点i,模式串是否包含的状态为j的最短串的长度,则状态转移方程为: dp[nx][ny] = min(dp[x ...

  10. golang level

    exp = (currentLevel-1) * 501 02 503 1004 150startLevel = 1currentLevel = 2currentExp = 0