基于JASIG CAS的统一身份认证系统解析

2星 需积分: 10 7 下载量 120 浏览量 更新于2024-09-21 收藏 268KB PDF 举报
"基于JASIG_CAS的统一身份认证系统.pdf" 这篇文档详细介绍了基于JASIG CAS的统一身份认证系统,主要用于实现单点登录(Single Sign-On, SSO)功能。统一身份认证与单点登录允许用户在一个系统中登录后,无需再次验证即可访问其他关联系统,提高了用户体验并简化了系统管理。 首先,文档概述了统一认证与单点登录的概念,通过举例如网易通行证、微软Passport等,解释了这种服务的便利性,即用户只需一次登录,就能在相关网站上自由切换,无需反复输入用户名和密码。实现这一功能的方式多样,包括CAS、OpenID、Cookie、PKI证书、LDAP等。 CAS(Central Authentication Service)是Yale大学发起的一个开源SSO系统,基于Java Servlet技术。随着发展,CAS3.0版本后成为了JASIG组织的项目。选择CAS作为统一认证系统的原因在于其基于Spring Framework的清晰架构,易于二次开发,以及它对多种数据源的支持,同时提供了丰富的客户端库和第三方软件集成方案。CAS还支持SAML协议,便于与其他系统交互。 CAS系统由CAS Server和CAS Client两部分组成,用户通过与CAS Server交互完成身份验证,然后CAS Server向客户端系统发送验证票证(Ticket),客户端系统接收票证后验证用户身份。这种模式保护了用户的密码信息不直接暴露给各个服务系统。 然而,CAS也存在不足之处,例如非Web应用的集成难度大,以及退出操作的同步问题。文档还提到了东北大学的具体实践情况,他们采用Xen虚拟机上的CentOS 5.1,Apache Tomcat 5.5,Apache Httpd 2.2作为反向代理,以及MySQL和LDAP作为数据源,服务约12000个用户,覆盖了博客、办公系统和网络管理系统等多个领域。 在实际应用中,文档分享了一些使用CAS客户端的经验,例如在Java和.NET环境中集成CAS的注意事项。 总结来说,基于JASIG CAS的统一身份认证系统提供了一种高效、安全的身份验证解决方案,尤其适用于多系统环境下的用户管理和单点登录需求。然而,它也有其局限性,需要根据具体应用场景进行权衡和优化。

o.s.security.web.FilterChainProxy : Securing GET /system/getVerifyCode w.c.HttpSessionSecurityContextRepository : Retrieved SecurityContextImpl [Authentication=CasAuthenticationToken [Principal=org.springframework.security.core.userdetails.User [Username=superadmin, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, credentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_ADMIN]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=AAD75E271F72EF6CF0EBBE6644BAFA81], Granted Authorities=[ROLE_ADMIN]] Assertion: org.jasig.cas.client.validation.AssertionImpl@6aa13df2 Credentials (Service/Proxy Ticket): ST-164-nEONYrBP8oTDq6KZGls5erlAjf8-f84d8990aebc] s.s.w.c.SecurityContextPersistenceFilter : Set SecurityContextHolder to SecurityContextImpl [Authentication=CasAuthenticationToken [Principal=org.springframework.security.core.userdetails.User [Username=superadmin, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, credentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_ADMIN]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=AAD75E271F72EF6CF0EBBE6644BAFA81], Granted Authorities=[ROLE_ADMIN]] Assertion: org.jasig.cas.client.validation.AssertionImpl@6aa13df2 Credentials (Service/Proxy Ticket): ST-164-nEONYrBP8oTDq6KZGls5erlAjf8-f84d8990aebc] o.s.s.cas.web.CasAuthenticationFilter : serviceTicketRequest = false o.s.s.cas.web.CasAuthenticationFilter : proxyReceptorConfigured = false o.s.s.cas.web.CasAuthenticationFilter : proxyReceptorRequest = false o.s.s.cas.web.CasAuthenticationFilter : proxyTicketRequest = false o.s.s.cas.web.CasAuthenticationFilter : requiresAuthentication = false

2023-02-21 上传