公开/公告号CN105592003A
专利类型发明专利
公开/公告日2016-05-18
原文格式PDF
申请/专利权人 北京拓尔思信息技术股份有限公司;
申请/专利号CN201410563541.5
申请日2014-10-22
分类号H04L29/06(20060101);H04L29/08(20060101);
代理机构
代理人
地址 100088 北京市海淀区知春路6号锦秋国际大厦14层14B04
入库时间 2023-12-18 15:07:56
法律状态公告日
法律状态信息
法律状态
2020-06-19
专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L29/06 变更前: 变更后: 申请日:20141022
专利权人的姓名或者名称、地址的变更
2019-08-09
授权
授权
2016-09-21
实质审查的生效 IPC(主分类):H04L29/06 申请日:20141022
实质审查的生效
2016-05-18
公开
公开
技术领域
本发明属于网络信息安全技术领域,特别涉及一种基于通知的跨域单点登录方法及系统。
背景技术
随着互联网技术的迅猛发展,各种网络应用系统应运而生,同一用户在不同的系统中有不同的账号密码,造成了用户名密码的泛滥,同时也带来了安全隐患。
单点登录(SSO,SingleSign-On)技术的出现,解决了同一用户在互联网不同系统中的登录问题。该技术将身份认证交由统一的认证服务端,认证服务端产生统一的认证凭证,实现用户身份的认证与校验。
对于跨域SSO技术其核心在身份认证及认证信息共享方面,目前主要有三种实现方式:第一,采用session共享技术实现认证信息共享或通过cookies记录认证信息;第二,通过令牌适配器,将域内令牌认证生成跨域令牌,跨域令牌直接传递给用户终端;第三,构建本地URL与互联网URL映射,通过验证本地URL登录来认证互联网URL登录。其中,第一种方法在不便于保存认证信息,时效性控制存在限制;第二种方法,在令牌的生成、传递、控制过程中影响认证效率和准确性;第三种方法,实现过程比较复杂,容易消耗存储资源。
为此需要提出一种简洁、易于实现且安全性高、效率高的单点登录认证方法及系统,以解决当前企事业单位及互联网应用中,同一用户多个系统的用户登录问题。
发明内容
鉴于此,本发明公开了一种基于通知的跨域单点登录方法及系统,该方法利用Web服务器的原有会话机制,建立互信通道,以安全的加密通道传递会话ID,在认证服务端维护会话ID与认证凭证的关系,实现身份认证和单点登录,具有效率高、安全性高、实现成本低的特点。
本发明提供了一种基于通知的跨域单点登录方法,该方法涉及认证中心、应用端、客户浏览器端,其包括:
步骤S1:建立信任通道,在认证中心与应用端采用一定的加密技术建立互信的加密通道;
步骤S2:生成全局认证凭证,并绑定会话ID;
步骤S3:用户身份认证,实现单一应用端与认证中心的登录;
步骤S4:跨域认证,实现第三方应用端的登录。
特别地,任意应用端部署了负责发送重定向请求的组件,当用户通过浏览器访问应用时,应用请求浏览器重定向到认证中心,并携带会话ID。
更进一步,步骤S2生成的是一个全局认证凭证,该凭证具有一定的时效性,由认证中心管理维护,认证凭证的生成包括以下步骤:
步骤S21,用户通过客户端(浏览器)访问应用服务端(应用端A);
步骤S22,应用端A向浏览器发送重定向到认证中心的请求;
步骤S23,浏览器接收请求,携带会话ID,重定向到认证中心;
步骤S24,认证中心生成全局认证凭证,并绑定会话ID。
全局认证凭证生产后,用户需求进行身份认证,其认证过程包括:
步骤S31,浏览器接收用户名和密码的输入,并将认证信息发送给应用端A;
步骤S32,应用端A通过加密通道向认证中心提交用户名及密码等认证信息;
步骤S33,认证中心进行用户名及密码的验证,如果正确,则置认证凭证为登录状态,如果不正确,则将验证错误反馈给客户端浏览器,进行重新登录;
步骤S34,登录成功后,认证中心通过加密通道返回登录成功的信息给应用端A;
步骤S35,应用端A置为登录状态。
至此,生成了认证凭证并实现了认证中心和单一应用端A的登录。
更进一步,步骤S4当用户访问任意互联网第三方应用端B时,执行以下步骤,实现跨域认证登录:
步骤S41,用户通过浏览器访问应用端B;
步骤S42,应用B通过所部署的代理组件向浏览器发送重定向到认证中心的请求;
步骤S43,浏览器携带会话ID,重定向到认证中心;
步骤S44,认证中心完成认证凭证与会话ID之间的绑定;
步骤S45,认证中心模拟浏览器向应用B发送HTTP登录请求,并携带会话ID;
步骤S46,应用B通过加密通道,向认证中心获取会话ID对应的用户信息;
步骤S47,认证中心通过加密通道返回用户信息,第三方应用B实现本地登录,将会话置为登录状态。
此外本发明还提供了一种基于通知的跨域单点登录系统,该系统包括:负责身份认证和全局认证凭证生成的认证中心M_C、应用服务端M_A以及用户接口浏览器端M_I等三个模块。
其中,认证中心是核心模块,有多少个第三方应用需要单点登录,则需要提供相应的应用服务端及浏览器端接入认证中心。
认证中心负责全局认证凭证的生成、管理、销毁等工作,包括会话ID与全局认证凭证关系的维护。
应用服务端与认证中心之间,通过加密技术建立互信通道。
应用服务端负责向认证中心发送用户认证信息,以及在接受认证中心发送的HTTP登录请求后,向认证中心发送“用户信息”查询请求。
同时,任意第三方应用需要部署代理组件,主要负责发送重定向请求,辅助执行HTTP请求。
本发明例中提供了一种基于通知的跨域单点登录方法及系统,即将会话ID作为用户身份的标识,由认证中心进行用户身份认证,并统一维护、管理用户身份与认证凭证的关系,在认证中心与应用服务端的相互通信间建立安全通道,复用Web应用服务器的会话特性,实现跨域单点登录,技术方案具有安全性高、复杂度低的特点,有利于快速实施单点登录的继承。
附图说明
图1为本发明实施例提供的一种基于通知的跨域单点登录方法流程图。
图2为本发明实施例提供的一种基于通知的跨域单点登录方法中全局认证凭证生成方法流程图。
图3为本发明实施例提供的一种基于通知的跨域单点登录方法中用户身份认证流程图。
图4为本发明实施例提供的一种基于通知的跨域单点登录方法中单点登录方法流程图。
图5为本发明实施例提供的一种基于通知的跨域单点登录系统模块图。
具体实施方案
为了能更加清楚明白的阐述本发明实施例的目的、技术方法及优点,以下结合附图对本发明实施例提供的技术方案进行详细说明。
图1示出了本发明实施例的一种基于通知的跨域单点登录方法流程图。
如图1所示,根据本发明实施例的基于通知的跨域单点登录方法,包括三大流程块:信任通道的建立S1,全局认证凭证的生成S2,用户身份认证S3,单点登录S4。
其中,信任通道的建立可以通过加密算法实现,如SSL等,信任通道建成后,相互信任的双方便可进行安全通信。
当用户通过浏览器访问应用端时,便生成全局凭证S2,如图2所示,其过程如下:
步骤S21,用户通过客户端(浏览器)访问应用服务端(应用端A);
步骤S22,应用端A向浏览器发送重定向到认证中心的请求;
步骤S23,浏览器接收请求,携带会话ID,重定向到认证中心;
步骤S24,认证中心生成全局认证凭证,并绑定会话ID。
当用户通过浏览器向应用服务端发送登录信息请求登录时,需要进行用户身份认证,其流程图如图3所示,包括以下步骤:
步骤S31,用户通过浏览器向应用端A发送用户名和密码等认证信息请求登录;
步骤S32,应用端A通过加密通道向认证中心提交认证信息;
步骤S33,认证中心进行用户名及密码的验证,如果正确,则置全局凭证为登录状态,如果不正确,则将验证错误反馈给客户端浏览器,进行重新登录;
步骤S34,登录成功后,认证中心通过加密通道返回登录成功的信息给应用端A;
步骤S35,应用端A置为登录状态。
此时,便生成了用户的全局认证凭证,并实现了在应用端A及认证中心的登录。
如果此时,用户再访问应用B,便会开始进行单点登录,其实现流程如图4所示,包括以下步骤:
步骤S41,用户通过浏览器访问应用B;
步骤S42,应用B向浏览器发送重定向到认证中心的请求;
步骤S43,浏览器携带会话ID,重定向到认证中心;
步骤S44,认证中心完成会话ID与全局认证凭证的绑定;
步骤S45,认证中心模拟浏览器,通过加密通道,向应用B发送HTTP登录请求,携带会话ID;
步骤S46,应用B通过加密通道,根据会话ID,向认证中心获取用户信息;
步骤S47,应用B实现本地登录。
此时,应用B完成登录,跨域单点登录方法实现了应用A和应用B的同时登录。
需要特别说明的是,应用A和应用B是两个对等的应用服务端,两者所部署的环境及具备的功能是一样的,这里只是为了区分进行的编号。
此外,本发明实施例还提供了一种基于通知的跨域单点登录系统,该系统模块图如图5所示,由认证中心M_C、应用服务端M_A、客户端(浏览器)M_I三大模块组成。
其中,认证中心M_C,负责身份认证和全局凭证的生成、管理、销毁,包括会话ID与全局认证凭证关系的维护。
应用服务端M_A与认证中心M_C之间,通过加密技术建立互信通道。
应用服务端M_A负责向认证中心M_C发送用户认证信息,以及在接受认证中心发送的HTTP登录请求后,向认证中心M_C发送“用户信息”查询请求。
同时,任意第三方应用需要部署代理组件,主要负责发送重定向请求,辅助执行HTTP请求。
用户通过浏览器M_I向应用服务端M_A提交认证信息,应用服务端M_A自身检测是否已登录,若已登录则反馈认证信息给浏览器M_I,若未登录,则通过加密通道向认证中心M_C发送认证信息,认证中心M_C进行认证信息验证,验证通过后,认证中心M_C置全局认证凭证为登录状态,同时向浏览器发送重定向到应用的命令,应用服务端M_A实现本地登录;验证不通过,则向浏览器发送反馈错误信息,此时,单一应用及认证中心实现了用户登录。
当用户访问第三方应用时,部署在应用服务端的代理组件,通过应用服务端M_A向浏览器M_I发送重定向到认证中心M_C的命令,携带会话ID;认证中心M_C收到会话ID并与对应的认证凭证进行绑定,同时,模拟浏览器向应用服务端M_A发送HTTP登录请求,携带会话ID,应用服务端M_A通过加密通道向认证中心M_C获取会话ID对应的用户信息,从而实现应用服务端M_A的本地登录。
机译: 基于Web的跨域单点登录认证的方法和系统
机译: 基于Web的跨域单点登录认证的方法和系统
机译: 基于Web的跨域单点登录认证的方法和系统