基于网络控制器的局域网单点登录方法

文档序号:9814246阅读:611来源:国知局
基于网络控制器的局域网单点登录方法
【技术领域】
[0001]本发明涉及一种基于网络控制器的局域网单点登录方法,属于网络控制技术领域。
【背景技术】
[0002]大型的企业(如南京供电公司等)往往已经在企业内部存在多个信息子系统,分别用来处理不同的业务。为了全面整合现有的多个信息系统,实现企业的数据资源等信息的统一管理,首先需要对现有信息系统的登陆用户名和密码进行统一,即实现对现有多信息系统的全局统一的单点登录(即Single Sign-On,简称SS0)。单点登录是包括企业在内的各类组织对其业务进行整合时必须解决的问题之一。单点登录可使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的其它应用系统,即用户只需登录一次,便可通过单点登录系统访问后台的多个应用系统,二次登录时无需重新输入用户名和密码。
[0003]CAS(即Central Authenticat1n Service)是一款不错的针对Web应用的单点登录框架。现有的基于CAS技术的单点登录方法如图1所示,参与单点登录过程的有用户、子系统、CAS客户端、CAS服务器端等。
[0004]CAS框架的基本工作原理(角色分工)如下:
I)用户正常使用各个子系统。
[0005]2)各子系统必须改造,或者已包含CAS客户端,或者最初就用CAS客户端构建。通常,一种CAS服务器端会提供大量符合不同技术平台的客户端实现,以尽可能集成多数子系统。
[0006]3)植入到各应用子系统中的CAS客户端:用户访问子系统时,子系统首先用自己的方式(如,借助于Sess1n中的状态设值)识别用户是否已经成功登录过本子系统,如果发现用户未曾登录子系统,则让CAS客户端查看用户是否在CAS服务器上登录过(查看是否拥有CAS服务器设置的Ticket),如果没有登录过,则将用户请求重定向给CAS服务器进行登录。如果登录过,CAS客户端只需要在后台向CAS服务器申请验证用户持有的Ticket是否合法,不合法的用户仍将需要被重定向到CAS服务端登录验证。
[0007]4)CAS服务器端:如果有用户过来登录,则给予登录页面,待用户输入身份信息并提交,CAS服务器认证用户。如果合法,则在客户请求中设置Ticket,将用户请求重定向到来源子系统。如果有子系统(通过内嵌的CAS客户端)过来验证Ticket是否合法,则将验证结果直接返回给子系统。
[0008]从以上工作原理能看出,传统的基于CAS框架的单点登录方法需要在各子系统中集成CAS客户端。但对于企业中大量存在的且已经开发并部署完成的信息管理子系统,这种方法需要我们逐一改造每个子系统的安全模块。但通常企业内部的信息系统来源各异,有些系统没有源代码,有些系统虽有源代码但不好修改,而且可能各系统使用的软件平台、语言也不相同。在这样异构的系统之上实现一个全局统一的单点登录系统,开发成本高且实现难度大,技术可行性不高。

【发明内容】

[0009]本发明要解决技术问题是:克服上述技术的缺点,提供一种针对局域网内现有的所有子信息系统进行统一整合,在不修改现有信息子系统源码的前提下,实现用户只需登录一次,便可根据用户权限访问局域网内相应多个子系统的单点登陆方法。
[0010]为了解决上述技术问题,本发明提出的技术方案是:一种基于网络控制器的局域网单点登录方法,所述局域网设有若干相互连接的信息子系统,每个信息子系统均连接有多个客户端;所述方法包括以下步骤:
1)在所述局域网内安装网络控制器,并在所述网络控制器上安装CAS服务器,所述网络控制器与转发面通过OpenFlow协议连接;所述转发面是局域网内负责数据转发任务的交换机、路由器和网关;所述网络控制器用于对局域网进行集中控制并实现OpenFlow协议中控制面的功能;
2)关闭每个信息子系统的登陆功能,在每个信息子系统及其连接的客户端上均安装预设的用于读写IP包头部信息的网络协议模块;在所述CAS服务器上一一对应配置每个信息子系统的访问接口,所述访问接口复制每个信息子系统中的访问控制逻辑;
3)所述客户端发出访问请求,所述访问请求的目标地址所指向的服务器包括所述信息子系统和所述局域网以外的网络服务器,所述客户端上的网络协议模块将该客户端的Sess1n中的与所述目标地址对应的认证信息作为IP头部信息添加到客户端发出的请求数据的IP包中;
4)所述转发面接收所述IP包,并将该IP包转发至所述CAS服务器上与所述目标地址相对应的访问接口,并由该访问接口对所述目标地址对应的认证信息进行身份认证,如果通过身份验证,则所述转发面将通过身份验证的IP包转发至所述目标地址所指向的信息子系统;
5)如果所述IP包没有通过身份验证且该IP包中不包含Ticket,则所述CAS服务器将CAS登陆页面通过所述转发面返回至发出访问请求的客户端,由该客户端输入登陆信息并生成目标地址对应的Ticket,然后由所述客户端的网络协议模块将该Ticket添加到所述IP包中并将该IP包发送到转发面,再重复执行步骤4)和步骤5);
如果所述IP包没有通过身份验证且该IP包中含有与所述目标地址对应的Ticket,则所述CAS服务器利用该Ticket生成所述目标地址对应的认证信息,并将该认证信息保存到所述客户端的Sess1n中,然后由所述客户端的网络协议模块将所述目标地址对应的认证信息作为IP头部信息添加到所述IP包中并将该IP包发送到转发面,再重复执行步骤4)和步骤
5)0
[0011]传统网络设备中,网络通信客户端发出的数据包,在由交换机、路由器等设备收到后,继续由本设备中统筹计算,完成数据包的正确发出。这种工作方式下,设备只能在网络层、传输层实现一定的智能化,无法实现复杂的控制,不能实现单点登录功能。
[0012]SDN(即Software Defined Network,又称软件定义网络)是一种新型网络创新架构,其核心技术标准为OpenFlow协议。SDN将网络设备的功能划分为控制面和转发面,转发面负责数据的发送和接收,控制面负责数据通信过程中关于路由、权限等方面的控制决策。SDN通过将网络设备的控制面与转发面分离开,可以实现对网络数据包转发路径及转发流量的智能控制。正是基于此,本发明创造性地采用SDN架构将传统网络设备的控制面抽取出来,集中放置在网络控制器中,所有的交换机、路由器和网关等(即转发面)在收到网络数据包后,将会请求网络控制器而不是依靠自己完成统筹计算,网络控制器指挥转发面的设备(即局域网络中的交换机、路由器和网关等)完成数据包的正确转发。本发明正是利用网络控制器的集中控制地位,将CAS服务器安装在网络控制器中,通过将CAS服务器与SDN网络相结合,利用现有的CAS框架实现局域网内的单点登录功能,因此本发明是在网络设备层而不是在应用层实现单点登录。
[0013]本发明中Ticket是CAS服务器在请求数据的IP包中设置的识别信息,通过Ticket可以得知用户身份。本发明在网络控制器上复制各信息子系统的访问认证接口,而不是修改各信息子系统中已有的访问控制接口实现。每个信息子系统的访问接口可以根据用户身份生成或获取的认证信息。将这些认证信息作为头部信息插入到请求数据的IP包中,CAS月艮务器就能确认这些请求数据的IP包的合法性,从而可以正常进入到目标信息子系统中。
[0014]现有的各信息子系统中各种平台的访问控制方法,如图2所示,一般是工作在网络应用层。而本发明的网络控制器通过将Ticket写入IP包作为头部信息,在网络设备层面上切入工作,其安全处置时间点超前;同时在CAS服务器上配置所有信息子系统的访问接口,所述访问接口复制相对应的信息子系统中原有的访问控制逻辑,因此,无论信息子系统原先采用何种访问控制技术,在本发明中均能被无缝集成到一个单点登录体系之中,而且集成过程中无需修改信息子系统源代码。
[0015]优选地,所述网络协议模块为IPSec协议栈。
[0016]优选地,所述步骤4)中所述转发面接收到所述IP包后,所述转发面检查所述IP包的目标地址信息,如果该IP包的目标地址信息与所述局域网中的任一信息子系统的地址信息均不对应,则所述转发面将所述IP包直接转发至该目标地址信息所指向的所述局域网以外的网络服务器。
[0017]对于无法安装IPSec协议栈的客户端(通常这些客户端来自于外网,其软件配置不受企业规则控制),可以在SDN网络的转发面上记录源IP地址、端口号、最终访问时间等,并以超时机制(如超过30分钟等)对长期未发生后继访问的客户端信息予以清除,本发明的网络控制器可以通过跟踪这些客户端从而替客户端维护IP头。
【附图说明】
[0018]下面结合附图对本发明作进一步说明。
[0019]图1是现有技术中基于CAS技术的单点登录方法。
[0020]图2是现有技术中客户端的访问控制方法。
[0021]图3是本发明实施例中客户端的访问控制方法。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1