admin 管理员组

文章数量: 1184232


2024年4月13日发(作者:为什么要学习matlab)

SSO实现原理

SSO实现原理图

A系统

B系统

1、访问C系统

C系统

用户

无:提交login

ticket

检查

有:提交验证

ticket

Portal:login

Portal:认证中心

Cookie

检查

重订向C系统登录

有:返回ticket

Ticket

验证

验证通过

验证失败,重新登录

1、 用户登录A系统,系统检查ticket.

1.1 有,提交认证中心验证,认真通过重定向A系统并返回USERNAME,A系统生成自己

的Session.

1.2 无,提交LOGIN进行COOKIE检查,有则重定向返回A系统并TICKET,A系统生成

自己的Session;无则重新登录

重点:根据PORTAL服务器上的COOKIE判断用户是否登录过PORTAL, COOKIE里带有

TICKET.

2、 其他系统重复此动作

1. SSO需求

单点登录(Single Sign On, SSO)是企业应用集成中最常见的需求。异构系统间往往都有

各自的用户管理和身份验证机制,为避免用户在进行系统切换时频繁输入用户名和密码,因

此必须要实现单点登录。

2. SSO原理

说到SSO的原理,先得说一般Web应用的身份验证原理。Web身份验证之所以能成为

问题主要在于HTTP协议的无状态性,这导致了每次HTTP的请求和响应的无关性。而应用

的状态保持是大部分应用系统的一般性需求,因此必须借助其他机制,这就是Cookie。

2.1. Cookie的原理

一个Cookie由name、value、domain、path、expires组成。可以给HTTP响应添加Cookie,

然后Cookie就作为HTTP响应的Headers返回给浏览器,例如Domino的登录成功后的Cookie

响应头为:Set-Cookie: DomAuthSessId=1AD479C4D11CD10278A4C523320A6918; path=/

没有设置expires就表示仅在当前浏览器进程生命期内有效,不保存到客户机上;若expires

时间大于当前时间,则浏览器在收到这个 Cookie以后将其写入到客户机文件中,一般是保

存在C:Documents and SettingsAdministratorCookies下。没有设置domain就表示只在当前

域内有效。

当客户机再次请求该域内的其他资源时,浏览器会自动将该域内的Cookie附在请求的

Headers一起发送给Web服务器,形如:

Cookie: DomAuthSessId=1AD479C4D11CD10278A4C523320A6918

如此Web应用就能够通过读取HTTP请求Headers里面的Cookie值来判断用户身份,这样

也就间接实现了HTTP的状态保持需

求。

应用

COOKIE:

某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过

加密)


本文标签: 系统 用户 浏览器 登录