SSO 是 什 么?

一、SSO是什么,

   定义:SSO (Single Sign On)单点登录,简单的说,就是在一个系统共存的环境

下,用户在一处系统登录后,在进入其他的子系统,就不用在重新输入账号和密码了。

 

例子:网页博客和网页邮箱,当你输入了自己的账号密码,登录了网页邮箱之后,你要

进入网页博客,只需直接进入就行了,不用在重新输入网易邮箱的账户和密码。

比如:

baidu.com => zhidao.baidu.com、music.baidu.com、baike.baidu.com......

qq.com => feiji.qq.com、cd.qq.com、music.qq.com

核心:实现单点登录说到底就是要解决如何产生和存储那个信任,再就是其他系统如

何验证这个信任的有效性,因此要点也就以下几个:

1,  存储信任

2,  验证信任

只要解决了以上的问题,达到了开头讲得效果就可以说是SSO。最简单实现SSO的方法

就是用Cookie,顺序图(Sequence Diagram)如下:


二、体系组成:

(1)有三个角色,

User(多个)

Web应用(多个)

SSO认证中心(一个)

(2)客户端和服务端

   

CAS Server

CAS Server 负责完成对用户信息的认证,需要单独部署,CAS Server 会处理用户

名 / 密码等凭证 (Credentials) 。就是 安装在服务器端的一个web程序 目前有耶鲁大

学的 也有其它机构开发的它是复制认证的服务器

  CAS Client
     CAS Client部署在客户端,当有对本地 Web 应用受保护资源的访问请求,并且需

要对请求方进行身份认证,重定向到 CAS Server 进行认证。

三、实现:

实现方式一般有两种:跳转和弹出层回调。

当用户在子系统未登录时,便会携带相关参数,比如tieba.baidu.com去到

SSO(passport.baidu.com)进行登录登录成功SSO会生成ticket key并附加给源网址跳

转回去,这个时候SSO上已经有用户的登录状态了,但是各个子系统仍然没有登录态,所

以根据这个ticket设置各个子系统独立的登录态是需要的。

当在SSO验证结束后,会回到子系统,子系统会根据得到的ticket(SSO为此次登录生

成的用户基本信息加密串)获取用户的基本信息,从而在本站设置登录态。

四、小结单点登录优缺点

优点:说白了SSO就是让用户只通过一次登录访问所有应用程序。它提供一个统一的

机制来管理用户的身份验证,并实现业务规则来决定用户对应用程序和数据的访问。

·提高用户的效率。用户不再被多次登录困扰,也不需要记住多个 ID 和密码。另

外,用户忘记密码并求助于支持人员的情况也会减少。

·提高开发人员的效率。SSO 为开发人员提供了一个通用的身份验证框架。实际上,

如果 SSO 机制是独立的,那么开发人员就完全不需要为身份验证操心。他们可以假设,

只要对应用程序的请求附带一个用户名,身份验证就已经完成了。

·简化管理。如果应用程序加入了单点登录协议,管理用户帐号的负担就会减轻。简

化的程度取决于应用程序,因为 SSO 只处理身份验证。所以,应用程序可能仍然需要设

置用户的属性(比如访问特权)。

缺点:
  ·难以重构对 SSO 解决方案进行重构来适应现有的应用程序很困难,很耗费时间而且昂贵。

  ·无人看守的桌面。实现 SSO 会减少一些安全风险,但是也增加了其他安全风险。例如,如果用户登录之后离开了他的机器,恶意用户就可以访问他的资源。尽管这是一

个的安全问题,但是 SSO 会使这个问题更加严重,因为恶意用户可以访问所有获

得授权的资源。在采用多次登录方式时,用户每次只能登录进一个系统,所以只有一个

资源被泄露。

·单点攻击。在使用单点登录时,所有应用程序使用一个集中的身份验证服务。对于

希望实施拒绝服务攻击的黑客,这是一个有吸引力的目标。

SSO 是 什 么?相关推荐

  1. 在特定情况下的简单SSO实现方案

    最近需要实现类似单点登录的功能.情况是这样的,最初在做网站A,做着做着,要做网站B了,要求与网站A完全分开作为两个应用,但用户数据要求与网站A保持一致,也要求用户在网站A登录后,转到网站B时不需要再登 ...

  2. Spring Cloud云架构 - SSO单点登录之OAuth2.0登录流程(2)

    上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图(根据用户名+密码实现OAuth2.0的 ...

  3. SSO单点登录基于CAS架构封装 Memcached 实例

    2019独角兽企业重金招聘Python工程师标准>>> SSO认证中心是CAS整个应用架构的一个极其重要的关键点,必须满足如下两点要求: 1.高可用,不允许程序发生故障.如果认证中心 ...

  4. 【WebMisCentral WMC】基于Extjs 4.2x的企业级用户授权认证中心系统(SSO+AM+SM),多租户SAAS应用...

    http://saas.chinacloudtech.com 题记 三年磨一剑,在企业信息化的道路上已经走了3年之久了,3年多时间里做了很多,突破了很多:有无奈和辛酸,也有收货与喜悦:自我价值也在不断 ...

  5. 不要用JWT替代session管理(上):全面了解Token,JWT,OAuth,SAML,SSO

    通常为了弄清楚一个概念,我们需要掌握十个概念.在判断 JWT (Json Web Token) 是否能代替 session 管理之前,我们要了解什么是 token,以及 access token 和 ...

  6. java oauth sso 源码_基于Spring Security Oauth2的SSO单点登录+JWT权限控制实践

    概 述 在前文<基于Spring Security和 JWT的权限系统设计>之中已经讨论过基于 Spring Security和 JWT的权限系统用法和实践,本文则进一步实践一下基于 Sp ...

  7. CAS SSO 原理 - 基础模式

    对于这个老话题,网上太多的资料,但是要让大家清楚地理解CAS还是不太容易,所以,读了一些文章,并做了一些摘录整理,方便新人理解. 对于CAS登录的过程,下面这段是讲得最清楚的. 登录应用A 主要原理: ...

  8. SSO 单点登录会话管理

    2019独角兽企业重金招聘Python工程师标准>>> 最近在公司的技术分享会中谈到了SSO相关的知识点,在此再做整理记录.本次分享来自Tate先生,在下只是一个大自然搬运工.其中涉 ...

  9. [精华][推荐]CAS SSO单点登录服务端客户端学习

    1.了解单点登录 SSO 主要特点是: SSO 应用之间使用 Web 协议(如 HTTPS) ,并且只有一个登录入口. SSO 的体系中有下面三种角色: 1) User(多个) 2) Web 应用(多 ...

  10. CAS做单点登陆(SSO)——集成BIEE 11g

    BIEE 11G和CAS集成零代码编写,只需配置. 更改BIEE analytics应用的web.xml 将analytics.war解包(使用7-zip或者Win-rar就可以),然后修改WEB-I ...

最新文章

  1. linux文件目录类常用命令
  2. DGL教程【二】如何通过DGL表示一个Graph
  3. 如何删除一个VDP服务器
  4. mybatis学习(40):逆向工程的创建
  5. B. Sifid and Strange Subsequences
  6. Linux Ubuntu16.04界面美化
  7. Problem D: 编程题B-向量的数量积
  8. 360团队 临时目录的原始文件不是360合法文件_谈谈腾讯电脑管家小团队版
  9. EasyUI 扩展自定义EasyUI校验规则 验证规则
  10. 请大家帮忙,帮我看一下.net的这个问题
  11. IO操作write()写的文档内不是你设置的buff
  12. 员工培训与开发实训心得体会_人力资源实训个人总结
  13. matlab如何进行图像读取,matlab如何读取图像
  14. Telink BLE SIG Mesh GATT 配网功能
  15. 左倾红黑树(Left-Leaning Red-Black Trees:LLRBT)解析
  16. 通用-描述文件找不到
  17. 奇妙的裴波那契数列和黄金分割
  18. 问题记录 -- 未定义的引用 ||| not found
  19. 敏捷开发绩效管理之九:阿米巴经营之软件团队经营什么(上)
  20. CF 1253D-Harmonious Graph-并查集+贪心

热门文章

  1. 工资个人所得税计算方法c语言,C语言编写一个计算个人所得税的程序,要求输入收入金额,能够输...
  2. Talk预告 | 清华大学交叉信息研究院助理教授赵行:基于视觉感知的自动驾驶运动预测
  3. JS 实现一个倒计时
  4. 7-9 sdut-九九乘法表分数7-10 sdut-sel-1 R-D先生生日(分支结构)
  5. 在CentOS7上通过RPM安装实现LAMP+phpMyAdmin安装过程全记录
  6. 这款好用的Mac视频剪辑工具你不要错过了~
  7. 【汇正财经】如何进行股票板块的热点判断?
  8. (sklearn)lasso回归linear_model.Lasso()方法
  9. java 根据日期计算当前周一和周日,及根据秒数计算天小时分钟秒数等相关日期
  10. CSCD(中国科学引文数据库)介绍