SSO 基于Cookie+fliter实现单点登录(SSO):工作原理
SSO的概念:
单点登录SSO(Single Sign-On)是身份管理中的一部分。
SSO的一种较为通俗的定义是:SSO是指訪问同一server不同应用中的受保护资源的同一用户,仅仅须要登录一次,即通过一个应用中的安全验证后,再訪问其它应用中的受保护资源时,不再须要又一次登录验证。
SSO的用途:
眼下的企业应用环境中。往往有非常多的应用系统,淘宝、天猫、爱淘宝等等产品和如办公自己主动化(OA)系统,財务管理系统。档案管理系统,信息查询系统等等。这些应用系统服务于企业的信息化建设,为企业带来了非常好的效益。可是,用户在使用这些应用系统时,并不方便。
用户每次使用系统,都必须输入username称和用户password。进行身份验证;并且应用系统不同,用户账号就不同,用户必须同一时候牢记多套username称和用户password。
特别是对于应用系统数目较多,用户数目也非常多的企业。这个问题尤为突出。问题的解决办法并非系统开发出现失误。而是缺少总体规划。缺乏统一的用户登录平台,使用SSO技术能够解决以上这些问题
SSO的优点:
- 方便用户:从用户实际使用角度考虑
用户使用应用系统时,可以一次登录,多次使用。用户不再须要每次输入username称和用户password,也不须要牢记多套username称和用户password。单点登录平台可以改善用户使用应用系统的体验。
- 方便管理员:从日常维护管理角度考虑
系统管理员仅仅须要维护一套统一的用户账号。方便、简单。相比之下,系统管理员曾经须要管理非常多套的用户账号。每个应用系统就有一套用户账号。不仅给管理上带来不方便,并且。也easy出现管理漏洞。
- 简化应用系统开发:从应用扩展角度考虑
开发新的应用系统时。能够直接使用单点登录平台的用户认证服务。简化开发流程。单点登录平台通过提供统一的认证平台,实现单点登录。因此。应用系统并不须要开发用户认证程序。
SSO架构及原理:
单点登录的实质就是安全上下文(Security Context)或凭证(Credential)在多个应用系统之间的传递或共享。当用户登录系统时,client依据用户的凭证(比如username和password)为用户建立一个安全上下文,安全上下文包括用于验证用户的安全信息,系统用这个安全上下文和安全策略来推断用户是否具有訪问系统资源的权限。
单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下。用户在一处登录后。就不用在其它系统中登录,也就是用户的一次登录能得到其它全部系统的信任。
单点登录在大型站点里使用得很频繁。比如像阿里巴巴这种站点。在站点的背后是成百上千的子系统。用户一次操作或交易可能涉及到几十个子系统的协作,假设每一个子系统都须要用户认证,不仅用户会疯掉。各子系统也会为这种反复认证授权的逻辑搞疯掉。
实现单点登录说究竟就是要解决怎样产生和存储那个信任。再就是其它系统怎样验证这个信任的有效性,因此要点也就下面几个:
- 存储信任
- 验证信任
不然发现以上的方案是把信任存储在client的Cookie里,这样的方法尽管实现方便但立刻会让人质疑两个问题:
- Cookie不安全
- 不能跨域免登
SSO的技术:
第一:Cookie+filter
利用浏览同域名之间自己主动传递cookies机制。实现两个域名之间系统令牌传递问题;另外,关于跨域问题,尽管cookies本身不跨域。但能够利用它实现跨域的SSO。如:代理、暴露SSO令牌值等。
第二:基于CAS的sso
SSO 基于Cookie+fliter实现单点登录(SSO):工作原理的更多相关文章
- SSO 基于Cookie+fliter实现单点登录 实例解析(一)
接上文,SSO的理论讲解,接下来实践实践! 1.使用Cookie解决单点登录 技术点: 1.设置Cookie的路径为setPath("/").即Tomcat的目录下都有效 2.设置 ...
- .NET基于Redis缓存实现单点登录SSO的解决方案[转]
一.基本概念 最近公司的多个业务系统要统一整合使用同一个登录,这就是我们耳熟能详的单点登录,现在就NET基于Redis缓存实现单点登录做一个简单的分享. 单点登录(Single Sign On),简称 ...
- .NET基于Redis缓存实现单点登录SSO的解决方案
一.基本概念 最近公司的多个业务系统要统一整合使用同一个登录,这就是我们耳熟能详的单点登录,现在就NET基于Redis缓存实现单点登录做一个简单的分享. 单点登录(Single Sign On),简称 ...
- Redis缓存实现单点登录SSO
.NET基于Redis缓存实现单点登录SSO的解决方案 .NET基于Redis缓存实现单点登录SSO的解决方案 一.基本概念 最近公司的多个业务系统要统一整合使用同一个登录,这就是我们耳熟能详的单 ...
- Asp.Net Core基于Cookie实现同域单点登录(SSO)
在同一个域名下有很多子系统 如:a.giant.com b.giant.com c.giant.com等 但是这些系统都是giant.com这个子域. 这样的情况就可以在不引用其它框架的情况下, ...
- SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析
最近在研究SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程 涉及的关键知识点: 1.jquery ajax跨 ...
- 基于云端的通用权限管理系统,SAAS服务,基于SAAS的权限管理,基于SAAS的单点登录SSO,企业单点登录,企业系统监控,企业授权认证中心
基于云端的通用权限管理系统 SAAS服务 基于SAAS的权限管理 基于SAAS的单点登录SSO 基于.Net的SSO,单点登录系统,提供SAAS服务 基于Extjs 4.2 的企业信息管理系统 基于E ...
- 单点登录 SSO 的实现原理 SESSION COOKIE Memcache
单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任.单点登录在大型网站里使用得 ...
- 单点登录SSO:图示和讲解
目录 概述 示例运行效果动画 跨域Web SSO时序图 代码截图 几个基本概念 涉及的站点和页面 重点理解:单点登录的核心步骤 敢说最准确的单点登录图示,因为: 我严格对照所画时序图的每个步骤,开发了 ...
随机推荐
- Java引用数据类型
值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值.引用传递:也称为传地址.方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应 ...
- VHDL testbench 例子,包含向文件中写数据
LIBRARY ieee; USE ieee.std_logic_1164.ALL; use std.textio.all; use ieee.std_logic_textio.all; EN ...
- GitHub 菜鸟使用
之前有用过一次,但是一直弄不明白怎么用,今天我又试了一下,成功了,现在我就记录下来,为了以后的使用以及帮助那些跟我原先一样不会用的同学 进入正题: Step 1: 注册GitHub账号 https:/ ...
- private、 protected、 public、 internal 修饰符的访问权限
private : 私有成员, 在类的内部才可以访问. protected : 保护成员,该类内部和继承类中可以访问. public : 公共成员,完全公开,没有访问限制. internal: 当前程 ...
- Ubuntu eclipse :An error has occurred. See the log file
安装eclipse: sudo apt-get install eclipse-platform 调整java: sudo update-alternatives --config java 启动: ...
- delphi 基础书籍推荐
本文所推荐的书,我均仔细读过,受益良多. 1. Pascal 精要.下载Pascal精要 本书讲Pascal 语言基本知识. 2. Object Pascal 参考(中英文对照版).下载Object ...
- docker 容器开启ssh服务
ssh服务安装 安装ssh服务 #yum install openssh-server -y 安装passwd(修改密码需要) #yum install passwd -y 修改sshd_config ...
- AndroidContentProvider ContentResolver和ContentObserver的使用
1.ContentProvider.ContentResolver和ContentObserver ContentProvider是Android的四大组件之一,可见它在Android中 的作用非同小 ...
- 权威指南之脚本化jquery
jqury函数 jquery()($())有4种不同的调用方式 第一种是最常用的调用方式是传递css选择器(字符串)给$()方法.当通过这种方式调用时,$()方法会返回当前文档中匹配该选择器的元素集. ...
- activemq的两种基本通信方式的使用及总结
简介 在前面一篇文章里讨论过几种应用系统集成的方式,发现实际上面向消息队列的集成方案算是一个总体比较合理的选择.这里,我们先针对具体的一个消息队列Activemq的基本通信方式进行探讨.activem ...