关于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. codeforces 492B. Vanya and Lanterns 解题报告

    题目链接:http://codeforces.com/problemset/problem/492/B #include <cstdio> #include <cstdlib> ...

  2. 用原生DOM 遍历页面节点

    代码丢失,直接上图:

  3. Silverlight 动画性能

    通过几个配置可以提高动画性能: Desired Frame Rate 在WEB项目中配置: <div id="silverlightControlHost"> < ...

  4. 最牛逼android上的图表库MpChart(一) 介绍篇

    最牛逼android上的图表库MpChart一 介绍篇 MpChart优点 MpChart是什么 MpChart支持哪些图表 MpChart效果如何 最牛逼android上的图表库MpChart(一) ...

  5. 【leetcode】Largest Number ★

    Given a list of non negative integers, arrange them such that they form the largest number. For exam ...

  6. 【leetcode】Binary Tree Level Order Traversal I & II

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...

  7. objective-c可变数组

     1 #pragma mark ---------------可变数组-----------------  2 //        可以在数组里面进行增删改的操作  3 //  4 //        ...

  8. supersr--NSURLSessionConfiguration-下载进度

    ////  ViewController.m//  下载进度 // //  Created by Super on 14/7/4. //  Copyright (c) 2014年 iOS. All r ...

  9. R语言入门小练习

    要求:模拟产生统计专业同学的名单(学号区分),记录数学,线代,英语三科成绩 > num <- seq(1513032001, 15130320100)                 #模 ...

  10. jq点击和鼠标移上效果以及一个等号"=" 二个等号"==" 三个等号"===" 的区别

    <body> <div class="a" bs='1' style="width:100px; height:30px; border:1px sol ...