专利名称:一种实现单点登录的方法及系统的制作方法
技术领域:
本发明涉及单点登录技术领域,特别涉及一种实现单点登录的方法及系统。
背景技术:
随着互联网的迅猛发展,各种各样归属于不同提供商的应用也已大量存在,同时新应用也不断涌现。而每个应用一般都要求实现用户管理、身份认证、授权等必不可少的安全措施。为了简化应用开发流程,同时避免用户访问应用时多次输入用户名和密码,单点登录技术应运而生。所谓单点登录是指在多个应用中,用户只需要登录一次就可以访问所有相互信任的应用。而现有的单点登录技术一般通过配置统一的认证系统和集中统一的用户管理来实现单点登录。这样认证系统和应用必须使用统一的用户账户,但是对一些已经存在的应 用来说他们并不愿意废止自己的用户管理。因此现有的单点登录系统对于这种不愿意放弃自己用户管理的应用就不能实现单点登录。图l_a为现有技术的单点登录服务器结构示意图。针对这个问题中国第CN101420416A号专利公开了一种身份联合及统一登录方法通过将用户在身份管理平台与应用的身份信息进行联合,实现统一登录。在该方法中,应用的用户管理必须有效。但是该统一登录方法是建立在身份联合的基础之上的,用户需要使用在该应用中的身份访问应用。这样就要求所有应用需要有自己的用户管理和身份认证,并且需要建立身份联合,才能实现在多个应用之间的统一登录,并不具备单点登录方法的优点。
发明内容
本发明目的在于,为克服现有技术的单点登录系统对有用户管理的应用不能实现身份联合的问题以及背景技术所述的发明专利虽然引入了身份联合的思想却并没有实现真正的单点登录(专利中记载的所有的应用都必须有自己的用户管理平台才能实现统一登录,这样会导致所有新开发的应用都必须开发自己的用户管理平台),从而提供一种实现单点登录的方法及系统。本发明将单点登录方法融合身份联合的优点,为所有应用(包含有用户管理的应用和无用户管理的用户)提供统一的身份认证服务。为实现上述发明目的,本发明提供一种单点登录服务器,用于为有用户管理的应用和无用户管理的应用统一提供单点登录服务,且所述有用户管理的应用采用单点登录时基于用户身份绑定的策略,该服务器包含用户管理模块和会话管理模块,其特征在于,所述服务器还包含信息交互模块、应用管理模块和身份绑定模块;所述应用管理模块,用于保存应用的信息;所述身份绑定模块,用于绑定用户在应用中的身份信息与用户在单点登录服务器的身份信息;所述信息交互模块,分别与所述会话管理模块、应用管理模块、身份绑定模块连接,该信息交互模块用于接收和响应应用的认证请求,与所述发出认证请求的应用采用交互方式建立绑定,向会话管理模块查询用户登录状态,通知会话管理模块认证用户;其中,所述会话管理模块,与所述用户管理模块连接,该模块用于接收和验证用户输入的登录信息,并保持用户的登录状态信息。上述技术方案中,所述应用的信息包括应用标识和应用是否有用户管理模块。所述用户管理模块用于保存用户在单点登录服务器的信息。基于上述装置本发明还提供一种实现单点登录的方法,该方法可实现针对所有应用的单点登录,所述方法包括单点登录服务器绑定用户在该单点登录服务器和应用中的身份信息;用户访问应用的受保护资源时,应用请求单点登录服务器认证用户;单点登录服务器完成用户认证后,如果单点登录服务器已绑定用户在该应用中身份信息,则返回用户在该应用中的身份信息;否则返回用户在单点登录服务器中的身份信息,完成登录。上述技术方案中,所述身份信息包含用户账号、登录名、用户标识、角色或权限级别。 所述应用如果有用户管理,则单点登录服务器提供绑定用户在单点登录服务器中和在该应用中的身份信息的服务,即用户能使用在应用中的身份访问应用。所述应用如果没有用户管理系统,则用户使用在单点登录服务器中的身份访问该应用。采用上述的技术方案后,本发明具有以下优点I、单点登录服务器提供身份认证服务和身份绑定服务,从而降低业务提供门槛,提供者可以不必为每个应用开发独立的身份认证系统和用户管理模块,同时更好的融合不同应用,应用如果有自己的用户管理模块,可以继续使用;2、单点登录服务器完成用户认证后,如果单点登录服务器已绑定用户在该应用中身份信息,则返回用户在该应用中的身份信息,从而使得用户在访问不同应用时,不需要重复登录就可以切换身份。
图Ι-a是现有技术的单点登录服务器结构示意图;图Ι-b是本发明中单点登录服务器结构示意图;图2本发明中应用实施例一结构示意图;图3本发明中应用实施例二结构示意图;图4本发明中身份绑定实施例流程示意5本发明方法单点登录实施例的信息交互时序图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明的单点登录方法做进一步的详细描述。图Ι-b是本发明中单点登录服务器结构示意图,包括用户管理模块,该模块用于保存用户在单点登录服务器的身份信息,包括用户名、密码;应用管理模块,该模块用于保存应用的信息,包括应用标识、应用是否有用户管理模块;会话管理模块,与所述用户管理模块连接,该模块用于接收和验证用户输入的登录信息,并保持用户的登录状态信息;身份绑定模块,该模块保存用户在应用的身份信息与用户在单点登录服务器的身份信息的对应关系;信息交互模块,与所述会话管理模块、应用管理模块、身份绑定模块连接,该模块用于接收和响应应用的认证请求,与应用交互建立用户在所述应用的身份信息与用户在单点登录服务器的身份信息的对应关系,向会话管理模块查询用户登录状态,通知会话管理模块认证用户。图2是本发明中应用实施例一结构示意图,包括用户管理模块,该模块用于管理用户在应用中的信息,包括用户名、密码;身份查询模块,与所述用户管理模块连接,该模块用于向单点登录服务器发送认证用户请求,并接收响应,同时接收并响应单点登录服务器身份绑定请求。图3是本发明中应用实施例二结构示意图,包括身份查询模块,该模块用于向单点登录服务器发送认证用户请求,并接收响应。图4是本发明中身份绑定实施例流程示意图,应用请求单点登录服务器认证用户,认证成功后,如果单点登录服务器发现该应用有用户管理且用户未进行身份绑定,则通知用户可以进行身份绑定。具体绑定流程包括101)单点登录服务器询问用户是否绑定在该应用中的身份,用户选择绑定,转102 ;用户选择不绑定,转109 ;102)单点登录服务器将页面重定向至应用,重定向请求中携带身份绑定请求、绑 定请求标识;103)应用接收身份绑定请求后,要求用户输入在应用中的用户名和密码;104)应用验证用户名和密码成功后,验证成功,转105 ;验证失败,转106 ;105)应用将页面重定向至单点登录服务器,重定向信息中携带身份绑定成功消息、用户在应用中的用户名、绑定请求标识,转107 ;106)应用将页面重定向至单点登录服务器,重定向信息中携带身份绑定失败消息、绑定请求标识,转108 ;107)单点登录服务器接收到身份绑定成功消息后,记录用户在单点登录服务器中用户名、应用标识、用户在应用中用户名的对应关系,转109 ;108)单点登录服务器接收到身份绑定失败消息后,则取消本次身份绑定,转113 ;109)身份绑定流程结束。如图5所示,具体介绍本发明作为一种单点登录方法的实施例的各个操作步骤201)用户访问应用的受保护资源,应用在请求的cookie信息中未发现用户名,转202 ;发现用户名,转208 ;202)应用将页面重定向至单点登录服务器,重定向请求中包含认证用户请求、应用标识;203)单点登录服务器在用户请求的cookie信息中发现用户的访问票据且未过期,即用户已登录,转205 ;否则转204 ;204)单点登录服务器要求用户输入用户名和密码进行登录;单点登录服务器验证用户名和密码成功后,生成用户访问票据和票据过期时间,并将用户访问票据存储在用户浏览器的cookie信息中,转205 ;验证失败,该流程结束;205)单点登录服务器根据用户在单点登录服务器的用户名、应用标识在数据库中未查询出用户在该应用中的用户名,转207 ;如果查询出用户在该应用中的用户名,转206 ;206)单点登录服务器将页面重定向至应用,重定向信息中携带用户在应用中的用户名,转208 ;207)单点登录服务器将页面重定向至应用,重定向信息中携带用户在单点登录服务器中的用户名,转208 ;208)应用获取用户名,与单点登录模块交互验证用户登录是否有效是否过期,验 证成功后,应用响应用户请求;验证失败,即登录过期,转202要求用户重新登录。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种单点登录服务器,用于为有用户管理的应用和无用户管理的应用统一提供单点登录服务,且所述有用户管理的应用采用单点登录时基于用户身份绑定的策略,该服务器包含用户管理模块和会话管理模块,其特征在于, 所述服务器还包含信息交互模块、应用管理模块和身份绑定模块; 所述应用管理模块,用于保存应用的信息; 所述身份绑定模块,用于绑定用户在应用中的身份信息与用户在单点登录服务器的身份信息; 所述信息交互模块,分别与所述会话管理模块、应用管理模块、身份绑定模块连接,该信息交互模块用于接收和响应应用的认证请求,与所述发出认证请求的应用采用交互方式建立绑定,向会话管理模块查询用户登录状态,通知会话管理模块认证用户; 其中,所述会话管理模块,与所述用户管理模块连接,该模块用于接收和验证用户输入的登录信息,并保持用户的登录状态信息;所述用户管理模块,用于保存用户在单点登录服务器的信息。
2.根据权利要求I所述的单点登录服务器,其特征在于,所述应用的信息包括应用标识和应用是否有用户管理模块。
3.根据权利要求I所述的单点登录服务器,其特征在于所述身份信息包含用户账号、登录名、用户标识、角色或权限级别。
4.一种实现单点登录的方法,该方法可实现针对所有应用的单点登录,所述方法包括 单点登录服务器绑定用户在该单点登录服务器和应用中的身份信息的步骤; 用户访问应用的受保护资源时,应用请求单点登录服务器认证用户的步骤; 单点登录服务器完成用户认证后,如果单点登录服务器已绑定用户在该应用中身份信息,则返回用户在该应用中的身份信息;否则返回用户在单点登录服务器中的身份信息,完成登录的步骤。
5.根据权利要求4所述的实现单点登录的方法,其特征在于所述身份信息包含用户账号、登录名、用户标识、角色或权限级别。
6.根据权利要求4所述的实现单点登录的方法,其特征在于,所述应用如果有用户管理,则单点登录服务器提供绑定用户在单点登录服务器中和在该应用中的身份信息的服务,即用户能使用在应用中的身份访问应用。
7.根据权利要求4所述的实现单点登录的方法,其特征在于所述应用如果没有用户管理系统,则用户使用在单点登录服务器中的身份访问该应用。
全文摘要
本发明提供一种实现单点登录的方法及系统,该方法可实现针对所有应用的单点登录,所述方法包括单点登录服务器绑定用户在该单点登录服务器和应用中的身份信息的步骤;用户访问应用的受保护资源时,应用请求单点登录服务器认证用户的步骤;单点登录服务器完成用户认证后,如果单点登录服务器已绑定用户在该应用中身份信息,则返回用户在该应用中的身份信息;否则返回用户在单点登录服务器中的身份信息,完成登录的步骤。此外,基于上述方法本发明还提供一种单点登录服务器,该服务器包含用户管理模块和会话管理模块,其特征在于,所述服务器还包含信息交互模块、应用管理模块和身份绑定模块。
文档编号H04L29/06GK102882835SQ201110195869
公开日2013年1月16日 申请日期2011年7月13日 优先权日2011年7月13日
发明者刘磊, 徐剑, 牛津, 杨中臻, 王献冠 申请人:中国科学院声学研究所