关于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. K3安装记录

    安装的某些客户端没有客户端管理工具,测试问题所在 K3安装目录选择到D盘就可以,它自动生成kingdee\k3路径

  2. codeforces 499B.Lecture 解题报告

    题目链接:http://codeforces.com/problemset/problem/499/B 题目意思:给出两种语言下 m 个单词表(word1, word2)的一一对应,以及 profes ...

  3. 【python】Head First Python(五)

    无聊,看看<Head First Python>打发一下时间.感觉这本书很一般,可以无聊的时候翻翻.每一章页数很多,但都没讲什么东西. 先看第五章.记录一下知识点: f.readline( ...

  4. 【linux】linux脚本中#!/bin/sh的含义

    来源:百度知道 #! /bin/sh 是指此脚本使用,/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径.

  5. IOS-UIIamge初始化的几种方法的比较

    一.imageNamed——方法介绍imageNamed:是UIImage的一个类方法,它做的事情比我们看到的要稍微多一些.它的加载流程如 下:1.系统回去检查系统缓存中是否存在该名字的图像,如果存在 ...

  6. [Android Pro] 临时关闭selinux模式 setenforce 0

    setenforce 0 设置SELinux 成为permissive模式 临时关闭selinux的

  7. mysql 查看存储引擎的状态 show engine innodb status 详解

    首先,让我们来了解一下 SHOW INNODB STATUS 输出的基础,它打印了很多关于 InnoDB 内部性能相关的计数器.统计.事务处理信息等.在 MySQL 5 中,InnoDB 的性能统计结 ...

  8. Centos以rpm方式进行安装MySql

    安装过很多次mysql了,却没好好总结过,每次安装完了都忘,下次还要重新Google,这次总结下,自己以后也有的查. 1.安装采用的的rpm包的方式,安装前要先看系统内是否安装了旧版本的MySql和m ...

  9. 第四章 面向对象与IO操作

    一.类(类中可以写字段.属性.方法.构造函数)1.定义一个类用关键字class,后面加类名,类名第一个字母用大写,可用private或public修饰符定义访问级别,类可定义在同一命名空间中,也可定义 ...

  10. Java注释@interface的用法

    转---------- java用  @interface Annotation{ } 定义一个注解 @Annotation,一个注解是一个类.@Override,@Deprecated,@Suppr ...