周末陪女朋友去了,没写,告罪,上班后急忙补上。
这里说到了可复用得设计,所谓可复用就是指的,引入Dll,改改配置就能使用,而不是打开源代码东改改西改改再来调试调试最后OK。我们这里尽量提高抽象层次减少系统耦合。
首先系统需要一个中心认证端,多个客户端构成。所以需要一个SSO的模块和一个PSO的模块,这两个模块都由工具类和HttpModule组成
这里SSO的Keeper类和PSO的PSOClient类都是HttpModule。
Keeper在配置中设置一个URL,它只监听对这个URL的请求,就是用来处理PSO向SSO端查询SSOToken是否存在的请求的。它包含了SSO端的逻辑
PSOClient在配置中设置一个例外列表,它监听例外列表外的所有请求,判断是否有PSOToken,或者URL里是否包含SSOToken,它包括了整个PSO端的逻辑
TicketCreator是一个工具类,用于用户登录成功后调用来产生SSOToken的。
这两个组件包括了所有的逻辑,但是有一些公共的东西我们需要抽象出来(不然就成了意大利面条式的代码了:})
这个项目封装了整个3DES加密解密,密钥生成的逻辑,.NET的加密解密名字空间里的类用法很恶心,太恶心了。
Encrypter加密,Decrypter解密,KeyMaker密钥生成,Common是公共的字符串操作类
这个项目包含了所有公共数据结构和操作的基本逻辑还有密钥的获取更新的功能,为了摆脱对数据库的依赖,这里我们使用了文件的方式,其实老实说效率不会低。
KeyManager是密钥管理的操作的类
PSORequest是PSO向SSO发送的SSOToken查询请求的结构及其操作的类
SSOResponse是SSO验证登陆成功后向PSO发送的包含SSOToken的请求的结构及其操作的类
Ticket是操作Cookie票据的类
实用的方法:
引入DLL到SSO站点
修改Web.Config
添加自定义配置和加载HttpModule的模块
这样子SSO站点就配置好了
引入DLL到PSO站点
修改Web.Config
添加自定义配置和加载HttpModule的模块
ok
现在用KeyManager生成一个Key和IV的文件,之后就可以使用了
看看,是不是一句代码都没改,也不用重新编译阿:}
下一章放出主要代码和说明
To be continue......
分享到:
相关推荐
在本资源包中,提供了关于SSO组件的设计与实现的相关源代码和文档,非常适合IT专业人员进行学习和研究。 SSO的核心原理是通过一个中央认证服务(Central Authentication Service,CAS)来统一管理用户的登录状态。...
本项目提供了一款基于C#编写的SSO组件源码,其设计思路类似于微软的认证服务器和Web应用服务器,能够实现跨域和跨服务器的身份验证。 首先,理解C#中的SSO实现原理至关重要。SSO的核心在于票据(Ticket)的概念,当...
SSO单点登录数据库设计,上一个文件忘记上传数据库设计。本次上传加上
SSO 单点登录解决方案 设计流程图 SSO(Single Sign-On)单点登录解决方案是当前企业应用系统中最常用的身份验证机制之一。该解决方案的设计流程图将会详细介绍 SSO 的实现机制、时序图、数据库设计、程序实现和...
本详细设计说明书的下篇将深入探讨SSO的核心原理、实现方式及具体的设计方案。 首先,SSO的关键在于共享用户认证信息。在描述中提到的流程图可能展示了用户从访问一个应用系统开始,通过SSO服务进行身份验证,然后...
CAS(Central Authentication Service)是一种广泛使用的开放源码的单点登录(Single ...在提供的文档《手把手教你利用CAS实现单点登录.docx》中,你将找到更详细的步骤和示例代码,帮助你更好地理解和实施CAS SSO。
后续请求时,如果携带此Cookie,CAS Server可验证其有效性,实现无感知的SSO。 5. **协议流程**: - 用户尝试访问服务提供者。 - 服务提供者重定向用户到CAS Server,同时传递一个服务URL。 - 用户在CAS Server...
**基于Redis的SSO接口文档和教程** 单点登录(Single Sign-On,简称SSO)是一种用户在多个应用系统中只需登录一次,就能在其他所有系统中自由切换并保持登录状态的技术。它简化了用户的登录流程,提高了用户体验。...
SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一...如果你对SSO、CAS(Central Authentication Service)或JBPM(Java Business Process Management)有进一步的兴趣,这个文档将提供宝贵的参考资料。
单点登录系统 SSO 设计说明书 本文档旨在描述单点登录系统(SSO)的设计说明书,旨在提供一个完整、可行的解决方案,以满足集团网站的身份验证需求。单点登录系统的主要目标是提供一个统一的身份验证入口,实现成员...
在技术文档《单点登录(SSO)基础篇》中,会介绍SSO的核心概念、关键技术以及在同域与跨域环境下的实现方式。 首先,SSO体系结构通常包括以下几个关键组件: 1. 认证中心:负责处理用户的认证信息,并管理用户的...
本概要设计说明书主要针对SSO的实现进行详细阐述,旨在提高用户体验,简化企业内部或互联网平台的身份验证流程。 1. 引言 1.1 编写目的 SSO设计的主要目的是为了提高用户操作的便捷性和安全性,减少用户记忆多套...
整合Shiro与SSO的关键在于设计一个灵活且可扩展的架构,以便适应不同SSO协议和项目需求。这需要对Shiro的工作原理和SSO机制有深入理解。通过阅读《原创Shiro整合SSO教程》提供的链接,你可以找到具体的实现细节和...
SSO的实现通常涉及到以下几个关键组件: 1. **认证中心(Identity Provider, IDP)**:这是SSO的核心,负责用户的登录验证。在SSO系统中,用户只需向IDP提供用户名和密码。 2. **服务提供者(Service Provider, SP...
Java Web SSO(Single Sign-On)实现是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需多次输入凭证。...开发者应关注安全性、用户体验和系统的可扩展性,以构建高效且可靠的SSO解决方案。
5. **客户端集成**:为你的每个应用系统配置客户端组件。"客户端jar.rar"可能包含这些库文件,你需要在应用的类路径中添加它们。根据应用类型(例如Spring MVC或Servlet应用),进行相应的配置调整。 6. **配置认证...
在Spring Boot中,我们可以使用Spring Security作为安全组件,它提供了一套完整的SSO解决方案。以下是一些关键步骤: 1. **添加依赖**:在`pom.xml`或`build.gradle`中引入Spring Security相关依赖。 2. **配置SSO*...