SSO单点登录原理及实现

一、SSO简介

单点登录( Single Sign-On , 简称 SSO )是多个相关但独立的软件系统访问控制的一个属性。通过使用该属性,用户登录与单个ID和密码来访问所连接的一个或多个系统,而不使用不同的用户名或密码,或在某些配置中无缝登录在每个系统上,它是比较流行的服务于企业业务整合的一种解决方案。总结一句话,SSO 使得在多个应用系统中,用户只需要 登录一次 就可以访问所有相互信任的应用系统。

二、登录

1、流程图

在这里插入图片描述

2、流程图详解

① 验证局部会话
用户访问系统A受保护资源,系统A验证局部会话不存在,跳转至SSO认证中心,并将系统A当前请求地址和系统A的统一回调地址作为参数传递过去。
② 验证全局会话
SSO认证中心验证全局会话不存在,将用户引导至登录页面。
③ SSO登录
用户输入用户名、密码提交至SSO认证中心登录,身份认证成功之后创建全局会话并生成ticket令牌,将ticket令牌作为参数跳转到系统A。
④ 验证ticket令牌有效性
系统A调用SSO认证中心验证ticket令牌有效性,SSO认证中心验证ticket令牌有效之后,保存系统A的注销地址,并返回系统A令牌验证结果。
⑤ 创建局部会话
系统A接收到令牌有效之后,创建局部会话,并跳转到用户访问资源。

三、注销

1、流程图

在这里插入图片描述

2、流程图详解

① 系统A发起注销请求
系统A获取ticket令牌,将ticket令牌作为参数向SSO认证中心发起注销请求。
② SSO认证中心执行注销
SSO认证中心校验ticket令牌有效性,销毁全局会话,取出ticket令牌对应的所有注册的SSO客户端地址,向客户端发送注销请求,并跳转到登录页面。
③ SSO客户端执行注销
客户端销毁局部会话。

3、触发注销

① 用户人工发起注销
② 全局会话超时自动触发注销

参考资料:CAS单点登录(一)——初识SSO

猜你喜欢

转载自blog.csdn.net/csdnjquery163com/article/details/87876156