【技术实现步骤摘要】
一种单点登录的方法和装置
本申请涉及网络通信
,特别涉及一种单点登录的方法和装置。
技术介绍
SSO(singlesignon,单点登录),是一套统一登录认证的解决方案。在SSO系统中,通过整合多个相互受信的子系统,使用户只需要在SSO系统中完成一次登录认证后,就可以访问所有相互授信的子系统,真正意义上实现一次登录随处访问。CAS系统,是当前应用最为广泛的一种面向web子系统提供单点登录服务的系统。在CAS系统中,CAS系统和web子系统之间可以通过共享cookie的方式,来实现单点登录。然而,由于cookie无法跨域访问的特性,使得CAS系统无法实现子系统的跨域单点登录。
技术实现思路
本申请提出一种单点登录的方法,应用于分布式RPC架构的单点登录系统,所述单点登录系统接入了若干子系统,其中所述若干子系统和所述单点登录系统分别对应不同的登录域名;所述方法包括:接收到任一目标子系统通过url重定向的方式发送的用户登录请求;其中,所述用户登录请求由所述目标子系统在其本地域下的cookie中未读取到共享token时发送;所述用户登录请求携带所述目标子系统的url地址;响应于所述用户登录请求,从本地域下的cookie中读取所述共享token;其中,所述共享token在所述用户通过所述单点登录系统的登录认证时写入本地域下的cookie;如果从本地域下的cookie中读取到所述共享token,基于所述目标子系统的url地址通过url重定向的方式将所述共享token返回给所述目标子系统,以由所述目标子系统调用所述单点登录系统的登录认证接口,将所述所述共享token提 ...
【技术保护点】
一种单点登录的方法,应用于基于分布式RPC架构的单点登录系统,其特征在于,所述单点登录系统接入了若干子系统,其中所述若干子系统和所述单点登录系统分别对应不同的登录域名;所述方法包括:接收到任一目标子系统通过url重定向的方式发送的用户登录请求;其中,所述用户登录请求由所述目标子系统在其本地域下的cookie中未读取到共享token时发送;所述用户登录请求携带所述目标子系统的url地址;响应于所述用户登录请求,从本地域下的cookie中读取所述共享token;其中,所述共享token在所述用户通过所述单点登录系统的登录认证时写入本地域下的cookie;如果从本地域下的cookie中读取到所述共享token,基于所述目标子系统的url地址通过url重定向的方式将所述共享token返回给所述目标子系统,以由所述目标子系统调用所述单点登录系统的登录认证接口,将所述所述共享token提交至所述单点登录系统发起跨域单点登录认证。
【技术特征摘要】
1.一种单点登录的方法,应用于基于分布式RPC架构的单点登录系统,其特征在于,所述单点登录系统接入了若干子系统,其中所述若干子系统和所述单点登录系统分别对应不同的登录域名;所述方法包括:接收到任一目标子系统通过url重定向的方式发送的用户登录请求;其中,所述用户登录请求由所述目标子系统在其本地域下的cookie中未读取到共享token时发送;所述用户登录请求携带所述目标子系统的url地址;响应于所述用户登录请求,从本地域下的cookie中读取所述共享token;其中,所述共享token在所述用户通过所述单点登录系统的登录认证时写入本地域下的cookie;如果从本地域下的cookie中读取到所述共享token,基于所述目标子系统的url地址通过url重定向的方式将所述共享token返回给所述目标子系统,以由所述目标子系统调用所述单点登录系统的登录认证接口,将所述所述共享token提交至所述单点登录系统发起跨域单点登录认证。2.根据权利要求1所述的方法,其特征在于,还包括:如果从本地域下的cookie中未读取到所述共享token,向所述目标子系统返回所述单点登录系统的登录页面,并获取用户在所述登录页面输入的登录认证信息;对获取到的登录认证信息进行认证;如果认证通过,生成用于记录登录状态的用户session以及所述共享token,并将生成的所述用户session与所述共享token绑定后写入本地域下的cookie;以及,基于所述目标子系统的url地址通过url重定向的方式将所述共享token返回给所述目标子系统,以由所述目标子系统调用所述单点登录系统的登录认证接口,将所述共享token提交至所述单点登录系统发起跨域单点登录认证。3.根据权利要求1或2所述的方法,其特征在于,还包括:在接收到所述目标子系统通过调用所述单点登录系统的登录认证接口提交的所述共享token时,对所述共享token进行认证;如果所述共享token认证通过,将与所述共享token绑定的所述用户session返回给所述目标子系统,以由所述目标子系统将所述用户session和所述共享token写入其本地域下的cookie完成跨域单点登录。4.根据权利要求2所述的方法,其特征在于,所述单点登录系统配置了redis分布式缓存;所述将生成的所述用户session与所述共享token绑定后写入本地域下的cookie,包括:在所述redis分布式缓存中创建cookie;将生成的所述用户session与所述共享token绑定后写入所述cookie。5.根据权利要求1或2所述的方法,其特征在于,所述基于所述目标子系统的url地址通过url重定向的方式将所述共享token返回给所述目标子系统,包括:生成与所述共享token对应的临时token;基于所述目标子系统的url地址通过url重定向的方式将所述共享token返回给所述目标子系统;以及,在接收到所述目标子系统通过调用所述单点登录系统的登录认证接口提交的所述临时token时,对所述临时token进行认证,并在认证通过时将所述共享token以及所述用户session返回给所述目标子系统。6.根据权利要求5所述的方法,其特征在于,所述临时token以及所述共享临时token分别被预配置了有效时长;其中,所述临时token的有效时长小于所述共享token。7.根据权利要求1所述的方法,其特征在于,所述单点登录系统的系统架构中包括面向web子系统提供接入服务的Servletfilter接口;以及,面向APP子系统提供接入服务的API接口;接入所述单点登录系统的子系统包括web子系统和基于APP的子系统。8.根据权利要求1所述的方法,其特征在于,所述单点登录系统为基于dubbo架构的分布式系统。9.一种单点登录的方法,应用于子系统,所述子系统接入了基于分布式RPC框架的单点登录系统;其中所述子系统和所述单点登录系统分别对应不同的登录域名;其特征在于,所述方法包括:响应于用户针对所述子系统的登录请求,从本地域下的cookie中读取共享token;其中,所述共享token在所述用户通过所述单点登录系统的登录认证时写入本地域下的cookie;如果在本地域下的cookie中未读取到所述共享token,基于单点登录系统的url地址通过url重定向的方式向所述单点登录系统发送用户登录请求;其...
【专利技术属性】
技术研发人员:王厚达,
申请(专利权)人:浙江数链科技有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。