【问题标题】:quacamole javascript client http tunnel getting connected鳄梨酱 javascript 客户端 http 隧道正在连接
【发布时间】:2021-06-21 16:55:20
【问题描述】:

鳄梨酱 1.2.0

我有一个正在运行的 guac 服务器,我想从不同域上的另一个 Web 应用程序创建一个客户端连接(用于测试),并在生产准备好后移动到同一个域。我已经尝试过 HTTPTunnel 和 websockettunnel,两者都因不同的原因而失败。即使我提供了 guac 服务器和 HTTP 隧道的完整 URL,Websocket 似乎也只想在 localhost 上连接到自身,我收到有关 InvalidAllowCredentials 的 CORS 错误。以下是我尝试过的两种变体,其余的 html 来自 guac doc 网站上的示例。

var guac = new Guacamole.Client(
    new Guacamole.HTTPTunnel("https://example.com/tunnel", true)
    {#new Guacamole.WebSocketTunnel("https://example.com/websocket-tunnel", true)#}
);

如果此连接能够正常工作,我相信我缺少配置和身份验证信息。

guac 文档似乎缺少,我不确定我应该做什么。

需要做什么才能连接到现有机器?

示例。

API 调用,验证用户并获取令牌。 API调用,搜索连接 创建隧道,以某种方式传递连接 客户端连接

这应该会弹出远程机器的显示。

在 nginx 配置中添加的位置 / 部分下的标题

add_header 'Access-Control-Allow-Origin' 'http://127.0.0.1:8000' always;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,ContentType,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With' always;

【问题讨论】:

    标签: guacamole


    【解决方案1】:

    您可以在文件ManagedClient.js 中检查如何在鳄梨酱客户端应用程序中建立连接。搜索函数getInstance()getConnectString()

    原则上,您对令牌是正确的,您可以通过此 API 调用获得一个:

    curl 'https://guacamole.example.com/guacamole/api/tokens' -H 'Content-Type: application/x-www-form-urlencoded' --data-raw 'username=guacadmin&password=somePassword'
    

    un/pw 用于 Guacamole,而不是远程机器。

    获得令牌后,您可以创建HTTPTunnelClient,填充getConnectString() 中所示的参数并启动connect()。请记住,远程机器的凭据是在 Guacamole 端设置的。在getConnectString() 中,您只选择了在 Guacamole 服务器上定义的连接之一。

    请注意,根据实际用于认证的插件,可能会发送不同的数据;您还可以使用完全不同的身份验证制作自己的身份验证插件,或者制作一个直接从 JS 代码发送远程机器凭据的插件。扩展目录中的几个示例身份验证插件;以上假设您使用的是默认的数据库身份验证插件或文件身份验证插件。

    【讨论】:

    • 目前,我已经放弃尝试进行深度集成,这样用户就不会知道他们正在连接到 guac 服务器。现在我直接在新选项卡中打开机器连接 url。 sourceforge.net/p/guacamole/discussion/1110834/thread/fb609070/…。 {machineid}c{databasetype} 例如encode_base64("10cpostgresql")。如果我有时间做更深入的整合,我会在以后回复这篇文章,谢谢你的回复。
    猜你喜欢
    • 2016-04-23
    • 2021-09-28
    • 2021-06-27
    • 2017-03-28
    • 2017-04-13
    • 2017-01-30
    • 2014-01-07
    • 2017-01-04
    • 2018-01-01
    相关资源
    最近更新 更多