XXL-SSO架构演进方法论从业务驱动到技术创新XXL-SSO是一款分布式单点登录框架旨在为企业提供高效、安全的统一身份认证解决方案。随着业务的快速发展和技术的不断进步XXL-SSO的架构也在持续演进从最初的业务驱动逐渐走向技术创新以满足不断变化的用户需求和复杂的应用场景。业务驱动下的架构起点在XXL-SSO架构演进的初期业务需求是推动架构设计的核心动力。企业面临着多系统、多应用环境下的身份认证难题用户需要在不同的系统中重复登录不仅降低了工作效率也增加了安全风险。因此实现单点登录成为了业务发展的迫切需求。为了满足这一基本业务需求XXL-SSO首先构建了基础的认证体系。通过统一的登录入口用户只需一次登录即可访问多个关联系统。这一阶段的架构设计主要关注功能的实现确保单点登录的核心功能能够稳定运行。如上图所示这是XXL-SSO的登录界面示例用户在此输入账号密码进行统一认证。多场景适配的技术扩展随着企业业务的不断拓展应用场景日益多样化对单点登录的要求也越来越高。除了常规的Web应用还需要支持移动端、前端Native应用、客户端PC等多种应用类型。这就要求XXL-SSO的架构能够灵活适配不同的场景。XXL-SSO通过引入多种认证方式来应对这一挑战。其中Cas认证、WebAuth认证和NativeAuth认证是主要的认证方式。Cas认证适用于需要与Cas Server进行交互的场景通过Cas Server实现统一的身份认证和授权。WebAuth认证则针对常规的Web应用提供基于Cookie的认证机制。NativeAuth认证则为前端Native应用和移动端应用提供了专门的认证接口。从XXL-SSO架构图中可以清晰地看到Application层包含了浏览器(Web)、移动端(IOS/安卓)、前端(Native)、客户端(PC)等多种应用类型Auth层则包含了CasAuth、WebAuth和NativeAuth等多种认证方式它们共同协作实现了对多场景的支持。核心登录流程的技术实现为了确保单点登录功能的稳定可靠XXL-SSO设计了完善的登录流程。不同的认证方式对应着不同的登录流程下面分别介绍常规Web登录流程、Native登录流程和CAS登录流程。常规Web登录流程常规Web登录流程是XXL-SSO中最基础的登录流程之一适用于大多数Web应用。其主要步骤如下用户请求受限资源Web服务校验登录信息发现用户未登录将其重定向到Login页面。用户在Login页面提交账号、密码等登录请求。Web服务将登录信息写入LoginStore生成登录凭证(token)并在域名下Cookie中写入token。用户再次请求受限资源时携带域名Cookie下的tokenWeb服务校验登录信息验证成功后操作放行。用户发起注销请求携带域名Cookie下的tokenWeb服务删除LoginStore中的登录信息注销成功后重定向到Login页面。Native登录流程Native登录流程主要针对前端Native应用和移动端应用通过登录OpenAPI进行认证。其流程如下浏览器请求登录OpenAPI提交账号、密码等信息。登录成功后返回登录凭证(token)客户端存储维护该凭证。客户端请求受限资源时携带登录凭证(token)Native服务校验登录信息验证成功后操作放行。客户端请求注销OpenAPI携带登录凭证(token)注销成功。CAS登录流程CAS登录流程涉及Cas Client服务和Cas认证中心通过Cas认证中心实现统一认证。流程如下用户请求受限资源Cas Client服务校验登录信息发现用户未登录将其重定向到Cas认证中心Login页。用户在Cas认证中心Login页提交账号、密码等登录请求。登录成功后Cas认证中心在域名Cookie中写入token并将用户重定向到原页面携带认证ticket。用户请求受限资源时携带认证ticketCas Client服务校验认证ticket验证成功后获取登录凭证(token)并在Cas Client域名Cookie中写入token操作放行。用户请求受限资源时携带Cas Client域名Cookie下的tokenCas Client服务校验登录信息验证成功后操作放行。用户发起注销请求携带域名Cookie下的tokenCas Client服务删除LoginStore中的登录信息注销成功后重定向到Cas认证中心。技术创新带来的架构升级在满足基本业务需求和多场景适配的基础上XXL-SSO不断进行技术创新推动架构的持续升级。一方面在存储层XXL-SSO提供了多种登录信息存储方式如RedisLoginStore和LocalLoginStore等。RedisLoginStore适用于分布式环境能够实现登录信息的共享和高可用LocalLoginStore则适用于单机环境具有较高的性能。另一方面XXL-SSO在安全性方面也进行了不断优化。通过对登录凭证(token)的加密处理、登录信息的安全存储等措施提高了系统的安全性保障了用户的信息安全。此外XXL-SSO还提供了丰富的示例代码帮助开发者快速接入和使用框架。例如在xxl-sso-samples目录下包含了多种不同场景的示例应用如xxl-sso-sample-filter-cas、xxl-sso-sample-filter-native等开发者可以参考这些示例进行集成。总结XXL-SSO的架构演进是一个从业务驱动到技术创新的过程。从最初为了解决多系统登录问题而构建的基础架构到后来为了适配多场景而进行的技术扩展再到通过技术创新不断提升系统性能、安全性和可扩展性XXL-SSO始终以满足用户需求为核心目标。未来随着技术的不断发展和业务需求的持续变化XXL-SSO将继续进行架构优化和技术创新为企业提供更加高效、安全、灵活的单点登录解决方案。如果你想了解更多关于XXL-SSO的信息可以参考官方文档doc/XXL-SSO官方文档.md。如果需要获取项目代码可以通过以下命令进行clonegit clone https://gitcode.com/gh_mirrors/xx/xxl-sso。创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考