On Mon, Oct 21, 2024 at 7:32 AM Abdul Qadir <abdul.qa...@agreeya.com.invalid>
wrote:

> I have a web application that includes a feature for HTML5-based RDP
> access to various machines. Previously, we used Lenovo’s HTML5 WebRDP
> solution, which allowed us to connect to machines by simply providing
> parameters in the URL, such as the WebRDP server IP, the target server IP
> for RDP, and the username/password for the target machine. This made it
> easy to establish RDP connections.
>
> As this product has reached its end of life, we are exploring alternative
> solutions with similar capabilities and have come across Apache Guacamole.
> However, after installing Guacamole, we are having difficulty achieving the
> same level of functionality.
>
> Could anyone please assist us in configuring Guacamole to replicate the
> functionality we had with Lenovo’s solution? Any guidance or support would
> be greatly appreciated.
>
>
>
In order to accomplish what you're describing with Guacamole you'd likely
need to write some custom code of some sort, as Guacamole Client currently
does not provide a way to create connections simply by providing the
connection parameters as part of a URL. Here are a few ways that you might
be able to accomplish that or something similar, though:
* Without writing any code, you could use the "QuickConnect" extension to
allow users to log in to Guacamole and then enter a connection URI (for
example: rdp://1.2.3.4:3389/?username=blah) and access the connections.
This isn't quite the same as the functionality you're describing, but would
be quite similar in allowing users who have access to Guacamole to log in
and enter arbitrary connection data and establish those connections via the
web. Documentation is here:
https://guacamole.apache.org/doc/gug/adhoc-connections.html.
* The JSON extension lets you provide encrypted JSON to the extension which
will both authenticate a user and provide connection data for that user
from some external system. This would require having or writing some
external system that would let you specify that data, so that would require
some amount of coding, but from the Guacamole side there's really no code
to write, just have to send the expected JSON to Guacamole. Documentation
for that extension is here:
https://guacamole.apache.org/doc/gug/json-auth.html.
* You could either modify the code on the QuickConnect extension to accept,
or write your own extension that accepts, connection parameters as part of
a URL and creates the connection with that data. This would get much closer
to the functionality you're accustomed to with Lenovo's product, but would
definitely require some custom code.
* Finally, you could just write your own web application that uses the
guacamole-common and guacamole-common-js code and does not use the full
Guacamole Client code. This would require the largest amount of coding, but
could probably get you closer to the functionality you're expecting.

I'd also just highlight that it's important to keep security in mind when
providing or implementing a solution that accepts arbitrary connection data
as URL parameters and establishes connection - depending on where you
provide this access and who you provide it to, you introduce varying levels
of risk that the system will be abused - knowingly or not - by people who
want to bypass other controls or just don't know what they're doing. Even
the "QuickConnect" extension in Guacamole introduces this risk to some
degree. Guacamole provides the capability for bi-directional file transfer
as well as clipboard transfer, which can introduce the risk of both data
loss and the introduction of malicious code into the environment. Again,
just something to keep in mind.

-Nick

>

Reply via email to