一种容器登录方法、应用服务器、系统及存储介质与流程

文档序号:14216594阅读:174来源:国知局

本发明涉及计算机技术领域,具体涉及一种容器登录方法、应用服务器、系统及存储介质。



背景技术:

docker容器提供的容器技术允许在同一台主机或虚拟机上运行若干个容器(container),每个容器就是一个独立的虚拟环境或应用。docker容器为客户端提供了登陆容器的功能,允许用户进入到容器内部以操作主机或虚拟机的方式操作容器。kubernetes是由谷歌开源的容器编排工具,其可以实现将若干个docker容器组合成一个服务、动态地分配容器运行的主机等功能。

通常,用户登陆容器需要首先登入容器所在的主机上,接着再使用docker命令进入容器,比较繁琐。而kubernetes通过容器所在集群的管理单元,定位到容器所在主机,读取该主机上docker的socket及对客户端提供websocketapi的方式,让用户可以直接利用kubernetes的api登陆容器内部。

但这种方式仍然不够直观,需客户端知晓容器所在集群管理单元的具体地址才能发起websocketapi请求,会将集群的管理单元的直接访问方式暴露给客户端;且无法与动态的鉴权功能相结合。

因此,现有技术还有待于改进和发展。



技术实现要素:

鉴于上述现有技术的不足之处,本发明的目的在于提供一种容器登录方法、应用服务器、系统及存储介质,将便利登陆容器的需求与动态鉴权相结合,且不会暴露集群控制单元的真实地址,保证系统的安全。

为了达到上述目的,本发明采取了以下技术方案:

一种容器登录方法,其包括如下步骤:

接收用户发起的容器服务访问请求并生成一随机令牌;

根据所述容器服务访问请求查询待访问服务所在集群的控制单元地址,并将所述随机令牌和控制单元地址组成键值对后存入缓存;

当接收到待访问服务中的容器登录请求时,将所述容器登录请求和随机令牌发送至代理服务器,其中,所述容器登录请求包括用户账号信息;

对所述用户账号信息和随机令牌进行鉴权,若鉴权通过,则根据所述随机令牌获取控制单元地址并返回给代理服务器,由代理服务器将所述容器登录请求发送至该控制单元地址,为客户端和控制单元建立连接。

所述的容器登录方法中,所述根据所述容器服务访问请求查询待访问服务所在集群的控制单元地址,并将所述随机令牌和控制单元地址组成键值对后存入缓存包括:

根据所述容器服务访问请求中的待访问服务信息获取其所在的集群名称并访问数据库;

接收数据库反馈的根据集群名称查询的该集群的控制单元地址;

将所述随机令牌作为键、控制单元地址作为值组成键值对后存入缓存。

所述的容器登录方法中,所述将所述随机令牌作为键、控制单元地址作为值组成键值对后存入缓存的步骤包括:

将所述随机令牌作为键、控制单元地址作为值组成键值对;

搜索缓存中是否存在以相同的随机令牌作为键的键值对,若存在则重新生成随机令牌;若不存在则将当前键值对存入缓存中。

所述的容器登录方法中,所述当接收到待访问服务中的容器登录请求时,将所述容器登录请求和随机令牌发送至代理服务器,其中,所述容器登录请求包括用户账号信息的步骤包括:

检测待访问服务中登录容器的虚拟按钮是否被触发;

当登录容器的虚拟按钮被触发时,向代理服务器发送容器登录请求和随机令牌,所述容器登录请求中包括用户账号信息。

所述的容器登录方法中,所述对所述用户账号信息和随机令牌进行鉴权,若鉴权通过,则根据所述随机令牌获取控制单元地址并返回给代理服务器,由代理服务器将所述容器登录请求发送至该控制单元地址,为客户端和控制单元建立连接的步骤包括:

根据所述用户账号信息和随机令牌发起获取控制单元地址的子请求;

对所述用户账号信息和随机令牌进行鉴权,并返回鉴权结果至代理服务器;

若鉴权通过,则根据所述随机令牌获取控制单元地址并返回给代理服务器,由代理服务器将所述容器登录请求发送至该控制单元地址,为客户端和控制单元建立连接。

所述的容器登录方法中,所述对所述用户账号信息和随机令牌进行鉴权,并返回鉴权结果至代理服务器的步骤包括:

验证用户账户信息是否正确,若正确则将获取控制单元地址的子请求转发至容器服务;否则不转发该子请求,直接返回鉴权失败信息至代理服务器。

所述的容器登录方法中,所述若鉴权通过,则根据所述随机令牌获取控制单元地址并返回给代理服务器,由代理服务器将所述容器登录请求发送至该控制单元地址,为客户端和控制单元建立连接的步骤包括:

容器服务根据随机令牌在缓存中搜索对应的控制单元地址;

若随机令牌缺失或有误,则返回子请求失败信息至代理服务器;若随机令牌无误则获取对应的控制单元地址并返回给代理服务器;

代理服务器将所述容器登录请求发送至该控制单元地址,为客户端和控制单元建立连接。

一种容器登录的应用服务器,其包括:处理器、存储器和通信总线;

所述存储器上存储有可被所述处理器执行的计算机可读程序;

所述通信总线实现处理器和存储器之间的连接通信;

所述处理器执行所述计算机可读程序时实现如上任意一项所述的容器登录方法中的步骤。

一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上所述的容器登录方法中的步骤。

一种容器登录系统,包括客户端和代理服务器,其还包括如上所述的容器登录的应用服务器;

所述应用服务器用于接收用户发起的容器服务访问请求并生成一随机令牌;以及根据所述容器服务访问请求查询待访问服务所在集群的控制单元地址,并将所述随机令牌和控制单元地址组成键值对后存入缓存;以及当接收到待访问服务中的容器登录请求时,将所述容器登录请求和随机令牌发送至代理服务器,其中,所述容器登录请求包括用户账号信息;以及对所述用户账号信息和随机令牌进行鉴权,若鉴权通过,则根据所述随机令牌获取控制单元地址并返回给代理服务器;

所述代理服务器用于将所述容器登录请求发送至该控制单元地址,为客户端和控制单元建立连接。

相较于现有技术,本发明提供的容器登录方法、应用服务器、系统及存储介质中,所述容器登录方法通过接收用户发起的容器服务访问请求并生成一随机令牌;之后根据所述容器服务访问请求查询待访问服务所在集群的控制单元地址,并将所述随机令牌和控制单元地址组成键值对后存入缓存;之后当接收到待访问服务中的容器登录请求时,将所述容器登录请求和随机令牌发送至代理服务器,其中,所述容器登录请求包括用户账号信息;之后对所述用户账号信息和随机令牌进行鉴权,若鉴权通过,则根据所述随机令牌获取控制单元地址并返回给代理服务器,由代理服务器将所述容器登录请求发送至该控制单元地址,为客户端和控制单元建立连接。将便利登陆容器的需求与动态鉴权相结合,且不会暴露集群控制单元的真实地址,保证系统的安全。

附图说明

图1为本发明提供的容器登录方法的流程图;

图2为本发明提供的容器登录方法中步骤s20的流程图;

图3为本发明提供的容器登录方法中步骤s23的流程图;

图4为本发明提供的容器登录方法中步骤s30的流程图;

图5为本发明提供的容器登录方法中步骤s40的流程图;

图6为本发明提供的容器登录方法中步骤s43的流程图;

图7为本发明容器登录程序的较佳实施例的运行环境示意图;

图8为本发明安装容器登录程序的系统较佳实施例的功能模块图;

图9为本发明提供的容器登录的应用服务器的结构框图。

具体实施方式

鉴于现有技术中容器登录时会暴露集群的管理单元的直接访问方式,且无法实现动态鉴权等缺点,本发明的目的在于提供一种容器登录方法、应用服务器、系统及存储介质,将便利登陆容器的需求与动态鉴权相结合,且不会暴露集群控制单元的真实地址,保证系统的安全。

为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明是基于kubernetes集群内的容器登录方法,kubernetes是由谷歌开源的容器编排工具,其可以实现将若干个docker容器组合成一个服务、动态地分配容器运行的主机等功能,其中kubernetesservice即kubernetes服务是若干个容器的集合,一个service即可为用户提供服务;kubernetes集群是指一组主机或虚拟机,用于运行kubernetes服务,kubernetes管辖的服务内的容器实际上运行于集群的各个节点主机上;每个kubernetes集群有且只有一个控制单元,即kubernetesmaster,用于调度和管理kubernetes服务,如分配某个服务的某个容器到集群内的某个节点上。kubernetesmaster是一个进程,运行于某台主机或虚拟机上

请参阅图1,本发明提供的容器登录方法包括以下步骤:

s10、接收用户发起的容器服务访问请求并生成一随机令牌。

本实施例中,用户进入kubernetes服务页面时请求访问容器服务,此时客户端接收该容器服务访问请求,并生成一随机令牌,所述容器服务访问请求中包含待访问的服务名称、容器名称以及用户权限等信息。

s20、根据所述容器服务访问请求查询待访问服务所在集群的控制单元地址,并将所述随机令牌和控制单元地址组成键值对后存入缓存。

当用户发起容器服务访问请求后,根据容器服务访问请求中的服务及容器信息查询待访问服务所在集群的控制单元地址,由于在kubernetes的管理下,容器以服务的形式被组织起来,且容器可能在不同的主机上漂移,以达到更高的可用性。用户不需要知道所要登陆的容器具体位于哪一台主机上,只需要知晓容器名称、所在服务及所在集群,接着通过kubernetes客户端命令kubectlexec或调用kubernetes控制单元的websocketapi即可登陆容器,因此当用户进入服务页面并请求访问时先获取待访问服务所在集群的控制单元地址,并将所述随机令牌和控制单元地址组成键值对后存入缓存,以用户后续登录操作时的动态鉴权与控制单元地址查询,将集群的控制单元地址做了封装,提高系统的安全性。具体查询过程请参阅图2,其为本发明提供的容器登录方法中步骤s20的流程图。

如图2所示,所述步骤s20包括:

s21、根据所述容器服务访问请求中的待访问服务信息获取其所在的集群名称并访问数据库;

s22、接收数据库反馈的根据集群名称查询的该集群的控制单元地址;

s23、将所述随机令牌作为键、控制单元地址作为值组成键值对后存入缓存。

本实施例中,在接收到容器服务服务请求后,根据该请求中的待访问服务信息,即服务名称、容器名称以及用户权限等,先对用户是否有权限访问该服务进行验证,若权限验证通过,则将该容器服务访问请求转发至容器服务,容器服务根据请求中的服务名称以及容器名称获取该容器所在的kubernetes集群名称,并访问数据库,接收数据库反馈的根据kubernetes集群名称查询到的该kubernetes集群的控制单元地址,之后容器服务将生成的随机令牌键、获取到的控制单元地址作为值组成<随机令牌,控制单元地址>键值对,并存入缓存中,以便后续调用查询。

优选地,将该随机令牌返回至客户端的前端页面并作为变量保存,同时设置该随机令牌的超时时间与系统会话的超时时间一致,即用户每次进入kubernetes服务页面时均会生成随机令牌以及键值对,如果用户退出后再次进入kubernetes服务页面时,则会再次生成新的随机令牌,上次保存的随机令牌会随着超时而失效,每次进入服务页面时,都会生成一个新的<随机令牌,控制单元地址>键值对以备用户当次登陆容器之用,提高后续鉴权以及登录的安全性。具体地键值对生成保存过程请参阅图3,其为本发明提供的容器登录方法中步骤s23的流程图。

如图3所示,所述步骤s23包括:

s231、将所述随机令牌作为键、控制单元地址作为值组成键值对;

s232、搜索缓存中是否存在以相同的随机令牌作为键的键值对,若存在则重新生成随机令牌;若不存在则将当前键值对存入缓存中。

本实施例中,在生成并保存键值对时,先将生成的随机令牌以及获取到的控制单元地址组成<随机令牌,控制单元地址>键值对,之后检查缓存(如redis)中是否有以同样的随机令牌作为键的键值对,如果有则重新生成新的随机令牌,组成新的键值对后再次检查,如果没有则直接将当前的键值对存入缓存中,避免发生缓存中存在以相同随机令牌作为键、不同控制单元地址作为值的情况,确保后续获取控制单元地址的准确性。

s30、当接收到待访问服务中的容器登录请求时,将所述容器登录请求和随机令牌发送至代理服务器,其中,所述容器登录请求包括随机令牌。

本实施例中,当用户需要登录待访问kubernetes服务中的容器时,发起容器登录请求,所述容器登录请求包括用户账号信息,当接收到该容器登录请求后将所述容器登录请求和随机令牌发送至代理服务器,通过代理服务器来进行后续的登录过程,具体实施时,代理服务器采用nginx,nginx是一个开源的代理服务,可以代理用户发起的请求,并将请求转发,通过代理服务器可避免在登录容器时暴露真实的控制单元地址,保证系统的安全。具体请参阅图4,其为本发明提供的容器登录方法中步骤s30的流程图。

如图4所示,所述步骤s30包括:

s31、检测待访问服务中登录容器的虚拟按钮是否被触发;

s32、当登录容器的虚拟按钮被触发时,向代理服务器发送容器登录请求和随机令牌,所述容器登录请求中包括用户账号信息。

本实施例中,用户通过kubernetes服务详情页面上的登录容器虚拟按钮触发登录请求,当检测到登录容器的虚拟按钮被触发时,则携带用户账号信息以及随机令牌向代理服务器发送容器登录请求,以用于后续的权限验证以及控制单元地址的获取,其中用户账号信息包括用户名、密码、以及用户权限等等。

s40、对所述用户账号信息和随机令牌进行鉴权,若鉴权通过,则根据所述随机令牌获取控制单元地址并返回给代理服务器,由代理服务器将所述容器登录请求发送至该控制单元地址,为客户端和控制单元建立连接。

本实施例中,当向代理服务器发送了容器登录请求和随机令牌后,先对所述用户账号信息和随机令牌进行鉴权,验证用户的账号信息以及随机令牌是否正确,若鉴权通过则根据该随机令牌在缓存中红搜索获取到对应的控制单元地址并返回给代理服务器,由代理服务器将所述容器登录请求发送至该控制单元地址,为客户端和控制单元建立连接,从而让客户端成功登陆容器。本实施例中,用户可以从既有的kubernetes容器服务平台中直接登陆容器,保证容器登录的便利性,同时在登录容器时会对其进行鉴权,解决了用户便利登陆容器的需求与权限认证的限制之间的矛盾,既保证了权限的限制,又满足了用户便利登陆容器的需求,且通过代理服务器的请求转发,使得真实的kubernetes控制单元地址不会暴露给用户,只会暴露代理服务器的地址,极大地提高了登录容器的安全性。具体请参阅图5,其为本发明提供的容器登录方法中步骤s40的流程图。

如图5所示,所述步骤s40包括:

s41、根据所述用户账号信息和随机令牌发起获取控制单元地址的子请求;

s42、对所述用户账号信息和随机令牌进行鉴权,并返回鉴权结果至代理服务器;

s43、若鉴权通过,则根据所述随机令牌获取控制单元地址并返回给代理服务器,由代理服务器将所述容器登录请求发送至该控制单元地址,为客户端和控制单元建立连接。

本实施例中,代理服务器在接收到登录容器请求后,将先发起获取控制单元地址的子请求,具体实施时,采用nginx作为代理服务器,nginx有一个开源模块ngx_http_auth_request_module提供了子请求的功能,即nginx将接收到的请求向其代理的真实服务转发前,先发起一个子请求,只有子请求的响应正常(响应状态码为200-299)时,才会转发原请求,基于此,代理服务器接收到登录容器请求后,并不立即转发该登录容器请求,而是先携带用户账号信息和随机令牌向鉴权服务发起获取控制单元地址的子请求,鉴权服务对所述用户账号信息和随机令牌进行鉴权,并返回鉴权结果至代理服务器;具体为鉴权服务验证用户账号信息是否正确,包括验证用户名和密码是否正确,用户是否有权限登录容器等等,若正确则将获取控制单元地址的子请求转发至容器服务;否则不转发该子请求,直接返回鉴权失败信息至代理服务器。例如,请求中的用户账号信息有误或不带用户账号信息,则鉴权服务将拦截请求,返回未授权响应,因此子请求失败,代理服务器不会转发请求到真实的控制单元地址;当用户账号信息正确时,鉴权服务将该子请求转发至容器服务,由容器服务根据随机令牌在缓存中获取对应的控制单元地址。因此在用户进行容器登陆前,结合鉴权服务对其账号信息进行了动态的权限认证,实现便利登录与动态鉴权的结合,具体请参阅图6,其为本发明提供的容器登录方法中步骤s43的流程图。

如图6所示,所述步骤s43包括:

s431、容器服务根据随机令牌在缓存中搜索对应的控制单元地址;

s432、若随机令牌缺失或有误,则返回子请求失败信息至代理服务器;若随机令牌无误则获取对应的控制单元地址并返回给代理服务器;

s433、代理服务器将所述容器登录请求发送至该控制单元地址,为客户端和控制单元建立连接。

当用户账号信息验证通过,鉴权服务将子请求转发至容器服务后,容器服务将根据随机令牌在缓存中搜索对应的控制单元地址,此时若随机令牌缺失或者有误,则在缓存中根据该随机令牌无法获取真实的控制单元地址,返回未找到响应,子请求失败,代理服务器不会转发请求到真实的控制单元地址;若随机令牌无误,则容器服务根据随机令牌在缓存中获取对应的控制单元地址并返回给代理服务器,此时子请求成功,代理服务器将原容器登录请求转发至对应的控制单元,访问该控制单元的websocketapi,从而为客户端及控制单元建立了连接,让客户端成功登陆容器,实现了将登陆容器所需要访问的集群控制单元的真实地址做了封装,用户无法截获此信息,保证了系统的安全。

如图7所示,基于上述容器登录方法,本发明还相应提供了一种容器登录的应用服务器,所述容器登录的应用服务器可以是移动终端、桌上型计算机、笔记本、掌上电脑及服务器等计算设备。该容器登录的应用服务器包括处理器10、存储器20及显示器30。图7仅示出了容器登录的应用服务器的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

所述存储器20在一些实施例中可以是所述容器登录的应用服务器的内部存储单元,例如容器登录的应用服务器的硬盘或内存。所述存储器20在另一些实施例中也可以是所述容器登录的应用服务器的外部存储设备,例如所述容器登录的应用服务器上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器20还可以既包括所容器登录的应用服务器的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述容器登录的应用服务器的应用软件及各类数据,例如所述安装容器登录的应用服务器的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有容器登录程序40,该容器登录程序40可被处理器10所执行,从而实现本申请中容器登录方法。

所述处理器10在一些实施例中可以是一中央处理器(centralprocessingunit,cpu),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述容器登录方法等。

所述显示器30在一些实施例中可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。所述显示器30用于显示在所述容器登录的应用服务器的信息以及用于显示可视化的用户界面。所述容器登录的应用服务器的部件10-30通过系统总线相互通信。

在一实施例中,当处理器10执行所述存储器20中容器登录程序40时实现以下步骤:

接收用户发起的容器服务访问请求并生成一随机令牌;

根据所述容器服务访问请求查询待访问服务所在集群的控制单元地址,并将所述随机令牌和控制单元地址组成键值对后存入缓存;

当接收到待访问服务中的容器登录请求时,将所述容器登录请求和随机令牌发送至代理服务器,其中,所述容器登录请求包括用户账号信息;

对所述用户账号信息和随机令牌进行鉴权,若鉴权通过,则根据所述随机令牌获取控制单元地址并返回给代理服务器,由代理服务器将所述登录请求发送至该控制单元地址,为客户端和控制单元建立连接。

所述根据所述容器服务访问请求查询待访问服务所在集群的控制单元地址,并将所述随机令牌和控制单元地址组成键值对后存入缓存包括:

根据所述容器服务访问请求中的待访问服务信息获取其所在的集群名称并访问数据库;

接收数据库反馈的根据集群名称查询的该集群的控制单元地址;

将所述随机令牌作为键、控制单元地址作为值组成键值对后存入缓存。

所述将所述随机令牌作为键、控制单元地址作为值组成键值对后存入缓存的步骤包括:

将所述随机令牌作为键、控制单元地址作为值组成键值对;

搜索缓存中是否存在以相同的随机令牌作为键的键值对,若存在则重新生成随机令牌;若不存在则将当前键值对存入缓存中。

所述当接收到待访问服务中的容器登录请求时,将所述容器登录请求和随机令牌发送至代理服务器,其中,所述容器登录请求包括用户账号信息的步骤包括:

检测待访问服务中登录容器的虚拟按钮是否被触发;

当登录容器的虚拟按钮被触发时,向代理服务器发送容器登录请求和随机令牌,所述容器登录请求中包括用户账号信息。

所述对所述用户账号信息和随机令牌进行鉴权,若鉴权通过,则根据所述随机令牌获取控制单元地址并返回给代理服务器,由代理服务器将所述登录请求发送至该控制单元地址,为客户端和控制单元建立连接的步骤包括:

根据所述用户账号信息和随机令牌发起获取控制单元地址的子请求;

对所述用户账号信息和随机令牌进行鉴权,并返回鉴权结果至代理服务器;

若鉴权通过,则根据所述随机令牌获取控制单元地址并返回给代理服务器,由代理服务器将所述登录请求发送至该控制单元地址,为客户端和控制单元建立连接。

所述对所述用户账号信息和随机令牌进行鉴权,并返回鉴权结果至代理服务器的步骤包括:

验证用户账户信息是否正确,若正确则将获取控制单元地址的子请求转发至容器服务;否则不转发该子请求,直接返回鉴权失败信息至代理服务器。

所述若鉴权通过,则根据所述随机令牌获取控制单元地址并返回给代理服务器,由代理服务器将所述登录请求发送至该控制单元地址,为客户端和控制单元建立连接的步骤包括:

容器服务根据随机令牌在缓存中搜索对应的控制单元地址;

若随机令牌缺失或有误,则返回子请求失败信息至代理服务器;若随机令牌无误则获取对应的控制单元地址并返回给代理服务器;

代理服务器将所述登录请求发送至该控制单元地址,为客户端和控制单元建立连接。

请参阅图8,其为本发明安装容器登录程序的系统较佳实施例的功能模块图。在本实施例中,安装容器登录程序的系统可以被分割成一个或多个模块,所述一个或者多个模块被存储于所述存储器20中,并由一个或多个处理器(本实施例为所述处理器10)所执行,以完成本发明。例如,在图8中,安装容器登录程序的系统可以被分割成生成模块21、查询模块22、登录模块23和鉴权获取模块24。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述容器登录程序在所述容器登录的应用服务器中的执行过程。以下描述将具体介绍所述模块21-24的功能。

生成块21,用于接收用户发起的容器服务访问请求并生成一随机令牌;

查询模块22,用于根据所述容器服务访问请求查询待访问服务所在集群的控制单元地址,并将所述随机令牌和控制单元地址组成键值对后存入缓存;

登录模块23,用于当接收到待访问服务中的容器登录请求时,将所述容器登录请求和随机令牌发送至代理服务器,其中,所述容器登录请求包括用户账号信息;

鉴权获取模块24,用于对所述用户账号信息和随机令牌进行鉴权,若鉴权通过,则根据所述随机令牌获取控制单元地址并返回给代理服务器。

查询模块22具体包括:

名称获取单元,用于根据所述容器服务访问请求中的待访问服务信息获取其所在的集群名称并访问数据库;

接收单元,用于接收数据库反馈的根据集群名称查询的该集群的控制单元地址;

生成单元,用于将所述随机令牌作为键、控制单元地址作为值组成键值对后存入缓存。

所述生成单元包括:

键值对生成子单元,用于将所述随机令牌作为键、控制单元地址作为值组成键值对;

搜索单元,用于搜索缓存中是否存在以相同的随机令牌作为键的键值对,若存在则重新生成随机令牌;若不存在则将当前键值对存入缓存中。

所述登录模块23包括:

检测单元,用于检测待访问服务中登录容器的虚拟按钮是否被触发;

发送单元,用于当登录容器的虚拟按钮被触发时,向代理服务器发送容器登录请求和随机令牌,所述容器登录请求中包括用户账号信息。

所述鉴权获取模块24包括:

子请求发起单元,用于根据所述用户账号信息和随机令牌发起获取控制单元地址的子请求;

鉴权单元,用于对所述用户账号信息和随机令牌进行鉴权,并返回鉴权结果至代理服务器;

地址获取单元,用于鉴权通过时根据所述随机令牌获取控制单元地址并返回给代理服务器。

所述地址获取单元包括:

地址搜索子单元,用于容器服务根据随机令牌在缓存中搜索对应的控制单元地址;

反馈子单元,用于若随机令牌缺失或有误,则返回子请求失败信息至代理服务器;若随机令牌无误则获取对应的控制单元地址并返回给代理服务器。

基于上述容器登录方法和应用服务器,本发明还相应提供一种容器登录系统,请参阅图9,其包括客户端101、代理服务器102和如上所述的容器登录的应用服务器103。

其中所述应用服务器103用于接收用户发起的容器服务访问请求并生成一随机令牌;以及根据所述容器服务访问请求查询待访问服务所在集群的控制单元地址,并将所述随机令牌和控制单元地址组成键值对后存入缓存;以及当接收到待访问服务中的容器登录请求时,将所述容器登录请求和随机令牌发送至代理服务器102,其中,所述容器登录请求包括用户账号信息;以及对所述用户账号信息和随机令牌进行鉴权,若鉴权通过,则根据所述随机令牌获取控制单元地址并返回给代理服务器102;所述代理服务器102用于将所述登录请求发送至该控制单元地址,为客户端101和控制单元建立连接。

综上所述,本发明提供的容器登录方法、应用服务器、系统及存储介质中,所述容器登录方法通过接收用户发起的容器服务访问请求并生成一随机令牌;之后根据所述容器服务访问请求查询待访问服务所在集群的控制单元地址,并将所述随机令牌和控制单元地址组成键值对后存入缓存;之后当接收到待访问服务中的容器登录请求时,将所述容器登录请求和随机令牌发送至代理服务器,其中,所述容器登录请求包括用户账号信息;之后对所述用户账号信息和随机令牌进行鉴权,若鉴权通过,则根据所述随机令牌获取控制单元地址并返回给代理服务器,由代理服务器将所述容器登录请求发送至该控制单元地址,为客户端和控制单元建立连接。将便利登陆容器的需求与动态鉴权相结合,且不会暴露集群控制单元的真实地址,保证系统的安全。

当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的存储介质中,该程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

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