【问题标题】:Apache Cloudstack Console Proxy access via API通过 API 访问 Apache Cloudstack 控制台代理
【发布时间】:2020-08-30 03:17:59
【问题描述】:

我利用 cloudstack API 集成到 3de 派对门户中。我想通过 API 访问控制台代理,找不到 API 方法。

即获取特定虚拟机的会话令牌并从我们的 3de 派对门户打开 ajax 窗口。

管理服务器应该公开控制台代理以通过 API 使用,然后我假设您应该根据登录凭据获取令牌,或者通过您有权访问的特定虚拟机的 API。

如果有人以前这样做过,将不胜感激分享与此请求相关的一些细节。

【问题讨论】:

    标签: apache-cloudstack


    【解决方案1】:

    查看控制台代理的源代码,我解决了以下问题:

    使用与她定义的普通 cloudstack api 使用相同的身份验证过程 - http://docs.cloudstack.apache.org/en/latest/developersguide/dev.html

    使用相同的 API Key 并使用 Cloudstack 提供的 API Secret 对请求进行签名:

    Console 代理端点如下 - /console?cmd=access&vm=xxx,成功后将返回一个带有令牌的 Url 以访问虚拟机。

    测试结果 -

    请求: CloudstackRequestClientFilter -> cmd=access&vm=29603248-6d8a-4582-aa9a-4d1bfb4d7714&apikey=3NRrdrhDTwggQ_oQny11dD39-XRWJxCd0dh2xqtMNShrz_jb4ZdhHtmRh7NYiOfRzLNwPcBVAfT9FHh9v96vzg&response=json&signature=u4c7QZNQNcN+2s3fhRNSHTyl7+Q=

    回应: frame src="http://172.16.90.99/ajax?token=TCbfnguNvsHEkga3jPJEfZctqiPHTEynM6sAG2K8iIuioKHU8UU1QAWuQLHATd0dznP9vXPggHJp9km_1bmmStiD1PPKr6nZeid0NVI7kUt8_vOGkOK4vdM2d388KFj8oA280mQ-ZjPHWPgU4gCn47nLVb-2cVxNgOijOjdgDEDj5vlqFkzz2YhcqkLt6CIVdFcAJ1g1gqvhrO530ubjLZsiQvxs_kn9X8eXMafhRm_qugu3k6lLuG38zXsK9jKNWkmqoAV2EBBZh-r6agm4dQ">

    希望这会有所帮助,我们花了一些时间来解决这个问题,控制台代理的源代码可以在这里找到: https://github.com/apache/cloudstack/blob/master/server/src/main/java/com/cloud/servlet/ConsoleProxyServlet.java

    【讨论】:

      猜你喜欢
      • 2015-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-05
      • 1970-01-01
      • 2022-08-15
      • 1970-01-01
      • 2017-04-21
      相关资源
      最近更新 更多