- 浏览: 254954 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
红小豆:
Criteria和Detachedcriteria的区别及应用 -
fjjiaboming:
那就稍微翻译一下 啊....
Mysql autoReconnect 的问题 -
woyaowenzi:
非常感谢,我正想做一个画线的控件,就和windows的画图板一 ...
一个简单的FLEX画图demo -
guzen:
可以用一下flash builder 4,现在支持绝对定位了, ...
how to use flex layouts -
suifeng:
好!
一个简单的FLEX画图demo
SSO 是一个非常大的主题,我对这个主题有着深深的感受,自从广州 UserGroup 的论坛成立以来,无数网友都在尝试使用开源的 CAS , Kerberos 也提供另外一种方式的 SSO ,即基于 Windows 域的 SSO ,还有就是从 2005 年开始一直兴旺不衰的 SAML 。
如果将这些免费的 SSO 解决方案与商业的 Tivoli 或 Siteminder 或 RSA Secure SSO 产品做对比,差距是存在的。毕竟,商业产品的安全性和用户体验都是无与伦比的,我们现在提到的 SSO ,仅仅是 Web SSO ,即 Web-SSO 是体现在客户端;另外一种 SSO 是桌面 SSO ,例如,只需要作为 Administrator 登录一次 windows 2000 ,我便能够在使用 MSN/QQ 的时候免去登录的环节 ( 注意,这不是用客户端软件的密码记忆功能 ) ,是一种代理用户输入密码的功能。因此,桌面 SSO 是体现在 OS 级别上。
今天,当我们提起 SSO 的时候,我们通常是指 Web SSO ,它的主要特点是, SSO 应用之间走 Web 协议 ( 如 HTTP/SSL) ,并且 SSO 都只有一个登录入口。
简单的 SSO 的体系中,会有下面三种角色:
1 , User (多个)
2 , Web 应用(多个)
3 , SSO 认证中心( 1 个)
虽然 SSO 实现模式千奇百怪,但万变不离其宗:
l Web 应用不处理 User 的登录,否则就是多点登陆了,所有的登录都在 SSO 认证中心进行。
l SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是张三 / 李四。
l SSO 认证中心和所有的 Web 应用建立一种信任关系, SSO 认证中心对用户身份正确性的判断会通过某种方法告之 Web 应用,而且判断结果必须被 Web 应用信任。
2. CAS 的基本原理
CAS(Central Authentication Service) 是 Yale 大学发起的一个开源项目,据统计,大概每 10 个采用开源构建 Web SSO 的 Java 项目,就有 8 个使用 CAS 。对这些统计,我虽然不以为然,但有一点可以肯定的是, CAS 是我认为最简单实效,而且足够安全的 SSO 选择。
本节主要分析 CAS 的安全性,以及为什么 CAS 被这样设计,带着少许密码学的基础知识,我希望有助于读者对 CAS 的协议有更深层次的理解。
2.1 CAS 的结构体系
从结构体系看, CAS 包含两部分:
l CAS Server
CAS Server 负责完成对用户的认证工作, CAS Server 需要独立部署,有不止一种 CAS Server 的实现, Yale CAS Server 和 ESUP CAS Server 都是很不错的选择。
CAS Server 会处理用户名 / 密码等凭证 (Credentials) ,它可能会到数据库检索一条用户帐号信息,也可能在 XML 文件中检索用户密码,对这种方式, CAS 均提供一种灵活但同一的接口 / 实现分离的方式, CAS 究竟是用何种认证方式,跟 CAS 协议是分离的,也就是,这个认证的实现细节可以自己定制和扩展。
l CAS Client
CAS Client 负责部署在客户端(注意,我是指 Web 应用),原则上, CAS Client 的部署意味着,当有对本地 Web 应用的受保护资源的访问请求,并且需要对请求方进行身份认证, Web 应用不再接受任何的用户名密码等类似的 Credentials ,而是重定向到 CAS Server 进行认证。
目前, CAS Client 支持(某些在完善中)非常多的客户端,包括 Java 、 .Net 、 ISAPI 、 Php 、 Perl 、 uPortal 、 Acegi 、 Ruby 、 VBScript 等客户端,几乎可以这样说, CAS 协议能够适合任何语言编写的客户端应用。
2.2 CAS 协议
剖析协议就像剖析设计模式,有些时候,协议让人摸不着头脑。 CAS 的代理模式要相对复杂一些,它引入了一些新的概念,我希望能够在这里描述一下其原理,有助于读者在配置和调试 CAS SSO 有更清晰的思路。
如果没记错, CAS 协议应该是由 Drew Mazurek 负责可开发的,从 CAS v1 到现在的 CAS v3 ,整个协议的基础思想都是基于 Kerberos 的票据方式。
CAS v1 非常原始,传送一个用户名居然是 ”yes\ndavid.turing” 的方式, CAS v2 开始使用了 XML 规范,大大增强了可扩展性, CAS v3 开始使用 AOP 技术,让 Spring 爱好者可以轻松配置 CAS Server 到现有的应用环境中。
CAS 是通过 TGT(Ticket Granting Ticket) 来获取 ST(Service Ticket) ,通过 ST 来访问服务,而 CAS 也有对应 TGT , ST 的实体,而且他们在保护 TGT 的方法上虽然有所区别,但是,最终都可以实现这样一个目的——免去多次登录的麻烦。
下面,我们看看 CAS 的基本协议框架:
2.1.1 基础协议
CAS
基础模式
上图是一个最基础的 CAS 协议, CAS Client 以 Filter 方式保护 Web 应用的受保护资源,过滤从客户端过来的每一个 Web 请求,同时, CAS Client 会分析 HTTP 请求中是否包请求 Service Ticket( 上图中的 Ticket) ,如果没有,则说明该用户是没有经过认证的,于是, CAS Client 会重定向用户请求到 CAS Server ( Step 2 )。 Step 3 是用户认证过程,如果用户提供了正确的 Credentials , CAS Server 会产生一个随机的 Service Ticket ,然后,缓存该 Ticket ,并且重定向用户到 CAS Client (附带刚才产生的 Service Ticket ), Service Ticket 是不可以伪造的,最后, Step 5 和 Step6 是 CAS Client 和 CAS Server 之间完成了一个对用户的身份核实,用 Ticket 查到 Username ,因为 Ticket 是 CAS Server 产生的,因此,所以 CAS Server 的判断是毋庸置疑的。
该协议完成了一个很简单的任务,就是 User(david.turing) 打开 IE ,直接访问 helloservice 应用,它被立即重定向到 CAS Server 进行认证, User 可能感觉到浏览器在 helloservcie 和 casserver 之间重定向,但 User 是看不到, CAS Client 和 CAS Server 相互间的 Service Ticket 核实 (Validation) 过程。当 CAS Server 告知 CAS Client 用户 Service Ticket 对应确凿身份, CAS Client 才会对当前 Request 的用户进行服务。
2.2.2 CAS 如何实现 SSO
当我们的 Web 时代还处于初级阶段的时候, SSO 是通过共享 cookies 来实现,比如,下面三个域名要做 SSO :
如果通过 CAS 来集成这三个应用,那么,这三个域名都要做一些域名映射,
因为是同一个域,所以每个站点都能够共享基于 cas.org 的 cookies 。这种方法原始,不灵活而且有不少安全隐患,已经被抛弃了。
CAS 可以很简单的实现跨域的 SSO ,因为,单点被控制在 CAS Server ,用户最有价值的 TGC-Cookie 只是跟 CAS Server 相关, CAS Server 就只有一个,因此,解决了 cookies 不能跨域的问题。
回到 CAS 的基础协议图,当 Step3 完成之后, CAS Server 会向 User 发送一个 Ticket granting cookie (TGC) 给 User 的浏览器,这个 Cookie 就类似 Kerberos 的 TGT ,下次当用户被 Helloservice2 重定向到 CAS Server 的时候, CAS Server 会主动 Get 到这个 TGC cookie ,然后做下面的事情:
1, 如果 User 的持有 TGC 且其还没失效,那么就走基础协议图的 Step4 ,达到了 SSO 的效果。
2, 如果 TGC 失效,那么用户还是要重新认证 ( 走基础协议图的 Step3) 。
2.2.2 CAS 的代理模式
模式 1 已经能够满足大部分简单的 SSO 应用,现在,我们探讨一种更复杂的情况,即用户访问 helloservice , helloservice 又依赖于 helloservice2 来获取一些信息,如同:
User à helloservice à helloservice2
这种情况下,假设 helloservice2 也是需要对 User 进行身份验证才能访问,那么,为了不影响用户体验(过多的重定向导致 User 的 IE 窗口不停地 闪动 ) , CAS 引入了一种 Proxy 认证机制,即 CAS Client 可以代理用户去访问其它 Web 应用。
代理的前提是需要 CAS Client 拥有用户的身份信息 ( 类似凭据 ) 。 与其说之前我们提到的 TGC 是用户持有对自己身份信息的一种凭据,则这里的 PGT 就是 CAS Client 端持有的对用户身份信息的一种凭据。凭借 TGC , User 可以免去输入密码以获取访问其它服务的 Service Ticket ,所以,这里,凭借 PGT , Web 应用可以代理用户去实现后端的认证,而无需前端用户的参与。
如下面的 CAS Proxy 图所示, CAS Client 在基础协议之上,提供了一个额外的 PGT URL 给 CAS Server, 于是, CAS Server 可以通过 PGT URL 提供一个 PGT 给 CAS Client 。
初学者可能会对上图的
PGT URL
感到迷惑,或者会问,为什么要这么麻烦,要通过一个额外的
URL(
而且是
SSL
的入口
)
去传递
PGT
?如果直接在
Step 6
返回,则连用来做对应关系的
PGTIOU
都可以省掉。
PGTIOU
设计是从安全性考虑的,非常必要,
CAS
协议安全性问题我会在后面一节介绍。
于是, CAS Client 拿到了 PGT( PGTIOU-85…..ti2td ) ,这个 PGT 跟 TGC 同样地关键, CAS Client 可以通过 PGT 向后端 Web 应用进行认证。如下图所示, Proxy 认证与普通的认证其实差别不大, Step1, 2 与基础模式的 Step 1,2 几乎一样,唯一不同的是, Proxy 模式用的是 PGT 而不是 TGC ,是 Proxy Ticket ( PT )而不是 Service Ticket 。
最终的结果是, helloservice2 明白 helloservice 所代理的客户是 David. Turing 同学,同时,根据本地策略, helloservice2 有义务为 PGTURL=http://helloservice/proxy 服务 (PGTURL 用于表示一个 Proxy 服务 ) ,于是它传递数据给 helloservice 。这样, helloservice 便完成一个代理者的角色,协助 User 返回他想要的数据。
代理认证模式非常有用,它也是
CAS
协议
v2
的一个最大的变化,这种模式非常适合在复杂的业务领域中应用
SSO
。因为,以前我们实施
SSO
的时候,都是假定以
IE User
为
SSO
的访问者,忽视了业务系统作为
SSO
的访问者角色。
2.3 CAS 安全性
CAS 的安全性是一个非常重要的 Topic 。 CAS 从 v1 到 v3 ,都很依赖于 SSL ,它假定了这样一个事实,用户在一个非常不安全的网络环境中使用 SSO , Hacker 的 Sniffer 会很容易抓住所有的 Http Traffic ,包括通过 Http 传送的密码甚至 Ticket 票据。
2.3.1 TGC/PGT 安全性
对于一个 CAS 用户来说,最重要是要保护它的 TGC ,如果 TGC 不慎被 CAS Server 以外的实体获得, Hacker 能够找到该 TGC ,然后冒充 CAS 用户访问所有授权资源。
SSO 的安全性问题比普通应用的安全性还要严重,因为 SSO 存在一种门槛效应。以前即使 Hacker 能够截获用户在 Web 应用 A 的密码,它也未必能知道用户在 Web 应用 B 的密码,但 SSO 让 Hacker 只需要截获 TGC( 突破了门槛 ) ,即能访问所有与该用户相关的所有应用系统。
PGT 跟 TGC 的角色是一样的,如果被 Hacker 获得,后果可想而知。
从基础模式可以看出, TGC 是 CAS Server 通过 SSL 方式发送给终端用户,因此,要截取 TGC 难度非常大,从而确保 CAS 的安全性。
因此,某些人认为 CAS 可以不使用 SSL 的想法需要更正一下, CAS 的传输安全性仅仅依赖与 SSL 。
跟 Kerberos 一样 TGT , TGC 也有自己的存活周期。下面是 CAS 的 web.xml 中,通过 grantingTimeout 来设置 CAS TGC 存活周期的参数,参数默认是 120 分钟,在合适的范围内设置最小值,太短,会影响 SSO 体验,太长,会增加安全性风险。
<context-param> <param-name>edu.yale.its.tp.cas.grantingTimeout</param-name> <param-value>7200</param-value> </context-param> |
TGC 面临的风险主要并非传输窃取。比如你登陆了之后,没有 Logout ,离开了电脑,别人就可以打开你的浏览器,直接访问你授权访问的应用 ) ,设置一个 TGC 的有效期,可以减少被别人盗用,或者被 Hacker 入侵你的电脑直接获取你系统目录下的 TGC Cookie 。
2.3.2 Service Ticket/Proxy Ticket 安全性
首要明白, Service Ticket 是通过 Http 传送的,以为着所网络中的其他人可以 Sniffer 到其他人的 Ticket 。
CAS 协议从几个方面让 Service Ticket 变得更加安全。
l Service Ticket 只能使用一次。
CAS 协议规定,无论 Service Ticket 验证是否成功, CAS Server 都会将服务端的缓存中清除该 Ticket ,从而可以确保一个 Service Ticket 被使用两次。
l Service Ticket 在一段时间内失效。
假设用户拿到 Service Ticket 之后,他请求 helloservice 的过程又被中断了, Service Ticket 就被空置了,事实上,此时, Service Ticket 仍然有效。 CAS 规定 Service Ticket 只能存活一定的时间,然后 CAS Server 会让它失效。通过在 web.xml 中配置下面的参数,可以让 Service Ticket 在多少秒内失效。
<context-param> <param-name>edu.yale.its.tp.cas.serviceTimeout</param-name> <param-value>300 </param-value> </context-param> |
该参数在业务应用的条件范围内,越小越安全。
l Service Ticket 是基于随机数生成的。
Service Ticket 必须足够随机,如果 Service Ticket 生成规则被猜出(如果你使用了 ST+Helloservice+ 自增序列的方式, Hacker 就可以构造下一个 Ticket ), Hacker 就等于绕过 CAS 认证,直接访问所有服务。
3. CAS 以外的其他开源 SSO 方案
除了 CAS 之外,还有很多开源的 SSO 方案,采用何种方案跟用户的应用环境有比较大的关系。 SSO 的优劣一般要考虑易用性,安全性,性能,扩展性等因素。
3.1 JOSSO
经常听到别人讨论 JOSSO , JOSSO ( www.josso.org )是我很早就用过的 SSO 开源项目,我后来抛弃了它,因为它存在比较多缺点,下面我们来看看:
1, 没有将后台认证与 SSO 分离,过分强调 JAAS , Axis 等
JOSSO 官方网站发布了 JOSSO 三个基准:
Standard Based
|
这些标准可以看到 JOSSO 的适应性存在较大的限制,因为 SSO 其实并不关心认证细节,作为一个开源项目,不应该引用过多的技术,如 Axis ,因为这个世界还有很多人用 Xfire 。
2, 没有描述 SSO 协议的 UseCase 图
从 JOSSO 的网站,似乎都看不到一个 SSO 的 UseCase ,容易让那些关注安全性的大型项目负责人感到忧虑。
3, 缺乏广泛的 SSO 客户端支持
JOSSO 的支持的客户端比较少,这个跟他的 Memember Team 、 Contributor Team 有比较大的关系。
4, 缺乏成功案例
读者使用任何 SSO 开源方案之前,有必要先了解次方案的成功案例, CAS 全球有 50 多个大学在使用 ( 大学对 SSO 的要求往往更复杂 ) 成功案例,这方面, JOSSO 跟 CAS 存在很大的差距。
5, 不支持跨域的落后设计
当然, JOSSO 不支持跨域是因为它使用了共享 cookie ,下面的话截取于 JOSSO 的官方文档:
JOSSO uses a session HTTP cookie to keep track of the SSO session identifier. This cookie lives as long as the browser window is open, being sent only in requests associated with the domain that generated it. This means that all JOSSO partner applications must be accessed using the same domain. |
这段话给我们一个提示,如果设计 SSO 的时候,使用了 cookie 来在 SSO Server 和 SSO Agent( 相当于 CAS 的 CAS Client) 之间共享用户信息,那么这个协议是无法突破跨域限制的。因为当多个 SSO Agent 如果不使用同一个域名,也就是 Microsoft.com 和 IBM.com 无法共享同一个 cookie , JOSSO 采用了一种 DNS 技巧,即使用 Microsoft.sso.com 和 ibm.sso.com 来共享 cookie ,但这带来的问题同样很多,尤其是业务系统本身存在一些对域名限制的业务逻辑的时候,需要改动原来业务系统,这不是一件好受的事情。
3.2 CoSign
CoSign 原先是 Michigan 大学的一个 SSO 项目, CoSign 是一个很不错的设计,但是它跟 CAS 比较相似,都是基于 Kerberos 方式的协议,一个最大的不同是 CoSign 的 SSO Server 是基于 CGI(Java Fans 更多会选择 CAS) ,对 C/C++ 的群体应该是一个不错的选择。 CoSign 协议的 UseCase 跟 CAS 很相似, CoSign 的客户端虽然也支持 J2EE/Apache/MSAPI(IIS) ,但它的 Server 端使用 C 来编写,影响了在 Java 群体中的使用。 CoSign 是一个不错的选择,可能是因为本人比较喜欢 Kerberos Model 的原因吧。
3.3 WebAuth
WebAuth 是一种早期的 SSO 方案,它的 WebServer 是用 perl 来编写的,客户端支持 Apache , C++ , Perl 等,当然, WebAuth 推出的时候, Java 并不是很流行,现在,要让 WebAuth 跟众多的 Java 产品结合不是一件容易的事情。
WebAuth 的协议适用了 Share Secret ,即 SSO Server 和 SSO Client 之间存在一个对称密钥 (symmetric key ) 。 SSO Server 和 SSO Client 之间的信任关系通过这个 Key 来保障。
上图中展示了一个
WebAuth
的基本模式,
Client
就是浏览器用户,
Generic Web Service
是
SSO Client
,
WebAuth Service
和
Auth Service
可以看作是
SSO Server
发表评论
-
Python+wxWidgets快速开发桌面小程序
2011-03-13 00:36 1994作者:江南白衣 充分体验到知识循环再用的好处,原本对 ... -
背板带宽
2011-01-15 00:35 998背板带宽,是交换机接 ... -
协议 小解
2010-12-20 23:08 9231、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应 ... -
PYTHON 桌面开发
2010-12-20 00:21 1912充分体验到知识循环再 ... -
中星9号卫星PK中星6B+鑫诺3号组合
2009-12-18 22:00 1875目前各地非主流二线品 ... -
一个很好用的同步工具 DROP-box: https://www.dropbox.com/referrals/NTI0NzMxMjU5
2009-11-23 09:35 4155https://www.dropbox.com/referra ... -
大连足疗地点推荐
2009-11-22 19:26 1777金蟾指健足中心 电话:0411-83769233 ... -
杂七杂八股
2009-11-16 11:23 996对大盘贡献前五个股 ... -
test
2009-09-09 15:36 475odesk csdn -
阿斯顿飞
2009-07-24 15:57 0阿斯顿 -
显示分辨率大全
2009-05-03 10:12 2905计算机标准 分辨率 CGA 320×200 (1 ... -
字幕及工作原理
2009-04-03 14:23 1404随着视频及多媒体技术的不断发展,字幕机用途越来越广泛,不仅仅应 ... -
液晶、等离子的区别
2009-03-26 22:11 1131液晶、等离子的区别是 ... -
ping for windows and linux
2009-03-19 17:08 998On Thursday 01 December 2005 3: ... -
华罗庚将如何学习
2009-01-09 15:06 990华罗庚在讲如何学习时有四句话: 第一句话是:天才出于积累,聪 ... -
div的上下对齐问题
2009-01-04 15:44 3945今天把一个table放到div中,实现如果table过长会出现 ... -
FTP传输的两种模式:binary vs ascii
2008-12-23 19:00 3941What is ASCII? ASCII: t ...
相关推荐
### SSO (Single Sign-On) 原理与 CAS 实现 #### SSO 概念与重要性 单点登录(Single Sign-On, SSO)是一种让用户只需一次登录即可访问多个应用系统的认证机制。这种机制简化了用户体验,提高了工作效率,并在一定...
SSO(Single Sign-On)是一种身份验证机制,允许用户在一个应用系统中登录后,无需再次认证即可访问其他关联的应用系统。这种技术简化了用户登录流程,提高了用户体验,尤其是在多系统集成的企业环境中非常常见。 ...
SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次进行身份验证。在本文中,我们将深入探讨如何使用Struts2框架结合Cookie技术实现SSO。Struts2是Java...
单点登录(Single Sign-On,简称SSO)是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次输入凭证。这种技术极大地提升了用户体验,减少了登录过程中的繁琐步骤,同时也能增强安全性...
它可能还会涵盖高级话题,如联合身份验证(Federation)、单点登录(Single Sign-On, SSO)以及与现代Web服务和云环境的集成。 虽然我们无法直接阅读这本书的内容,但可以期待它将对Java安全的这一重要方面提供深入...
CAS(Central Authentication Service)是一个由Yale大学发起的开源项目,旨在提供一个集中式的身份验证服务,实现Web应用系统的单点登录(Single Sign-On, SSO)。自2004年12月起,CAS成为了JA-SIG(Java in Higher...
单点登录(Single Sign-On,简称 SSO)是一种用户身份验证机制,它允许用户在多个应用程序和服务中仅通过一次登录就能访问所有相关系统而无需再次输入密码。这种机制极大地提高了用户体验,并且在企业环境中尤其有用...
Oracle Access Manager (OAM) 则是 Oracle 提供的一种全面的安全解决方案,用于实现单点登录 (Single Sign-On, SSO) 和访问控制等功能。在实际应用中,为了增强安全性并简化用户的认证流程,通常需要将 OBIEE 与 OAM...
统一登录(Single Sign-On, SSO)** 统一登录是一种用户认证机制,允许用户在一个应用系统中登录后,无须再次输入凭证即可访问其他关联的应用系统。在SSO系统中,用户只需要记忆一套凭证,提高了用户体验。实现SSO...
4. **单点登录(Single Sign-On, SSO)**:OAuth 2.0与OpenID Connect结合可以实现SSO功能,让用户只需一次登录即可访问多个关联的服务。SSO提高了用户体验,减少了密码管理的复杂性,同时也增强了安全性,因为用户...
在分析php实现的SSO单点登录系统接入功能之前,首先需要了解SSO(Single Sign-On)单点登录的定义和原理。SSO是指用户在多个应用系统中,通过一次登录就可以访问所有相互信任的应用系统。用户无需在每个应用系统中...
单点登录(Single Sign-On, SSO)是一种让用户只需一次登录就能访问多个应用系统的认证方式。它不仅提升了用户体验,同时也提高了系统的安全性,因为用户不需要记住多个不同的密码。 #### 二、SSO实现原理 在实现SSO...
在本案例中,我们讨论的是一个实现了单点登录(Single Sign-On, SSO)功能的Java系统。单点登录能够提高用户体验,同时降低管理多套独立认证系统的复杂性。 SSO的核心在于中央认证服务(Central Authentication ...
在现代企业级应用开发中,单点登录(Single Sign-On, SSO)和权限管理是至关重要的安全机制,它允许用户通过一次登录,即可访问多个相互信任的应用系统,极大地提升了用户体验和系统安全性。本篇将详细讲解.NET环境...
- **Spring Security**:理解权限控制和认证,配置SSO(Single Sign-On)。 - **Apache Tiles**:页面布局框架,用于创建可重用的组件。 4. **其他技术** - **RESTful API设计**:理解HTTP方法(GET、POST、PUT...
.NET 单点登录(Single Sign-On,SSO)与权限管理是企业级应用程序开发中的重要组成部分,尤其是在构建基于Web API的分布式系统时。本主题主要围绕C#编程语言,探讨如何在.NET环境中实现高效、安全的SSO和权限控制...
- 对于微信、QQ等需要额外配置SSO(Single Sign-On)授权的应用,需处理授权流程。 8. **测试与优化** - 在真实设备上进行多平台测试,确保每个平台的分享都能正常工作。 - 优化分享速度和用户体验,如减少分享...
CAS(Central Authentication Service)是一种基于票证的单点登录(Single Sign-On,SSO)协议,主要用于实现网络应用之间的安全身份验证。CAS的核心思想是,用户只需要在一个地方进行身份验证,之后便可以在多个...
3. **单点登录(Single Sign-On, SSO)**:单点登录是一种用户只需要一次登录即可访问多个相关系统的身份验证机制。在这个实例中,SSO可能采用了会话管理技术,当用户在一个应用中成功登录后,其身份可以在整个系统...