当前位置: 首页 > 工具软件 > Nova > 使用案例 >

【Nova】nova-consoleauth学习

濮宇定
2023-12-01

我们可以通过浏览器对虚拟机实例的控制台进行访问,为了安全,我们需要提供一个token,它的作用与keystone的token类似,但是它的验证并不是通过keystone完成的,而是由nova-consoleauth。


nova-consoleauth是一个rpc server,对外提供RpcAPI,实现十分简单,并且接口也很少:

authorize_console ->授权控制台,将token作为键、对应的虚拟机uuid、控制台类型(spice-html5/novnc/rdp-html5)、虚拟机的宿主机ip、虚拟机对应的宿主机端口、内部访问地址、上次活动时间的json字符串作为值存入缓存(可以配置使用memcached),并且清除已超时的token

check_token -> 校验token,首先在缓存中获取键为token的值,如果超时或者token不存在,那么校验失败;反之,对值进行验证,验证过程就是通过nova-compute的RpcAPI validate_console_port进行的,在validate_console_port中先通过计算驱动(默认是libvirt.LibvirtDriver)获取到实例的控制台信息,包括宿主机ip、端口等,然后将端口与值中的端口进行比较,相等的情况下,验证通过,最后返回token对应的值即控制台信息;反之,验证失败,最后返回None

delete_tokens_for_instance->删除虚拟机实例的token


 类似资料: