
目前业界中的各种解决方案均能够很好实现B/S系统的单点登录。回顾应用软件发展历史,开始初期的C/S架构系统需要为所有用户安装客户端软件,从而引发了系统升级、维护等方面的不方便之处。而基于浏览器的B/S架构系统则极大解决了此问题,将用户从繁重的客户端软件安装、维护等方面彻底解放出来,逐渐成为目前各应用软件发展的主流架构。围绕B/S系统的单点登录也产生了众多的解决方案,各大知名企业、开源组织也纷纷提出自己的解决方案和系列产品。
本文将对目前B/S系统单点登录的主流解决方案:基于代理的单点登录和基于反向代理的单点登录进行详细描述。
基于代理的单点登录通过这种方式实现的单点登录需要在各B/S应用服务器部署代理应用程序,当用户请求B/S应用服务器的资源时,代理便会截获用户请求,判断当前用户是否拥有访问权限。
基于代理的单点登录基本访问流程如下图描述:
当用户访问统一认证点服务器时,代理会对当前用户访问资源进行检查。若代理发现其为受保护资源时,系统会弹出用户认证窗口。用户输入用户名和口令,然后由目录服务器验证其是否合法。经过目录服务器验证成功的请求会返回到统一认证服务器,并在用户客户端设置SSO令牌。SSO令牌会在用户与应用服务器之间建立一条绿色通道,从而实现各应用系统之间的单点登录。
上述为一个基于代理的单点登录简单描述,实际应用中由于所采用的产品以及各应用系统的千差万别,具体实现方式需要因地制宜。
基于反向代理的单点登录通过这种方式实现的单点登录不需要在各应用服务器部署代理,所有请求均需要通过反向代理服务器,由反向代理服务器分配请求到对应的应用服务器。
基于反向代理的单点登录基本访问流程如下图所示:
当用户访问应用系统时,反向代理服务器若检测出当前用户需要访问受保护资源,则弹出输入用户名和密码窗口,并提交到目录服务器验证有效性。用户认证成功后,反向代理服务器设置用户SSO令牌,并将用户请求重定向到目标应用服务器。若用户再访问其他资源时,反向代理服务器会直接将用户请求定向到目标服务器。 上述仅为基于反向代理的单点登录简单描述,实际应用时根据具体情况进行实现。
咨询与服务中洲软讯在SSO开发和实施方面具有丰富的经验,做个多个大型项目,具有独立开发、咨询等方面能力。

