问题:如何在JBOSS中实现跨系统单点登录。
原理:中央认证服务(CAS),当用户从A系统访问B系统中受保护的资源时,首先从中央认证服务中拿到一个ticket(凭证),然后将ticket传到B系统中,B系统拿这个ticket到中央认证服务中验证ticket的合法性。
JBOSS对于JAVAEE安全认证规范的实现的详细介绍,参见:
http://docs.jboss.org/jbossas/jboss4guide/r5/html/ch8.chapter.html
具体流程描述:当我们从A系统调用B系统中受保护的资源时,首先从ticket服务中那到一个ticket,然后将ticket和用户id一起通过调用资源的url传递到B系统,由于用户在B系统中尚未登录,系统会自动把用户forward到在web.xml中定义的login页面,然后我们同在login页面接收到ticket和用户id,然后使用它们做一次自动提交到j_security_check尝试登录,如果登录认证成功,系统就会自动把用户forward到之前尝试调用的url。自此,快系统调用成功。
具体实现:
1.使用mule来管理ticket服务,使用apache http-client来作为客户端,使用JSON来作为数据交换格式。
2.ticket服务设计思路:ticket必须是唯一的,不能重复,必须有过期策略,必须和用户关联,A用户请求的ticket,只能由A用户消费。为了解决唯一性,使用了当前时间+UUID的方式来做为ticket,过期策略使用mule-quartz来删除过期的ticket,将ticket和用户id关联来解决用户和ticket关联的问题。
3.使用mule的Transformer来处理从客户端传递过来的JSON数据。
4.在做跨系统调用时,首先使用TicketProducer从ticket服务中拿到ticket。
5.在JBOSS中,默认的认证与授权功能是被委派个JAASSecurityManager来完成的,这种认证与授权采用了JAAS(JAVA认证与授权服务)来作为具体的实现技术(具体请参见WINDWOS和WEB系统单点登录的原理部分),所以创建一个TgsLoginModule,在其中验证用户的逻辑使用TicketConsumer来使用Ticket服务来进行具体的用户验证工作,实现用户认证功能。
分享到:
相关推荐
SpringBoot 跨系统单点登录的实现方法 单点登录(Single Sign-On,SSO)是一种访问控制属性,允许用户在多个系统中使用同一个身份验证来访问所有系统,而不需要在每个系统中都输入用户名和密码。SpringBoot 提供了...
单点登录(Single Sign-On,简称SSO)是一种在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的技术。它简化了用户管理和提高了用户体验,尤其在企业级环境中,用户无需记住多个系统的用户名...
单点登录(Single Sign On,简称SSO)是一种身份验证机制,允许用户在一次登录后,无需再次输入凭证即可访问多个相互信任的应用系统。在Java环境下实现SSO,可以为企业的信息化管理提供便利,减少用户的登录操作,...
单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,允许用户在一个系统上登录后,无需再次输入凭证即可访问多个相互关联的系统。它简化了用户对多个应用系统的登录过程,提高了用户体验,同时也降低了...
跨平台的单点登录(Single Sign-On,SSO)功能是一种设计模式,它允许用户在一次验证后访问多个相互关联的应用系统,而无需为每个系统分别进行登录。这个概念极大地提高了用户体验,减少了登录过程中的繁琐步骤,...
跨服务器登录验证(单点登录SSO)是指用户只需要登录一次便可以访问多个相关的应用系统的机制。这种机制可以提高用户体验和系统安全性。下面我们将介绍跨服务器登录验证的过程和Java实现。 跨服务器登录验证的过程 ...
单点登录系统(Single Sign-On,SSO)是一种网络身份验证机制,允许用户在一个系统上登录后,无需再次输入凭证即可访问多个相互关联的应用系统。SSO的主要目标是提高用户体验,减少用户记忆多个密码的负担,同时也能...
单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,允许用户在一个系统上登录后,无需再次验证即可访问多个相互关联的系统。在本文中,我们将深入探讨基于C#实现的单点登录系统源码,以及如何利用这个...
SSO,全称为Single Sign-On,即单点登录,是一种网络用户身份验证的机制,允许用户在一次登录后,即可访问多个相互关联的应用系统,无需重复登录。在IT行业中,SSO是提升用户体验和提高安全性的重要手段,尤其在企业...
在实际生产环境中,单点登录通常涉及更复杂的架构,如采用Security Token Service(STS)、OAuth、OpenID Connect等标准协议,以及使用中央身份验证服务器,以实现跨多个系统的用户认证同步。此外,还需要考虑安全性...
单点登录大致流程: 第一步:用户访问第三方系统。第三方根据局部会话判断用户是否登录此系统,没有登录,则重定向到认证系统去进行认证操作。 第二步:重定向到认证系统,根据全局会话判断用户是否登录,未登录则...
"跨平台跨服务器跨网站SSO(单点登录)的方案.doc"可能包含了一个详细的SSO实施策略,涵盖了不同操作系统、服务器环境和网站间的集成。文档可能包含了以下内容:系统架构设计、CAS服务器的部署和配置、客户端应用...
本文主要探讨了如何利用Domino LTPAToken的生成方法来实现跨系统的单点登录功能,并详细介绍其实现原理与具体步骤。 #### 二、实现原理概述 本方案的核心在于通过Domino系统与统一用户的交互来实现单点登录。主要...
6. **跨系统协作**:同样的原理,用户可以无缝切换到其他已集成的系统,这些系统也会通过相同的验证机制,确保安全的单点登录体验。 在进行RTX二次开发时,开发者需要熟悉RTX的API接口和通信协议,以便于与RTX...
基于PHP的WEB应用系统单点登录的研究与实现 单点登录是当前WEB应用系统中的一大挑战,随着WEB应用系统的增加,用户需要记住多个账号和密码,导致用户体验不佳。因此,实现单点登录系统变得非常重要。当前实现单点...
NC5系列单点登录方案通过上述步骤和技术手段实现了跨系统的便捷登录体验,极大地提高了用户的使用效率,同时也增强了系统的安全性。通过对关键技术和实施步骤的详细了解,可以帮助IT人员更好地理解和部署此类方案。
Oracle EBS(E-Business Suite)单点登录(Single Sign-On, SSO)方案是企业级集成的关键组成部分,它允许用户在多个应用间切换而无需重复登录,提高了工作效率并增强了安全性。本文档主要针对Oracle E-Business ...
在本文中,我们将深入探讨如何使用React和ASP.NET Core构建一个单点登录(Single Sign-On,简称SSO)系统。这个系统是基于.NET Core 3.1开发的,且计划支持未来的.NET 5版本。前端界面采用React框架,后端处理逻辑则...
SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后,能够访问多个相互关联的应用系统,而无需再次输入凭证。在Java环境下实现SSO,通常涉及以下几个核心知识点: 1. **原理**:SSO的核心思想...