安全认证方法和安全认证系统的制作方法
【专利摘要】本发明提供了一种安全认证方法和一种安全认证系统,其中,安全认证方法包括:在接收到对应用程序的访问请求时,通过代理服务器获取应用程序的地址中的预设单点登录信息;根据预设单点登录信息,确定与预设单点登录信息对应的应用程序IP和端口信息,以供根据应用程序IP和端口信息访问应用程序;在访问应用程序的过程中,根据内存数据库中预存的会话数据,进行安全认证。通过本发明的技术方案,一方面,实现了服务代理,提高了安全认证系统的安全性,还使该系统具有日志审计和权限控制的功能,另一方面,实现了会话共享,有效地避免了访问不同服务器带来的会话信息不一致的问题。
【专利说明】安全认证方法和安全认证系统
【技术领域】
[0001]本发明涉及通信【技术领域】,具体而言,涉及一种安全认证方法和一种安全认证系统。
【背景技术】
[0002]在相关技术中,SAML(SecurityAssert1n Markup Language,安全断言标记语言)是一个基于XML (Extensible Markup Language,可扩展标记语言)的标准,用于在不同的安全域(Security Domain)之间做交换认证和授权数据。SAML标准定义了身份提供者(Identity Provider)和服务提供者(Service Provider),这两者构成了前面所说的不同的安全域。另外,SAML是结构化信息标准促进组织的安全服务技术委员会的产品。
[0003]如图1所示,下面详细介绍相关技术中的安全认证系统的原理:
[0004]登录认证接口 102:为用户提供用户名、密码、图形验证码、短信验证码、第三方安全认证码等信息校验,校验通过生成一个随机字母数字组成的SSOToken (令牌凭据)存储在sess1n(会话)中并返回到前台登录页面。
[0005]断言认证接口 104:为用户进行第二次信息验证,前台登录页面通过解析XML中携带的SSOToken信息,携带该SSOToken信息调用断言认证接口进行信息比对,若比对通过,该接口将用户基本信息通过XML文件传输到前台登录,若不通过则提示相应的错误信息。
[0006]透明登录接口 106:为第三方应用系统中的应用程序提供单点登录的入口,第三方应用集中到4A前台页面,若用户需要访问相应的应用程序,通过透明登录接口判断用户是否已经通过4A认证,若通过则生成随机字母数字组成的SSOToken凭据给对应的应用程序,若不通过则返回4A前台登录界面进行再次登录。
[0007]会话保持接口:4A前台和后台交互sess1n会话保持自定义为30分钟,用户超过30分钟未使用4A认证系统则会话失效,用户再次使用时需要重新登录认证。若在30分钟以内再次使用4A认证系统则会重置sess1n。
[0008]其中,上述提到的4A是指Authenticat1n (认证)、Account (账号)、Authorizat1n (授权)、Audit (审计),中文名称为统一安全管理平台解决方案,即将身份认证、授权、审计和账号定义为网络安全的四大组成部分,从而确立了身份认证在整个网络安全系统中的地位与作用。
[0009]在相关技术中的认证系统实现的4A认证是对于第三方应用系统而言,但是,当认证通过进入第三方应用系统之后,对该第三方应用系统的日志和行为监控力度不够,同时也不具备对第三方应用系统的内部授权管理。除此之外,相关技术中的SAML认证服务支持集群部署,但不支持对后台跨服务器的sess1n共享。例如,当用户通过服务器A进行认证通过之后,跳转到服务器B时,由于服务器B没有服务器A认证通过的sess1n信息,从而导致在访问服务器B时认证失败,则需要重新认证。
[0010]因此需要一种新的技术方案,不仅可以加强对应用程序的日志和行为的监控力度,还可以控制用户访问应用程序的权限,同时,还可以避免访问不同服务器带来的 sess1n信息不一致的问题。
【发明内容】
[0011]本发明正是基于上述问题,提出了一种新的技术方案,不仅可以加强对应用程序的日志和行为的监控力度,还可以控制用户访问应用程序的权限,同时,避免访问不同服务器带来的sess1n信息不一致的问题。
[0012]有鉴于此,本发明的一方面提出了一种安全认证方法,包括:在接收到对应用程序的访问请求时,通过代理服务器获取所述应用程序的地址中的预设单点登录信息;根据所述预设单点登录信息,确定与所述预设单点登录信息对应的应用程序IP和端口信息,以供根据所述应用程序IP和所述端口信息访问所述应用程序;在访问所述应用程序的过程中,根据内存数据库中预存的会话数据,进行安全认证。
[0013]在该技术方案中,当应用程序在接入4A平台进行单点登录(Single Sign On,简称SSO)时,根据应用程序提供的单点登录信息,在代理服务器中配置与单点登登录信息相对应的IPdnternet Protocol,网络互连协议)的端口信息,从而可以实现服务代理,即用户只要和4A平台网络保持互通即可,不需要关心其与应用程序的网络资源是否可用,所有的网络请求都交予4A平台的代理服务器去执行。另外,用户在访问应用程序的过程中,内存数据库中预存有会话数据,从而实现对4A后台跨服务器的sess1n共享,有效避免访问不同服务器带来的sess1n信息不一致的问题,还可以保证用户登录的唯一性,即当前有且只能同一个用户在一处登录,有效降低用户访问的数量,最后再进行安全认证,从而实现基于SAML的安全认证。
[0014]在上述技术方案中,优选地,在所述在接收到对应用程序的访问请求时,通过代理服务器获取所述应用程序的地址中的预设单点登录信息之前,还包括:根据接收到的设置命令,通过所述代理服务器为所述应用程序设置预设单点登录信息;以及将所述应用程序的所述预设单点登录信息、所述应用程序IP和所述端口信息关联存储。
[0015]在该技术方案中,可以在代理服务器中为应用程序配置与其相对应的单点登录信息,该单点登录信息与应用程序的IP和端口信息关联并存储,例如,4A平台的访问地址为:
http://ss0.com.cn/ssoname......,应用程序提供的单点登录的地址:http://ip:port/
projectname/......,其中,projectname为应用程序工程名。在代理服务器中进行配置,
确定应用程序的IP:port (端口信息)=ssoname (单点登录信息名称),再将ssoname、
应用程序的单点登录信息(如projectname)和端口信息相关联并--对应,此时对应用程序配置完成后,在4A平台进行单点登录的地址变成http://ss0.com.cn/ssoname/
projectname/.......当用户在访问应用程序时,代理服务器会去截取该地址的ssoname
信息,根据ssoname信息去找到对应的IP和端口信息,并和projectname进行匹配,以防地址被改动。
[0016]在上述技术方案中,优选地,在所述通过代理服务器获取所述应用程序的地址中的预设单点登录信息之前,还包括:确定所述访问请求的发出方是否具有访问所述应用程序的权限;当确定所述发出方具有所述权限时,允许所述发出方通过所述代理服务器访问所述应用程序。
[0017]在该技术方案中,在代理服务器中将用户(请求的发出方)访问应用程序中的角色关联并存储起来,当用户在访问应用程序的某个模块或链接时,代理服务器根据用户的单点登录信息去判断该用户是否拥有访问应用程序中的资源的权限,若没有权限则阻止用户对应用程序进行访问,从而有效地控制用户访问的资源,即基于SAML的安全认证方法具有系统级别鉴权的功能,从而保证所有的资源都是被有相应权限的用户访问。
[0018]在上述技术方案中,优选地,所述根据内存数据库中预存的会话数据,进行安全认证,具体包括:根据所述访问请求,进行所述登录认证,并生成令牌凭据;对所述令牌凭据进行解析;根据解析结果,调用断言认证接口确定所述令牌凭据是否与所述内存数据库中的所述会话数据中的目标令牌凭据一致,以进行所述断言认证。
[0019]在该技术方案中,根据用户对应用程序的访问请求,进行登录认证,包括:为用户提供用户名、密码、图形验证码、短信验证码、第三方安全认证码等信息校验,并且校验通过后生成一个随机字母数字组成的令牌SSOToken存储在sess1n中并返回到4A平台的前台登录页面,然后为用户进行第二次信息认证(断言认证),前台登录页面通过解析XML中携带的令牌凭据,携带该令牌凭据调用断言认证接口进行令牌凭据的比对,若比对通过,该接口将用户基本信息通过XML文件传输到前台登录页面,并登录应用程序,若不通过则提示相应的错误信息。
[0020]在上述技术方案中,优选地,所述内存数据库包括但不限于日志型分布式存储数据库或分布式内存对象缓存数据库,以及所述安全认证包括但不限于登录认证和断言认证。
[0021]在该技术方案中,所述内存数据库包括但不限于日志型分布式存储数据库或分布式内存对象缓存数据库,典型的日志型分布式存储数据库如redis数据库,典型的分布式内存对象缓存数据库如memcached数据库。通过内存数据库存储sess1n,满足了高并发的用户的需求,从而提高了 4A平台的使用性能。其中,memcached数据库应用于高性能的分布式内存对象缓存系统,可以通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高数据库驱动网站的速度。而redis数据库是一种可基于内存亦可持久化的日志型分布式存储数据库,可提供多种语言的应用程序编程接口。
[0022]本发明的另一方面提出了一种安全认证系统,包括:获取单元,在接收到对应用程序的访问请求时,通过代理服务器获取所述应用程序的地址中的预设单点登录信息;访问单元,根据所述预设单点登录信息,确定与所述预设单点登录信息对应的应用程序IP和端口信息,以供根据所述应用程序IP和所述端口信息访问所述应用程序;认证单元,在访问所述应用程序的过程中,根据内存数据库中预存的会话数据,进行安全认证。
[0023]在该技术方案中,当应用程序在接入4A平台进行单点登录时,根据应用程序提供的单点登录信息,在代理服务器中配置与单点登登录信息相对应的IP的端口信息,从而可以实现服务代理,即用户只要和4A平台网络保持互通即可,不需要关心其与应用程序的网络资源是否可用,所有的网络请求都交予4A平台的代理服务器去执行。另外,用户在访问应用程序的过程中,内存数据库中预存有会话数据,从而实现对4A后台跨服务器的sess1n共享,有效避免访问不同服务器带来的sess1n信息不一致的问题,还可以保证用户登录的唯一性,即当前有且只能同一个用户在一处登录,有效降低用户访问的数量,最后再进行安全认证,从而实现安全认证。
[0024]在上述技术方案中,优选地,还包括:设置单元,在所述在接收到对应用程序的访问请求时,通过代理服务器获取所述应用程序的地址中的预设单点登录信息之前,根据接收到的设置命令,通过所述代理服务器为所述应用程序设置预设单点登录信息;以及存储单元,将所述应用程序的所述预设单点登录信息、所述应用程序IP和所述端口信息关联存储。
[0025]在该技术方案中,可以在代理服务器中为应用程序配置与其相对应的单点登录信息,该单点登录信息与应用程序的IP和端口信息关联并存储,例如,4A平台的访问地址为:
http://ss0.com.cn/ssoname......,应用程序提供的单点登录的地址:http://ip:port/
projectname/......,其中,pro jectname为应用程序工程名。在代理服务器中进行配置,
确定应用程序的IP:port (端口信息)=ssoname (单点登录信息名称),再将ssoname、
应用程序的单点登录信息(如projectname)和端口信息相关联并--对应,此时对应用程序配置完成后,在4A平台进行单点登录的地址变成http://ss0.com.cn/ssoname/
projectname/.......当用户在访问应用程序时,代理服务器会去截取该地址的ssoname
信息,根据ssoname信息去找到对应的IP和端口信息,并和projectname进行匹配,以防地址被改动。在上述技术方案中,优选地,还包括:确定单元,在所述通过代理服务器获取所述应用程序的地址中的预设单点登录信息之前,确定所述访问请求的发出方是否具有访问所述应用程序的权限,其中,当确定所述发出方具有所述权限时,允许所述发出方通过所述代理服务器访问所述应用程序。
[0026]在该技术方案中,在代理服务器中将用户(请求的发出方)访问应用程序中的角色关联并存储起来,当用户在访问应用程序的某个模块或链接时,代理服务器根据用户的单点登录信息去判断该用户是否拥有访问应用程序中的资源的权限,若没有权限则阻止用户对应用程序进行访问,从而有效地控制用户访问的资源,即安全认证方法具有系统级别鉴权的功能,从而保证所有的资源都是被有相应权限的用户访问。
[0027]在上述技术方案中,优选地,所述认证单元具体用于:根据所述访问请求,进行所述登录认证,并生成令牌凭据,以及对所述令牌凭据进行解析,并根据解析结果,调用断言认证接口确定所述令牌凭据是否与所述内存数据库中的所述会话数据中的目标令牌凭据一致,以进行所述断言认证。
[0028]在该技术方案中,根据用户对应用程序的访问请求,进行登录认证,包括:为用户提供用户名、密码、图形验证码、短信验证码、第三方安全认证码等信息校验,并且校验通过后生成一个随机字母数字组成的令牌SSOToken存储在sess1n中并返回到4A平台的前台登录页面,然后为用户进行第二次信息认证(断言认证),前台登录页面通过解析XML中携带的令牌凭据,携带该令牌凭据调用断言认证接口进行令牌凭据的比对,若比对通过,该接口将用户基本信息通过XML文件传输到前台登录页面,并登录应用程序,若不通过则提示相应的错误信息。
[0029]在上述技术方案中,优选地,所述内存数据库包括但不限于日志型分布式存储数据库或分布式内存对象缓存数据库,以及所述安全认证包括但不限于登录认证和断言认证。
[0030]在该技术方案中,所述内存数据库包括但不限于日志型分布式存储数据库或分布式内存对象缓存数据库,典型的日志型分布式存储数据库如redis数据库,典型的分布式内存对象缓存数据库如memcached数据库。通过内存数据库存储sess1n,满足了高并发的用户的需求,从而提高了 4A平台的使用性能。其中,memcached数据库应用于高性能的分布式内存对象缓存系统,可以通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高数据库驱动网站的速度。而redis数据库是一种可基于内存亦可持久化的日志型分布式存储数据库,可提供多种语言的应用程序编程接口。
[0031]通过以上技术方案,一方面,实现了服务代理,从而提高了安全认证系统的安全性,避免应用程序的资源遭到泄漏,还使该系统具有日志审计和权限控制的功能,提高了应用程序中资源的利用效率,另一方面,实现了 sess1n共享,有效地避免了访问不同服务器带来的sess1n信息不一致的问题。
【专利附图】
【附图说明】
[0032]图1示出了相关技术中的安全认证系统的原理示意图;
[0033]图2示出了根据本发明的一个实施例的安全认证方法的流程图;
[0034]图3示出了根据本发明的一个实施例的安全认证系统的框图;
[0035]图4示出了根据本发明的一个实施例的安全认证系统的原理示意图。
【具体实施方式】
[0036]为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和【具体实施方式】对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0037]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
[0038]图2示出了根据本发明的一个实施例的安全认证方法的流程图。
[0039]如图2所示,根据本发明的一个实施例的安全认证方法,包括:
[0040]步骤202,在接收到对应用程序的访问请求时,通过代理服务器获取应用程序的地址中的预设单点登录信息。
[0041]步骤204,根据预设单点登录信息,确定与预设单点登录信息对应的应用程序IP和端口信息,以供根据应用程序IP和端口信息访问应用程序。
[0042]步骤206,在访问应用程序的过程中,根据内存数据库中预存的会话数据,进行安全认证。
[0043]在该技术方案中,当应用程序在接入4A平台进行单点登录时,根据应用程序提供的单点登录信息,在代理服务器中配置与单点登登录信息相对应的IP的端口信息,从而可以实现服务代理,即用户只要和4A平台网络保持互通即可,不需要关心其与应用程序的网络资源是否可用,所有的网络请求都交予4A平台的代理服务器去执行。另外,用户在访问应用程序的过程中,内存数据库中预存有会话数据,从而实现对4A后台跨服务器的sess1n共享,有效避免访问不同服务器带来的sess1n信息不一致的问题,还可以保证用户登录的唯一性,即当前有且只能同一个用户在一处登录,有效降低用户访问的数量,最后再进行安全认证,从而实现基于SAML的安全认证。
[0044]在上述技术方案中,优选地,在步骤202之前,还包括:根据接收到的设置命令,通过代理服务器为应用程序设置预设单点登录信息;以及将应用程序的预设单点登录信息、应用程序IP和端口信息关联存储。
[0045]在该技术方案中,可以在代理服务器中为应用程序配置与其相对应的单点登录信息,该单点登录信息与应用程序的IP和端口信息关联并存储,例如,4A平台的访问地址为:
http://ss0.com.cn/ssoname......,应用程序提供的单点登录的地址:http://ip:port/
projectname/......,其中,pro jectname为应用程序工程名。在代理服务器中进行配置,
确定应用程序的IP:port (端口信息)=ssoname (单点登录信息名称),再将ssoname、
应用程序的单点登录信息(如projectname)和端口信息相关联并--对应,此时对应用程序配置完成后,在4A平台进行单点登录的地址变成http://ss0.com.cn/ssoname/
projectname/.......当用户在访问应用程序时,代理服务器会去截取该地址的ssoname
信息,根据ssoname信息去找到对应的IP和端口信息,并和projectname进行匹配,以防地址被改动。在上述技术方案中,优选地,在通过代理服务器获取应用程序的地址中的预设单点登录信息之前,还包括:确定访问请求的发出方是否具有访问应用程序的权限;当确定发出方具有权限时,允许发出方通过代理服务器访问应用程序。
[0046]在该技术方案中,在代理服务器中将用户(请求的发出方)访问应用程序中的角色关联并存储起来,当用户在访问应用程序的某个模块或链接时,代理服务器根据用户的单点登录信息去判断该用户是否拥有访问应用程序中的资源的权限,若没有权限则阻止用户对应用程序进行访问,从而有效地控制用户访问的资源,即基于SAML的安全认证方法具有系统级别鉴权的功能,从而保证所有的资源都是被有相应权限的用户访问。
[0047]在上述技术方案中,优选地,步骤206具体包括:根据访问请求,进行登录认证,并生成令牌凭据;对令牌凭据进行解析;根据解析结果,调用断言认证接口确定令牌凭据是否与内存数据库中的会话数据中的目标令牌凭据一致,以进行断言认证。
[0048]在该技术方案中,根据用户对应用程序的访问请求,进行登录认证,包括:为用户提供用户名、密码、图形验证码、短信验证码、第三方安全认证码等信息校验,并且校验通过后生成一个随机字母数字组成的令牌SSOToken存储在sess1n中并返回到4A平台的前台登录页面,然后为用户进行第二次信息认证(断言认证),前台登录页面通过解析XML中携带的令牌凭据,携带该令牌凭据调用断言认证接口进行令牌凭据的比对,若比对通过,该接口将用户基本信息通过XML文件传输到前台登录页面,并登录应用程序,若不通过则提示相应的错误信息。
[0049]在上述技术方案中,优选地,内存数据库包括但不限于日志型分布式存储数据库或分布式内存对象缓存数据库,以及安全认证包括但不限于登录认证和断言认证。
[0050]在该技术方案中,所述内存数据库包括但不限于日志型分布式存储数据库或分布式内存对象缓存数据库,典型的日志型分布式存储数据库如redis数据库,典型的分布式内存对象缓存数据库如memcached数据库。通过内存数据库存储sess1n,满足了高并发的用户的需求,从而提高了 4A平台的使用性能。其中,memcached数据库应用于高性能的分布式内存对象缓存系统,可以通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高数据库驱动网站的速度。而redis数据库是一种可基于内存亦可持久化的日志型分布式存储数据库,可提供多种语言的应用程序编程接口。
[0051]图3示出了根据本发明的一个实施例的安全认证系统的框图。
[0052]如图3所示,根据本发明的一个实施例的安全认证系统300,包括:获取单元302,在接收到对应用程序的访问请求时,通过代理服务器获取应用程序的地址中的预设单点登录信息;访问单元,根据预设单点登录信息,确定与预设单点登录信息对应的应用程序IP和端口信息,以供根据应用程序IP和端口信息访问应用程序;认证单元306,在访问应用程序的过程中,根据内存数据库中预存的会话数据,进行安全认证。
[0053]在该技术方案中,当应用程序在接入4A平台进行单点登录时,根据应用程序提供的单点登录信息,在代理服务器中配置与单点登登录信息相对应的IP的端口信息,从而可以实现服务代理,即用户只要和4A平台网络保持互通即可,不需要关心其与应用程序的网络资源是否可用,所有的网络请求都交予4A平台的代理服务器去执行。另外,用户在访问应用程序的过程中,内存数据库中预存有会话数据,从而实现对4A后台跨服务器的sess1n共享,有效避免访问不同服务器带来的sess1n信息不一致的问题,还可以保证用户登录的唯一性,即当前有且只能同一个用户在一处登录,有效降低用户访问的数量,最后再进行安全认证,从而实现基于SAML的安全认证。
[0054]在上述技术方案中,优选地,还包括:设置单元308,在在接收到对应用程序的访问请求时,通过代理服务器获取应用程序的地址中的预设单点登录信息之前,根据接收到的设置命令,通过代理服务器为应用程序设置预设单点登录信息;以及存储单元310,将应用程序的预设单点登录信息、应用程序IP和端口信息关联存储。
[0055]在该技术方案中,可以在代理服务器中为应用程序配置与其相对应的单点登录信息,该单点登录信息与应用程序的IP和端口信息关联并存储,例如,4A平台的访问地址为:
http://ss0.com.cn/ssoname......,应用程序提供的单点登录的地址:http://ip:port/
projectname/......,其中,pro jectname为应用程序工程名。在代理服务器中进行配置,
确定应用程序的IP:port (端口信息)=ssoname (单点登录信息名称),再将ssoname、
应用程序的单点登录信息(如projectname)和端口信息相关联并--对应,此时对应用程序配置完成后,在4A平台进行单点登录的地址变成http://ss0.com.cn/ssoname/
projectname/.......当用户在访问应用程序时,代理服务器会去截取该地址的ssoname
信息,根据ssoname信息去找到对应的IP和端口信息,并和projectname进行匹配,以防地址被改动。在上述技术方案中,优选地,还包括:确定单元312,在通过代理服务器获取应用程序的地址中的预设单点登录信息之前,确定访问请求的发出方是否具有访问应用程序的权限,其中,当确定发出方具有权限时,允许发出方通过代理服务器访问应用程序。
[0056]在该技术方案中,在代理服务器中将用户(请求的发出方)访问应用程序中的角色关联并存储起来,当用户在访问应用程序的某个模块或链接时,代理服务器根据用户的单点登录信息去判断该用户是否拥有访问应用程序中的资源的权限,若没有权限则阻止用户对应用程序进行访问,从而有效地控制用户访问的资源,即基于SAML的安全认证方法具有系统级别鉴权的功能,从而保证所有的资源都是被有相应权限的用户访问。
[0057]在上述技术方案中,优选地,认证单元306具体用于:根据访问请求,进行登录认证,并生成令牌凭据,以及对令牌凭据进行解析,并根据解析结果,调用断言认证接口确定令牌凭据是否与内存数据库中的会话数据中的目标令牌凭据一致,以进行断言认证。
[0058]在该技术方案中,根据用户对应用程序的访问请求,进行登录认证,包括:为用户提供用户名、密码、图形验证码、短信验证码、第三方安全认证码等信息校验,并且校验通过后生成一个随机字母数字组成的令牌SSOToken存储在sess1n中并返回到4A平台的前台登录页面,然后为用户进行第二次信息认证(断言认证),前台登录页面通过解析XML中携带的令牌凭据,携带该令牌凭据调用断言认证接口进行令牌凭据的比对,若比对通过,该接口将用户基本信息通过XML文件传输到前台登录页面,并登录应用程序,若不通过则提示相应的错误信息。
[0059]在上述技术方案中,优选地,内存数据库包括但不限于日志型分布式存储数据库或分布式内存对象缓存数据库,以及安全认证包括但不限于登录认证和断言认证。
[0060]在该技术方案中,所述内存数据库包括但不限于日志型分布式存储数据库或分布式内存对象缓存数据库,典型的日志型分布式存储数据库如redis数据库,典型的分布式内存对象缓存数据库如memcached数据库。通过内存数据库存储sess1n,满足了高并发的用户的需求,从而提高了 4A平台的使用性能。其中,memcached数据库应用于高性能的分布式内存对象缓存系统,可以通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高数据库驱动网站的速度。而redis数据库是一种可基于内存亦可持久化的日志型分布式存储数据库,可提供多种语言的应用程序编程接口。
[0061]图4示出了根据本发明的一个实施例的安全认证系统的原理示意图。
[0062]如图4所示,根据本发明的一个实施例的安全认证系统400 (相当于图3示出的实施例的安全认证系统300),可以实现服务代理和sess1n共享。
[0063]下面详细介绍基于SAML的安全认证系统是如何实现服务代理和sess1n共享的。
[0064]当4A平台的访问地址为:http://ss0.com.cn/ssoname......时,基于SAML的安全认证系统实现服务代理需要满足以下两项:
[0065]1、配置要求。第三方应用系统中的应用程序在接入4A平台进行单点登录时,针对应用程序提供的SSO地址http://ip:port/projectname/......,可以在代理服务器中进行相应的配置。具体地,可以为该应用配置一个相对应的单点登录信息名称,该信息与应用的IP和端口信息关联起来,即IP:port = ssoname,再将ssoname与projectname--
关联,配置完成之后,在4A平台进行SSO登录的地址变成http://ss0.com.cn/ssoname/
projectname/.......当用户在访问第三方应用系统中的应用程序时,代理服务器会去截取该地址的ssoname信息,根据ssoname信息去找到对应的IP和port,和projectname进行匹配,以防地址被人为改动。
[0066]2、权限控制,在代理服务器端可以将用户与第三方应用系统的应用程序的角色关联存储起来。当用户在访问应用程序的某个模块或链接时,代理服务器根据用户信息去判断用户是否拥有访问该资源的权限,若用户没有权限则阻止用户进行访问。
[0067]基于SAML的安全认证系统实现sess1n共享时,需要将sess1n数据保存在高性能的分布式内存对象缓存系统的memcached、redis之类的内存数据库中,memcached数据库是基于内存存储数据的,性能很高,由于内存数据的读取速度很快,与磁盘读取的速度不是一个数量级,因此,在用户并发量很大的时候尤其合适。另外,使用内存存储还可以方便统计在线人数,内存的速度比磁盘访问速度快,内存数据库系统能够控制内存中的过期数据自动失效。memcached处理的原子是每一个key_value(键值对),key (键值)会通过一个hash (哈希)算法转化成hash-key (哈希键),便于查找和对比,并实现尽可能的散列。同时,memcached用的是一个二级散列,通过一张大哈希表来维护。memcached由服务端和客户端两个核心组件组成,在一个memcached的查询中,客户端先通过计算key的hash值来确定key-value对所处在的服务端的位置,客户端就会发送一个查询请求给对应的服务端,让它来查找确切的数据。因为这之间没有交互以及多播协议,所以,memcached交互带给网络的影响是最小化的。
[0068]综上所述,本发明的技术方案主要包括:
[0069]1、根据代理功能开发出相应代理服务,与SAML认证接口结合起来,实现用户请求代理服务。
[0070]2、配置应用程序的SSO地址和用户系统权限角色对应表。
[0071]3、在服务器端开发sess1n共享功能模块,结合应用部署平台、4A认证平台实现负载过程中4A认证信息在服务器端共享。
[0072]通过该技术方案,可以实现以下有益效果:
[0073]1、提升安全性,用户对第三方应用系统中的应用程序的每一次操作都需要经过4A平台的严格验证,从而保护了资源不被泄露。
[0074]2、实现日志审计,用户对应用程序的所有操作都被日志监控并记录,方便对用户的行为日志审计。
[0075]3、实现权限控制,对用户需要访问的资源有效控制,即系统级别鉴权,保证所有的资源都是被有相应权限的用户访问。
[0076]4、实现服务代理,用户只要和4A平台网络保持互通即可,不需要关心其与应用程序的网络资源是否可用,所有的网络请求都交予4A平台的代理服务器去执行。
[0077]5、基于内存存储sess1n,性能高,对于高并发用户很合适。
[0078]6、达到会话共享,有效避免访问不同服务器带来的sess1n信息不一致的问题。
[0079]7、可以保证用户登录的唯一性,即当前有且只能同一个用户在一处登录,有效降低用户访问数量。
[0080]以上结合附图详细说明了本发明的技术方案,通过以上技术方案,一方面,实现了服务代理,从而提高了基于SAML的安全认证系统的安全性,避免应用程序的资源遭到泄漏,还使该系统具有日志审计和权限控制的功能,提高了应用程序中资源的利用效率,另一方面,实现了 sess1n共享,有效地避免了访问不同服务器带来的sess1n信息不一致的问题。
[0081]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种安全认证方法,其特征在于,包括: 在接收到对应用程序的访问请求时,通过代理服务器获取所述应用程序的地址中的预设单点登录信息; 根据所述预设单点登录信息,确定与所述预设单点登录信息对应的应用程序IP和端口信息,以供根据所述应用程序IP和所述端口信息访问所述应用程序; 在访问所述应用程序的过程中,根据内存数据库中预存的会话数据,进行安全认证。
2.根据权利要求1所述的安全认证方法,其特征在于,在所述在接收到对应用程序的访问请求时,通过代理服务器获取所述应用程序的地址中的预设单点登录信息之前,还包括: 根据接收到的设置命令,通过所述代理服务器为所述应用程序设置预设单点登录信息;以及 将所述应用程序的所述预设单点登录信息、所述应用程序IP和所述端口信息关联存储。
3.根据权利要求2所述的安全认证方法,其特征在于,在所述通过代理服务器获取所述应用程序的地址中的预设单点登录信息之前,还包括: 确定所述访问请求的发出方是否具有访问所述应用程序的权限; 当确定所述发出方具有所述权限时,允许所述发出方通过所述代理服务器访问所述应用程序。
4.根据权利要求1所述的安全认证方法,其特征在于,所述根据内存数据库中预存的会话数据,进行安全认证,具体包括: 根据所述访问请求,进行所述登录认证,并生成令牌凭据; 对所述令牌凭据进行解析; 根据解析结果,调用断言认证接口确定所述令牌凭据是否与所述内存数据库中的所述会话数据中的目标令牌凭据一致,以进行所述断言认证。
5.根据权利要求1至4中任一项所述的安全认证方法,其特征在于,所述内存数据库包括日志型分布式存储数据库或分布式内存对象缓存数据库,以及 所述安全认证包括登录认证和断言认证。
6.一种安全认证系统,其特征在于,包括: 获取单元,在接收到对应用程序的访问请求时,通过代理服务器获取所述应用程序的地址中的预设单点登录信息; 访问单元,根据所述预设单点登录信息,确定与所述预设单点登录信息对应的应用程序IP和端口信息,以供根据所述应用程序IP和所述端口信息访问所述应用程序; 认证单元,在访问所述应用程序的过程中,根据内存数据库中预存的会话数据,进行安全认证。
7.根据权利要求6所述的安全认证系统,其特征在于,还包括: 设置单元,在所述在接收到对应用程序的访问请求时,通过代理服务器获取所述应用程序的地址中的预设单点登录信息之前,根据接收到的设置命令,通过所述代理服务器为所述应用程序设置预设单点登录信息;以及 存储单元,将所述应用程序的所述预设单点登录信息、所述应用程序IP和所述端口信息关联存储。
8.根据权利要求7所述的安全认证系统,其特征在于,还包括: 确定单元,在所述通过代理服务器获取所述应用程序的地址中的预设单点登录信息之前,确定所述访问请求的发出方是否具有访问所述应用程序的权限,其中,当确定所述发出方具有所述权限时,允许所述发出方通过所述代理服务器访问所述应用程序。
9.根据权利要求6所述的安全认证系统,其特征在于,所述认证单元具体用于: 根据所述访问请求,进行所述登录认证,并生成令牌凭据,以及对所述令牌凭据进行解析,并根据解析结果,调用断言认证接口确定所述令牌凭据是否与所述内存数据库中的所述会话数据中的目标令牌凭据一致,以进行所述断言认证。
10.根据权利要求6至9中任一项所述的安全认证系统,其特征在于,所述内存数据库包括日志型分布式存储数据库或分布式内存对象缓存数据库,以及 所述安全认证包括登录认证和断言认证。
【文档编号】H04L29/06GK104506542SQ201410837071
【公开日】2015年4月8日 申请日期:2014年12月29日 优先权日:2014年12月29日
【发明者】张兵 申请人:深圳中兴网信科技有限公司