一种云平台统一身份认证方法及系统与流程

文档序号:17772880发布日期:2019-05-28 19:39阅读:577来源:国知局
一种云平台统一身份认证方法及系统与流程

本发明涉及网络技术领域,尤其涉及一种云平台统一身份认证方法及系统。



背景技术:

云平台目前的多个应用程序包括未来构建的应用程序,需要一个集中式的身份管理及身份认证系统。通过集中式的身份管理和认证系统,可以统一身份管理规范、统一身份认证体系,最终避免因构建各自身份认证体系造成的浪费、降低身份管理的成本、提高身份认证的安全。



技术实现要素:

为解决上述技术问题,本发明提供一种云平台统一身份认证方法及系统,可以统一身份管理和身份认证,降低身份认证的管理成本,提供身份认证的管理效率和安全。

本发明提供的一种云平台统一身份认证方法,包括下述步骤:

构建包含有多个统一身份认证服务器的集群,并对所述集群做负载均衡处理;

所述统一身份认证服务器接收来自客户端的用户登录信息,并验证所述用户登录信息,在所述用户登录信息验证通过之后,通过设置的统一域名创建tgt票据并生成与所述tgt票据相对应的st票据,且将所述st票据返回至所述客户端,以便所述客户端利用所述st票据在所述集群的同一域名下单点登录或者在所述集群下跨域名单点登录;

所述客户端读取数字证书信息,并获取与所述数字证书信息对应的用户名信息/用户口令,且将所述数字证书信息以及所述用户名信息/用户口令发送至所述统一身份认证服务器;

所述统一身份认证服务器根据所述数字证书信息判断对应的数字证书是否过期或者被撤销,以及核实所述数字证书信息对应的数字证书是否被注册,还核实所述用户名信息/用户口令对应的用户身份信息。

优选地,还包括下述步骤:

每一个统一身份认证服务器将所述tgt票据以及所述st票据缓存至缓存服务器,以通过所述缓存服务器为所有的统一身份认证服务器提供集中共享的高可用服务;

将所有客户端与所述统一身份认证服务器之间的会话保存在会话管理服务器中,以实现会话的高可用。

优选地,还包括下述步骤:

在证书授权中心下载证书吊销列表,以通过所述证书吊销列表判断所述数字证书是否吊销。

优选地,通过ldap账号服务器核实所述数字证书信息对应的数字证书是否被注册,以及核实所述用户名信息/用户口令对应的用户身份信息。

优选地,所述客户端为web应用客户端或者c/s应用客户端;

当所述客户端为web应用客户端时,所述客户端与所述统一身份认证服务器之间通过http/https协议进行数据交互;

当所述客户端为c/s客户端时,所述客户端与所述统一身份认证服务器之间通过所述统一身份认证服务器的api接口进行数据交互。

本发明还提供一种云平台统一身份认证系统,其包括客户端和多个统一身份认证服务器,以及集群搭建模块,其中,所述客户端包括身份验证信息收集模块,所述统一身份认证服务器包括单点登录模块、身份认证模块;

所述集群搭建模块,用于构建包含有多个统一身份认证服务器的集群,并对所述集群做负载均衡处理;

所述单点登录模块,用于接收来自客户端的用户登录信息,并验证所述用户登录信息,在所述用户登录信息验证通过之后,通过设置的统一域名创建tgt票据并生成与所述tgt票据相对应的st票据,且将所述st票据返回至所述客户端,以便所述客户端利用所述st票据在所述集群的同一域名下单点登录或者在所述集群下跨域名单点登录;

所述身份验证信息收集模块,用于读取数字证书信息,并获取与所述数字证书信息对应的用户名信息/用户口令,且将所述数字证书信息以及所述用户名信息/用户口令发送至所述统一身份认证服务器;

所述身份认证模块,用于根据所述数字证书信息判断对应的数字证书是否过期或者被撤销,以及核实所述数字证书信息对应的数字证书是否被注册,还核实所述用户名信息/用户口令对应的用户身份信息。

优选地,所述统一身份认证服务器还包括票据缓存模块,所述客户端还包括会话缓存模块;

所述票据缓存模块,用于将所述tgt票据以及所述st票据缓存至缓存服务器,以通过所述缓存服务器为所有的统一身份认证服务器提供集中共享的高可用服务;

所述会话缓存模块,用于将所有客户端与所述统一身份认证服务器之间的会话保存在会话管理服务器中,以实现会话的高可用。

优选地,所述身份认证模块还,还用于在证书授权中心下载证书吊销列表,以通过所述证书吊销列表判断所述数字证书是否吊销。

优选地,所述身份认证模块进一步用于通过ldap账号服务器核实所述数字证书信息对应的数字证书是否被注册,以及核实所述用户名信息/用户口令对应的用户身份信息。

优选地,所述客户端为web应用客户端或者c/s应用客户端;

当所述客户端为web应用客户端时,所述客户端与所述统一身份认证服务器之间通过http/https协议进行数据交互;

当所述客户端为c/s客户端时,所述客户端与所述统一身份认证服务器之间通过所述统一身份认证服务器的api接口进行数据交互。

实施本发明,具有如下有益效果:本发明可以为云平台提供一个统一集中式的身份管理及身份认证系统,通过统一身份认证服务器可以完成客户端单点登录的功能,也可以实现身份认证的功能,可以统一身份管理规范、统一身份认证体系,最终避免因构建各自身份认证体系造成的浪费、降低身份管理的成本、提高身份认证的安全。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的云平台统一身份认证方法的流程图。

图2是本发明提供的云平台统一身份认证系统的示意图。

图3是本发明提供的统一身份认证服务器部署方案示意图。

图4是本发明提供的web应用客户端单点登录主流程示意图。

图5是本发明提供的web应用客户端跨域名访问的主流程示意图。

图6是本发明提供的c/s应用客户端单点登录的主流程示意图。

图7是本发明提供的web应用客户端的数字证书认证流程示意图。

具体实施方式

本发明提供一种云平台统一身份认证方法,如图1所示,其包括下述步骤:

构建包含有多个统一身份认证服务器的集群,并对集群做负载均衡处理;

统一身份认证服务器接收来自客户端的用户登录信息,并验证用户登录信息,在用户登录信息验证通过之后,通过设置的统一域名创建tgt票据(ticketgrantingticket,登录票据)并生成与tgt票据相对应的st票据(serviceticket,服务票据),且将st票据返回至客户端,以便客户端利用st票据在集群的同一域名下单点登录或者在集群下跨域名单点登录,这里的跨域名单点登录指的是在单个认证管理之下的;

客户端读取数字证书信息,并获取与数字证书信息对应的用户名信息/用户口令,且将数字证书信息以及用户名信息/用户口令发送至统一身份认证服务器;

统一身份认证服务器根据数字证书信息判断对应的数字证书是否过期或者被撤销,以及核实数字证书信息对应的数字证书是否被注册,还核实用户名信息/用户口令对应的用户身份信息。

进一步地,云平台统一身份认证方法还包括下述步骤:

每一个统一身份认证服务器将tgt票据以及st票据缓存至缓存服务器,以通过缓存服务器为所有的统一身份认证服务器提供集中共享的高可用服务;

将所有客户端与统一身份认证服务器之间的会话保存在会话管理服务器中,以实现会话的高可用。

进一步地,云平台统一身份认证方法还包括下述步骤:

在证书授权中心下载证书吊销列表,以通过证书吊销列表判断数字证书是否吊销。

进一步地,通过ldap(

lightweightdirectoryaccessprotocol,轻量目录访问协议)账号服务器核实数字证书信息对应的数字证书是否被注册,以及核实用户名信息/用户口令对应的用户身份信息。

进一步地,客户端为web应用客户端或者c/s应用客户端。

当客户端为web应用客户端时,客户端与统一身份认证服务器之间通过http/https协议进行数据交互。

当客户端为c/s客户端时,客户端与统一身份认证服务器之间通过统一身份认证服务器的api(applicationprogramminginterface,应用程序编程接口)接口进行数据交互。

优选地,上述的客户端还可以设置有校验图形验证码的功能(图形验证码的人的识别率≥70%,ocr软件识别率≤10%),以及单点登出的功能。上述的身份认证支持多因素认证,除了用户口令、移动数字证书信息认证之外,还可以有windows域账户的认证等。

统一身份认证服务器还可以集成口令管理功能,包括内置用户口令加密算法、口令有效周期、密码强度校验具有组合检查规则的可插入能力、用户重新设置密码等。

上述的单点登录、身份认证、用户及权限管理等技术需求,属于统一身份认证系统,由于功能相对独立,要求此部分功能能够独立部署,与应用系统分离。

单点登录认证票据具备以下特征:一次有效,有效时长可配置;可防止伪造,策略可配置;客户端不可落地。

单点登录是一个独立部署的服务,支持用户集中的身份认证功能,提供不同域应用之间的单点登录;身份认证则会根据用户输入的用户名、密码或其他认证信息来验证用户的真实身份。

认证支持非安全连接或安全连接(ssl),同时支持单向、双向ssl;身份验证提供以下安全问题的措施:包括网络窃听、暴力攻击、字典攻击、重放cookie攻击、盗窃凭据、暴力注册与提交数据攻击等。单点登录实现方式使用主流sso(singlesignon,单点登录)实现方案:cas(centralauthenticationservice,中央认证服务)。

统一身份认证系统选择jasigcas(技术约束)作为单点登录的核心基础组件。cas,是耶鲁大学开发的开源系统,旨在为web应用系统提供一种可靠的单点登录方法。cas与其他的开源sso方案比较具有下面的优点:

1.sso开放性好,设计理念先进、体系结构合理、配置简单、易于理解,支持代理功能;

2.支持java、.net、php等多种客户端,可以独立部署;

3.有比较完整的文档协议;

4.被业界广泛应用、技术成熟可靠。

账号服务器选用openldap。openldap是目前应用最广泛的ldap的开源实现。图形验证码选用kaptcha。相比jcaptcha的优点:

1)kaptcha很容易安装使用,并且默认输出验证码。

2)kaptcha的验证码值和session关联,支持多台服务器集群。

本发明提供一种云平台统一身份认证系统,其包括图2所示的客户端和多个统一身份认证服务器,以及图3所示的集群搭建模块,其中,客户端包括身份验证信息收集模块,统一身份认证服务器包括单点登录模块、身份认证模块。

集群搭建模块用于构建包含有多个统一身份认证服务器的集群,并对集群做负载均衡处理。

单点登录模块用于接收来自客户端的用户登录信息,并验证用户登录信息,在用户登录信息验证通过之后,通过设置的统一域名创建tgt票据并生成与tgt票据相对应的st票据,且将st票据返回至客户端,以便客户端利用st票据在集群的同一域名下单点登录或者在集群下跨域名单点登录。

身份验证信息收集模块用于读取数字证书信息,并获取与数字证书信息对应的用户名信息/用户口令,且将数字证书信息以及用户名信息/用户口令发送至统一身份认证服务器。

身份认证模块用于根据数字证书信息判断对应的数字证书是否过期或者被撤销,以及核实数字证书信息对应的数字证书是否被注册,还核实用户名信息/用户口令对应的用户身份信息。

进一步地,统一身份认证服务器还包括票据缓存模块,客户端还包括会话缓存模块。

票据缓存模块用于将tgt票据以及st票据缓存至缓存服务器,以通过缓存服务器为所有的统一身份认证服务器提供集中共享的高可用服务。

会话缓存模块用于将所有客户端与统一身份认证服务器之间的会话保存在会话管理服务器中,以实现会话的高可用。

进一步地,身份认证模块还用于在证书授权中心下载证书吊销列表,以通过证书吊销列表判断数字证书是否吊销。

进一步地,身份认证模块进一步用于通过ldap账号服务器核实数字证书信息对应的数字证书是否被注册,以及核实用户名信息/用户口令对应的用户身份信息。

进一步地,客户端为web应用客户端或者c/s应用客户端。

当客户端为web应用客户端时,客户端与统一身份认证服务器之间通过http/https协议进行数据交互。

当客户端为c/s客户端时,客户端与统一身份认证服务器之间通过统一身份认证服务器的api接口进行数据交互。

单点登录的客户端登录分为web应用客户端登录和c/s应用客户端登录,客户端登录的作用是负责代理单点登录的服务调用,简化应用程序对单点登录的集成难度,只要应用程序安装客户端登录,通过简单的配置,就可以集成单点登录功能,无需对应用程序进行修改。

客户端登录和统一身份认证服务器的交互通过http/https协议进行。c/s应用客户端通过cas服务器(即统一身份认证服务器内部的单点登录模块)的restfulapi来实现单点登录的tgt/st获取和票据验证。

单点登录的sso会话保存在会话管理中,以支持sso会话的集中管理。

单点登录的票据信息通过缓存服务集中存储。

身份认证通过加密/解密算法组件对用户的密码进行加密并进行保存。

身份认证通过ca中心(证书授权中心)下载更新crl(证书吊销列表)。

统一身份认证服务器包含两个逻辑组件:单点登录和身份认证,单点登录模块负责处理客户端的单点登录及票据验证的请求,并通过身份认证模块进行用户的身份认证。

身份认证模块调用帐号服务器进行身份认证,帐号服务器选择ldap帐号服务器。用户修改的密码保存至ldap账号服务器。

用户管理通过数据库方式共享用户扩展信息,身份认证通过数据库连接方式获取用户的扩展信息。

如图3所示,为了实现统一身份认证系统无单点故障的高可用需求,需要解决sso(单点登录)session和票据的共享,可以采用集中共享和分布式复制到两种方案,本系统采用集中共享的高可用方案。

统一身份认证服务采用集群方式,使用nginx做负载均衡和failover(故障切换)。

cas票据(包括tgt票据和st票据)集中缓存在缓存服务器上,以防止在统一身份认证服务器的单点故障后造成cas票据丢失。

为了支持cas票据在缓存服务器不会因单点故障而丢失,需要缓存服务器提供高可用方案。

因为tgt票据是保存在tgt-cookie中的,为了使得集群内任何一台统一身份认证服务器生成的tgt-cookie对集群内的所有cas服务器(也即是上述的单点登录模块)可见,需要设置相同的域名。需要在warncookiegenerator和ticketgrantingtiketcookiegenerator的票据生成策略中增加cookiedomain的设置,设置成统一的域名,比如设置所有服务器的相同父域名cas.szse.cn。

如图4~7所示,图4示出了单点登录的主流程,图5示出了web应用客户端跨域名访问的主流程,图6示出了c/s应用客户端单点登录的主流程,图7示出了web应用客户端的数字证书认证流程。

ldap数据的图表结构建议在“people”下直接存放各个用户信息(避免以后group的变化导致结构变化),通过在每个用户信息中增加简单的“ou”属性来区分用户分组。

本发明可以为云平台提供一个统一集中式的身份管理及身份认证系统,可以统一身份管理规范、统一身份认证体系,最终避免因构建各自身份认证体系造成的浪费、降低身份管理的成本、提高身份认证的安全。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1