一种访问BMC控制台的方法、装置及介质与流程

文档序号:30978536发布日期:2022-08-03 00:01阅读:306来源:国知局
一种访问BMC控制台的方法、装置及介质与流程
一种访问bmc控制台的方法、装置及介质
技术领域
1.本技术涉及通信领域,特别是涉及一种访问bmc控制台的方法、装置及介质。


背景技术:

2.在云计算时代,随着互联网市场规模的不断扩大,大量异构的资源通过云管平台(cloud management platforms,cmp)统一管理。部分企业为追求极致性能,选择在云上使用裸金属服务器。
3.当前采用直接连接裸金属基板管理控制器(baseboard management controller,bmc)的方式使用bmc控制台,这种方式不仅需要打通bmc网络,而且没有严格的用户权限认证,因此不能满足网络安全要求。
4.由此可见,如何提高bmc控制台的安全性是本领域技术人员亟待解决的问题。


技术实现要素:

5.本技术的目的是提供一种访问bmc控制台的方法、装置及介质,用于提高bmc控制台的安全性,满足网络安全要求。
6.为解决上述技术问题,本技术提供一种访问bmc控制台的方法,包括:
7.获取浏览器发送的访问请求,并根据访问请求得到与访问请求对应的第一token;其中,访问请求基于用户输入的cmp的访问地址生成;
8.检验第一token是否有效;
9.若是,则获取bmc控制台的url,通过bmc控制台的url访问bmc控制台,并将访问结果发送至浏览器;
10.若否,则进入获取浏览器发送的访问请求的步骤。
11.优选地,若第一token有效,则在获取bmc控制台的url之前,还包括:
12.使用第一token更新存储区中的token。
13.优选地,在使用第一token更新存储区的token之后,且在获取bmc控制台的url之前,还包括:
14.检验存储区的token是否有效;
15.若是,则进入获取bmc控制台的url的步骤;
16.若否,则进入获取浏览器发送的访问请求的步骤。
17.优选地,获取bmc控制台的url包括:
18.从cmp的数据库中查询bmc模块的属性信息;
19.根据属性信息查询bmc模块,并通过bmc模块获取bmc控制台的url。
20.优选地,根据属性信息查询bmc模块,并通过bmc模块获取bmc控制台的url包括:
21.调用redfish协议根据属性信息登录bmc模块的认证接口;
22.获取认证接口返回的第二token,并通过第二token得到bmc控制台的url。
23.优选地,在将访问结果发送至浏览器之后,还包括:
24.接收浏览器的连接请求,并根据连接请求和bmc控制台的url连接bmc控制台;其中,连接请求为浏览器基于websockets库生成的请求。
25.优选地,在接收浏览器的连接请求之前,还包括:
26.扩展websockets库。
27.为解决上述技术问题,本技术还提供一种访问bmc控制台的装置,包括:
28.获取模块,用于获取浏览器发送的访问请求,并根据访问请求得到与访问请求对应的第一token;其中,访问请求基于用户输入的cmp的访问地址生成;
29.检验模块,用于检验第一token是否有效;若是,则触发访问模块;若否,则触发获取模块;
30.访问模块,用于获取bmc控制台的url,通过bmc控制台的url访问bmc控制台,并将访问结果发送至浏览器。
31.优选地,还包括:
32.更新模块,用于使用第一token更新存储区中的token。
33.优选地,还包括:
34.第一查询模块,用于从cmp的数据库中查询bmc模块的属性信息;
35.第二查询模块,用于根据属性信息查询bmc模块,并通过bmc模块获取bmc控制台的url。
36.优选地,还包括:
37.调用模块,用于调用redfish协议根据属性信息登录bmc模块的认证接口;
38.得到模块,用于获取认证接口返回的第二token,并通过第二token得到bmc控制台的url。
39.优选地,还包括:
40.接收模块,用于接收浏览器的连接请求,并根据连接请求和bmc控制台的url连接bmc控制台;其中,连接请求为浏览器基于websockets库生成的请求。
41.优选地,还包括:
42.扩展模块,用于扩展websockets库。
43.为解决上述技术问题,本技术还提供一种访问bmc控制台的装置,包括:
44.存储器,用于存储计算机程序;
45.处理器,用于执行计算机程序时实现上述访问bmc控制台的方法的步骤。
46.为解决上述技术问题,本技术还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述访问bmc控制台的方法的步骤。
47.本技术提供一种访问bmc控制台的方法,该方法获取浏览器发送的访问请求,并根据访问请求得到与访问请求对应的第一token;其中,访问请求基于用户输入的cmp的访问地址生成;检验第一token是否有效;若是,则获取bmc控制台的url,通过bmc控制台的url访问bmc控制台,并将访问结果发送至浏览器;若否,则进入获取浏览器发送的访问请求的步骤。可见,该方法只需要用户输入cmp的访问地址,而不需要使用bmc网络和bmc端口,因此不会暴露bmc网络和端口。另外,该方法通过检验第一token的有效性实现用户权限校验,有效提高了bmc控制台的安全性与可靠性。
48.此外,本技术还提供一种访问bmc控制台的装置及介质,具有与上述访问bmc控制台的方法相同的有益效果。
附图说明
49.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
50.图1为本技术提供的一种访问bmc控制台的方法的流程图;
51.图2为本技术提供的一种访问bmc控制台的装置的结构图;
52.图3为本技术提供的另一种访问bmc控制台的装置的结构图。
具体实施方式
53.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本技术保护范围。
54.在云计算时代,随着互联网市场规模的不断扩大,大量异构的资源通过cmp统一管理。部分企业为追求极致性能,选择在云上使用裸金属服务器。相对虚拟机,物理机没有虚拟化损耗,性能更强大,但存在部署周期慢,运维复杂等弊端。裸金属控制台是运维人员最常用的功能之一,目前各大厂商普遍采用直接连接裸金属bmc控制台的方式使用bmc控制台,但是,这种方式需要打通bmc网络,并且没有严格的用户权限认证,不能满足网络安全要求。为了克服上述缺点,本技术的核心是提供一种访问bmc控制台的方法、装置及介质,用于提高bmc控制台的安全性,满足网络安全要求。
55.为了便于理解,下面对本技术的技术方案所适用的应用场景进行介绍。
56.本技术的bmc控制台的访问系统包括浏览器、cmp和bmc模块。
57.浏览器为用户提供查询cmp的输入接口,具体地,用户可以通过浏览器的信息输入栏输入cmp的地址,浏览器接收到cmp的地址后会根据cmp的地址访问cmp以启动cmp的各项服务。
58.cmp包括第一模块、第二模块、第三模块、应用程序编程接口网关(api gateway)模块和身份与访问管理(identity and access management,iam)模块,是实现浏览器与bmc模块之间通信的纽带。其中,第一模块用于实现bmc控制台代理,第二模块和iam模块用于完成用户的权限校验,api gateway模块用于分发cmp中的各项请求,第三模块用于实现与bmc模块的对接。具体地,首先访问第一模块的服务地址和端口以启动第一模块,第一模块启动后,会向第二模块发送请求以从第二模块中获取第一令牌(token)反馈至浏览器,并由第二模块与iam模块检验第一token的有效性;若检验得出第一token有效,则第二模块会将第一token存储至iam模块中,以更新iam模块中所存储的token,此时第一模块会向api gateway模块发送请求以获取bmc控制台的统一资源定位器(uniform resource locator,url);api gateway模块接收到第一模块发送的请求后,会检验iam模块中的第一token,若检验得出第一token有效,则将第一模块发送的请求转发至第三模块,由第三模块与bmc模块对接,以通
过bmc模块获取bmc控制台的url;第三模块获取到bmc控制台的url之后,将该url通过api gateway模块反馈至第一模块,由第一模块作为代理节点根据bmc控制台的url访问bmc控制台。
59.bmc模块包括bmc控制台,用于提供浏览器所需要的各项数据。在本技术中,cmp访问bmc控制台后,bmc控制台会生成访问结果反馈至cmp,由cmp将该访问结果发送至浏览器,以cmp作为媒介实现bmc模块与浏览器的数据交互。
60.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。
61.图1为本技术提供的一种访问bmc控制台的方法的流程图,如图1所示,该方法包括:
62.s1:获取浏览器发送的访问请求,并根据访问请求得到与访问请求对应的第一token;其中,访问请求基于用户输入的cmp的访问地址生成。
63.token表征用户权限,其作为敏感信息不允许放置在url中,而是在报文中传输。超文本传输协议(hyper text transfer protocol,http)采用了请求-响应模型,是网页传输的通用协议,因此,当浏览器发出访问请求时,cmp会生成响应报文,此时可从响应报文的头部字段获取表征用户权限的第一token。具体地,浏览器会采集用户输入的cmp的地址,并根据cmp的地址生成对应的访问请求,通过该访问请求可查询并启动cmp,此时cmp中的第一模块会向第二模块的接口发送请求以获取第一token,并在获取到第一token之后将其反馈至浏览器。
64.s2:检验第一token是否有效;若是,则进入s3;若否,则进入s1。
65.在获取到第一token之后,第一模块会检验第一token的有效性。具体地,可通过过滤器检验第一token是否正确,若第一token正确,则说明第一token有效,即用户具备访问权限,此时可进入步骤s3以获取bmc控制台的url;若第一token错误,则说明第一token无效,即用户不具备访问权限,此时为保护bmc控制台,会终止用户的本次访问,并返回步骤s1以重新获取浏览器的访问请求。需要说明的是,在具体实施中,可采用其它方式检验第一token,本实施例对检验第一token有效性的方式不做限制。
66.s3:获取bmc控制台的url,通过bmc控制台的url访问bmc控制台,并将访问结果发送至浏览器。
67.在确定用户具备访问权限后,cmp中的第一模块会向api gateway模块发送获取bmc控制台的url的请求,由api gateway模块将该请求分发至第三模块,通过第三模块与bmc模块对接,获取bmc控制台的url;在第三模块获取到bmc控制台的url之后,通过api gateway模块可将bmc控制台的url反馈至第一模块,由第一模块作为代理节点访问bmc控制台。可以理解的是,bmc控制台在接收到第一模块的访问请求后,会生成对应的访问结果反馈至第一模块,在本实施例中,访问结果指的是浏览器的页面框架,第一模块接收到访问结果后会将该访问结果反馈至浏览器,此时浏览器会显示该页面框架作为其初始页面。
68.本实施例提供一种访问bmc控制台的方法,该方法获取浏览器发送的访问请求,并根据访问请求得到与访问请求对应的第一token;其中,访问请求基于用户输入的cmp的访问地址生成;检验第一token是否有效;若是,则获取bmc控制台的url,通过bmc控制台的url访问bmc控制台,并将访问结果发送至浏览器;若否,则进入获取浏览器发送的访问请求的
步骤。可见,该方法只需要用户输入cmp的访问地址,而不需要使用bmc网络和bmc端口,因此不会暴露bmc网络和端口。另外,该方法通过检验第一token的有效性实现用户权限校验,有效提高了bmc控制台的安全性与可靠性。
69.在上述实施例的基础上,若检验得出第一token有效,则为防止cmp工作过程中因用户操作导致第一token失效,本实施例在获取bmc控制台的url之前,存储第一token以便在cmp工作期间检验第一token。该步骤包括:使用第一token更新存储区中的token。
70.在本实施例中,存储区指的是cmp中的iam模块。每次生成第一token后,第二模块都会将其存储至iam模块中以更新上次存储的第一token,以通过iam模块进行用户权限校验。在具体实施中,若用户在cmp工作期间退出浏览器界面,则为保护bmc控制台,可确定存储于iam模块中的第一token失效,此时cmp会中断获取bmc控制台的url的操作,并结束本次访问。
71.本实施例使用第一token更新存储区中的token,以便在cmp工作过程中检验第一token,提高了bmc控制台的安全性。
72.在上述实施例的基础上,为进一步提高bmc控制台的安全性,本实施例在获取bmc控制台的url之前,再次检验第一token的有效性。该步骤包括:
73.检验存储区的token是否有效;
74.若是,则进入获取bmc控制台的url的步骤;
75.若否,则进入获取浏览器发送的访问请求的步骤。
76.需要说明的是,为确保bmc控制台的安全性,在cmp的工作期间,可多次检验存储于iam模块中的第一token的有效性,只要出现检验结果为第一token失效,都应中断本次访问,以最大程度保证bmc控制台的安全性。例如,在第三模块获取到bmc控制台的url之后且在第一模块接收到第三模块反馈的bmc控制台的url之前,可检验存储于iam模块中的第一token是否失效,若未失效,则执行后续操作,而若失效,则中断cmp的当前进程,防止泄漏bmc控制台的url。可以理解的是,本实施例对检验第一token有效性的次数不做限制,可根据实际情况决定。
77.本实施例在获取bmc控制台的url之前,再次检验第一token的有效性,有力确保了bmc控制台的安全性。
78.在上述实施例的基础上,为保证所获取的bmc控制台的url的准确性,本实施例基于bmc模块的属性信息查询bmc模块,以获取bmc控制台的url。该步骤包括:
79.从cmp的数据库中查询bmc模块的属性信息;
80.根据属性信息查询bmc模块,并通过bmc模块获取bmc控制台的url。
81.具体地,在api gateway模块将第一模块发送的获取bmc控制台的url的请求转发至第三模块之后,第三模块可根据bmc模块的id在cmp数据库中查询到bmc模块的ip地址、端口、用户名和密码等属性信息,通过bmc模块的属性信息找到bmc模块的认证接口以实现与bmc模块的认证接口对接,并登录bmc模块获取bmc控制台的url。
82.本实施例从cmp数据库中查询bmc模块的属性信息,根据bmc模块的属性信息查询bmc模块,通过bmc模块获取bmc控制台的url,以确保所获取的bmc控制台的url的准确性。
83.在上述实施例的基础上,为便于获取bmc控制台的url,作为一种优选地实施方式,本实施例通过调用redfish(一种基于https服务的管理标准)协议与bmc模块的认证接口对
接以获取bmc控制台的url。该步骤包括:
84.调用redfish协议根据属性信息登录bmc模块的认证接口;
85.获取认证接口返回的第二token,并通过第二token得到bmc控制台的url。
86.具体地,第三模块可调用redfish协议实现通过restful接口对接bmc模块的认证接口;由于网页传输采用http协议,因此,在根据bmc模块的属性信息登录bmc模块的认证接口时,bmc模块会返回响应报文,此时可获取该响应报文的头部字段中的第二token;在获取到第二token之后,用户可通过所获取的第二token设置bmc控制台的key(密钥),并根据所设置的key拼接出bmc控制台的url,以实现获取bmc控制台的url。需要说明的是,为提高bmc控制台的安全性,可根据最小化原则生成url,所生成的url使用一次后失效。
87.本实施例调用redfish协议根据bmc模块的属性信息登录bmc模块的认证接口,由于redfish协议可通过restful接口实现设备管理,因此,能够有效降低操作复杂性,便于登录bmc模块的认证接口。
88.在上述实施例的基础上,由于浏览器接收到访问结果后显示的是初始页面即页面框架,还需要数据渲染以显示完整的浏览器页面,本实施例基于此以cmp为媒介构建浏览器与bmc模块的数据交互通道,使得浏览器能够获取到bmc模块发送的数据。该步骤包括:
89.接收浏览器的连接请求,并根据连接请求和bmc控制台的url连接bmc控制台;其中,连接请求为浏览器基于websockets库生成的请求。
90.具体地,浏览器在接收到cmp中的第一模块反馈的访问结果后,会向第一模块发起websocket(基于tcp的应用层协议)连接,以实现浏览器与cmp中的第一模块的全双工通信;cmp中的第一模块接收到浏览器发送的连接请求后,会将websocket连接代理至bmc节点,以cmp中的第一模块为媒介构建浏览器与bmc模块的数据交互通道,使得bmc模块可通过cmp中的第一模块向浏览器传输数据,此时浏览器可将接收到的数据渲染在浏览器的初始页面上以显示完整的浏览器页面。
91.本实施例以cmp为媒介构建浏览器与bmc模块之间的数据交互通道,使得浏览器能够获取到bmc模块传输的数据,通过将数据渲染在浏览器初始页面上以显示完整的页面。另外,由于使用cmp转发浏览器的连接请求,因此,不会暴露bmc网络及端口,有力提高了bmc模块的安全性。
92.在上述实施例的基础上,由于当前的websockets库对http的支持是最小的,只支持get请求,无法进行post请求完成复杂接口调用,基于此,本实施例在接收浏览器的连接请求之前,扩展websockets库。
93.在具体实施中,可通过扩展websockets库以使其支持post请求,从而实现调用复杂接口构建浏览器与bmc模块之间的数据交互通道。另外,可通过扩展websockets库以使其能够对接cmp中的iam模块,使得基于websockets库生成的每个请求都能够进入iam模块进行用户权限识别,从而确保cmp转发的每一个请求都符合用户权限要求,即都具备用户权限。需要说明的是,在具体实施中,可根据实际需求扩展websockets库,以使其能够实现相适应的功能,本实施例对此不做限制。
94.本实施例对websockets库进行扩展,使得websockets库能够支持代理bmc控制台的get和post等多种方法的请求,以实现复杂接口调用,并且可通过扩展websockets库使其能够对接cmp中的iam模块,以确保cmp转发的每一个请求都具备用户权限。
95.在上述实施例中,对于访问bmc控制台的方法进行了详细描述,本技术还提供访问bmc控制台的装置对应的实施例。需要说明的是,本技术从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。
96.图2为本技术提供的一种访问bmc控制台的装置的结构图,如图2所示,该装置包括:
97.获取模块10,用于获取浏览器发送的访问请求,并根据访问请求得到与访问请求对应的第一token;其中,访问请求基于用户输入的cmp的访问地址生成;
98.检验模块11,用于检验第一token是否有效;若是,则触发访问模块12;若否,则触发获取模块10;
99.访问模块12,用于获取bmc控制台的url,通过bmc控制台的url访问bmc控制台,并将访问结果发送至浏览器。
100.由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
101.本实施例所提供的访问bmc控制台的装置,通过获取模块获取浏览器发送的访问请求,并根据访问请求得到与访问请求对应的第一token;其中,访问请求基于用户输入的cmp的访问地址生成;通过检验模块检验第一token是否有效;若是,则触发访问模块;若否,则触发获取模块;通过访问模块获取bmc控制台的url,通过bmc控制台的url访问bmc控制台,并将访问结果发送至浏览器。可见,该装置只需要用户输入cmp的访问地址,而不需要使用bmc网络和bmc端口,因此不会暴露bmc网络和端口。另外,该装置通过检验第一token的有效性实现用户权限校验,有效提高了bmc控制台的安全性与可靠性。
102.图3为本技术提供的另一种访问bmc控制台的装置的结构图,如图3所示,该装置包括:存储器20,用于存储计算机程序;
103.处理器21,用于执行计算机程序时实现如上述实施例中所提到的访问bmc控制台的方法的步骤。
104.本实施例提供的访问bmc控制台的装置可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
105.其中,处理器21可以包括一个或多个处理核心,比如四核心处理器、八核心处理器等。处理器21可以采用数字信号处理器(digital signal processor,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(central processing unit,cpu);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有图像处理器(graphics processing unit,gpu),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(artificial intelligence,ai)处理器,该ai处理器用于处理有关机器学习的计算操作。
106.存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,
其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的访问bmc控制台的方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括windows、unix、linux等。数据203可以包括但不限于第一token。
107.在一些实施例中,访问bmc控制台的装置还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
108.本领域技术人员可以理解,图3中示出的结构并不构成对访问bmc控制台的装置的限定,可以包括比图示更多或更少的组件。
109.本实施例提供的访问bmc控制台的装置,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现上述访问bmc控制台的方法,效果同上。
110.最后,本技术还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的访问bmc控制台的方法的步骤。
111.可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
112.本实施例所提供的计算机可读存储介质包括上述提到的访问bmc控制台的方法,效果同上。
113.以上对本技术所提供的访问bmc控制台的方法、装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
114.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1