单点登录(一)cas概念+原理
来源:互联网 发布:淘宝主图视频在线制作 编辑:程序博客网 时间:2024/06/06 15:38
一、关键字:
sso域名:https://www.talkingdata.net:8446/
登录地址:https://www.talkingdata.net:8446/login
登录地址(远程登录):https://www.talkingdata.net:8446/remoteLogin
退出地址:https://www.talkingdata.net:8446/logout
语言参数:locale=zh_CN,locale=en
二、什么是sso
a) 所谓SSO(Single Sign On)单点登录是指基于用户/会话认证的一个过程,用户只需一次性提供凭证(仅一次登录),就可以访问多个应用。而不需要访问每个应用时,都重新输入密码。
b) SSO的实现机制不尽相同,大体分为Cookie机制和Session机制两大类。
WebLogic通过Session共享认证信息。Session是一种服务器端机制,当客户端访问服务器时,服务器为客户端创建一个惟一的SessionID,以使在整个交互过程中始终保持状态,而交互的信息则可由应用自行指定,因此用Session方式实现SSO,不能在多个浏览器之间实现单点登录,但却可以跨域。
WebSphere通过Cookie记录认证信息。Cookie是一种客户端机制,它存储的内容主要包括: 名字、值、过期时间、路径和域,路径与域合在一起就构成了Cookie的作用范围,因此用Cookie方式可实现SSO,但域名必须相同。目前大部分SSO产品采用的是Cookie机制,目前能够找到的最好的开源单点登录产品CAS也是采用Cookie机制。也是我们这次SSO开发的参照产品。CAS 可以很简单的实现跨域的 SSO ,因为,单点被控制在 CAS Server ,用户最有价值的 TGC-Cookie 只是跟 CAS Server 相关, CAS Server 就只有一个,因此,解决了 cookies 不能跨域的问题。
三、环境
jetty+ssl
四、cas原理
CAS从结构上来说包括俩部分,分别是CAS Server和CAS Client。
CAS Server需要独立部署,主要负责认证工作,CAS Client负责处理对客户端访问受限资源的访问请求,当针对该资源的访问需要登录时重定向到CAS Server。CAS Client 与受保护的客户端应用部署在一起,以 Filter 方式保护受保护的资源。
图 1 使用Cookie实现单点登录的原理图
图2 cas浏览器请求序列图
·首先,单点登录分为“服务端”和“客户端”。服务端就是单点登录服务器,而客户端是需要使用单点登录的应用程序,需要把客户端插件安装到自己的系统中,单点登录的客户端通常替换了原来应用程序的认证部分的代码。
·某个应用程序首先要发起第1次认证。大部分情况下,应用程序中嵌入的客户端会把应用程序原来的登录画面屏蔽掉,而直接转到单点登录服务器的登录页面。
·用户在单点登录服务器的登录页面中,输入用户名和密码。
·然后单点登录服务器会对用户名和密码进行认证。认证本身并不是单点登录服务器的功能.
·认证通过之后,单点登录服务器会和应用程序进行一个比较复杂的交互,这通常是某种授权机制。CAS使用的是所谓的Ticket.
·授权完成后,CAS把页面重定向,回到Web应用。Web应用此时就完成了成功的登录(当然这也是单点登录的客户端,根据返回的Ticket信息进行判断成功的)。
·然后单点登录服务器会在客户端创建一个Cookie。注意,是在用户的客户端,而不是服务端创建一个Cookie。这个Cookie是一个加密的Cookie,其中保存了用户登录的信息。
·如果用户此时希望进入其他Web应用程序,则安装在这些应用程序中的单点登录客户端,首先仍然会重定向到CAS服务器。不过此时CAS服务器不再要求用户输入用户名和密码,而是首先自动寻找Cookie,根据Cookie中保存的信息,进行登录。登录之后,CAS重定向回到用户的应用程序。
这样,就不再需要用户继续输入用户名和密码,从而实现了单点登录。
注意,这种单点登录体系中,并没有通过http进行密码的传递(但是有用户名的传递),因此是十分安全的。
这里要说明一点,单一用户,统一用户和单点登录是不同的三个概念
统一用户就是指不同的系统,使用同一套用户处理的机制。
·用户ID全局惟一,用户登录名,密码全局唯一,并且统一存储在单一系统中。
· 用户的一些属性,如姓名、电话、地址、邮件等,统一存储在单一系统中。尽管各应用系统还可以自行增加一些属性,但是基本的属性应该统一存储和管理。
·应用系统不应该直接对用户信息的进行增加、修改和删除,但是可以进行查询。对用户信息的增加、修改和删除,应该由专门的系统进行统一的管理。
很显然,统一用户是单点登录的基础,但是统一用户并不意味着实现了单点登录。
单一用户管理则指所有的用户管理工作都在唯一的地方进行处理,而每个应用程序不再保留自己的用户管理功能。单一用户管理和统一用户管理的最大区别在于,统一用户管理之后,每个应用程序仍然保留自己的用户管理功能,用于额外的属性设置;而单一用户管理时,每个应用程序不再保留自己的用户管理功能。
参考:
http://www.cnblogs.com/hellowood/archive/2010/08/05/1793364.html
http://www.cnblogs.com/shanyou/archive/2009/08/30/1556659.html
- 单点登录(一)cas概念+原理
- CAS 单点登录原理
- cas单点登录原理
- CAS 单点登录原理
- cas单点登录原理
- CAS单点登录原理
- Cas单点登录原理
- CAS的单点登录原理
- CAS单点登录登出原理
- CAS单点登录原理分析
- CAS单点登录技术原理
- CAS单点登录0-原理
- Cas单点登录(1)原理
- CAS单点登录(一):CAS服务端
- cas系列(一)--cas单点登录基本原理
- CAS单点登录(一)---CAS介绍
- 采用CAS原理构建单点登录
- 采用CAS原理构建单点登录
- 基于注解的SPRINGMVC+FREEMARKER环境搭建
- linux下强制覆盖的密令
- 什么是tomcat
- 溶洞数据
- linux下hadoop安装笔记
- 单点登录(一)cas概念+原理
- @html.ActionLink的几种参数格式
- Cocos2d-x 2.0 拖尾效果深入分析
- gdb 调试
- 1:统计字符数
- zend Framework 2 bug 收集
- linux 初学之centos 6 设置ip
- json
- ms sql server 分析服务错误解决收集