博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSO
阅读量:6943 次
发布时间:2019-06-27

本文共 912 字,大约阅读时间需要 3 分钟。

hot3.png

SSO概述

SSO(Single Sign On)即单点登录,是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分。SSO可以提升用户体验,做到登录机制统一开发与维护,SSO 不仅是有用的而且是必要的。

SSO演进与分类

详述一下各种场景下的SSO问题,它们之间是逐步升级、逐步复杂化的关系。

同域及同根域单点登录

基于浏览器和Http协议的支持,一次登录成功,将Cookie写到同域(如产品a域名xyz.cn/a和产品b域名xyz.cn/b,同域xyz.cn)或根域(如产品a域名a.xyz.cn和产品b域名b.xyz.cn,根域为.xyz.cn)下,那么这样所有的站点就能实现同一个域名或根域下的Cookie共享,自然实现了“单点登录”。

跨域单点登录

如果是多个根域名,由于浏览器和http协议不支持不同根域下的cookie共享,上述简单方式不可行。可以考虑在登录成功之后将Cookie回写到多个域名下,或者采取jsonp的方式,但是维护成本较高且不具有普遍适用性。比较通用的方式是基于标准的CAS方案来实现。

SSO仅仅是一种架构,一种设计,而CAS则是实现SSO的一种手段。两者是抽象与具体的关系。当然,除了CAS之外,实现SSO还有其他手段,比如简单的 cookie。

CAS(Central Authentication Service)中心授权服务,本身是一个开源协议,分为 1.0 版本和 2.0 版本。1.0 称为基础模式,2.0称为代理模式,适用于存在非Web应用之间的单点登录。

术语

TGT:Ticket Granted Ticket(俗称大令牌,或者说票根,他可以签发ST)

TGC:Ticket Granted Cookie(cookie中的value),存在Cookie中,根据他可以找到TGT。
ST:Service Ticket (小令牌),是TGT生成的,默认是用一次就生效了。

过程与原理

参考官网时序图(1.0版本):

参考链接

转载于:https://my.oschina.net/u/2939155/blog/3038005

你可能感兴趣的文章
"Hello world" for Nginx
查看>>
我的友情链接
查看>>
mdadm软RAID的删除方法和注意事项
查看>>
Excel 中使用SQL 语句查询数据(五)
查看>>
Struts2——学习(2):Struts2.xml
查看>>
企业级 oracle11G r2 DataGuard 安装配置
查看>>
笔试题-单词反转
查看>>
【MySQL】【ProxySQL】浅析mysql_users表
查看>>
Linux下java开发环境搭建
查看>>
Redis对象
查看>>
jenkins任务设置定时多次构建
查看>>
iMAG.JS如幼苗般在原生开发和HTML5开发之间迅速滋
查看>>
Preventing XSS with JSOUP
查看>>
我的友情链接
查看>>
网格系统布局基本用法
查看>>
大数据利器汇总
查看>>
django 上传图片到固定目录
查看>>
NQA、Track和静态路由联动
查看>>
Hosts在Windows中是怎么工作的
查看>>
替换空格
查看>>