| Ad-hoc Connections |
| ================== |
| |
| The quickconnect extension provides a connection bar on the Guacamole Client |
| home page that allows users to type in the URI of a server to which they want |
| to connect and the client will parse the URI and immediately establish the |
| connection. The purpose of the extension is to allow situations where |
| administrators want to allow users the flexibility of establishing their own |
| connections without having to grant them access to edit connections or even to |
| have to create the connections at all, aside from typing the URI. |
| |
| :::{important} |
| There are several implications of using this extension that should be |
| well-understood by administrators prior to implementing it: |
| |
| * Connections established with this extension are created in-memory and only |
| persist until the Guacamole session ends. |
| |
| * Connections created with this extension are not accessible to other users, |
| and cannot be shared with other users. |
| |
| * This extension provides no functionality for authenticating users - it does |
| not allow anonymous logins, and requires that users are successfully |
| authenticated by another authentication module before it can be used. |
| |
| * The extension provides users the ability not only to establish connections, |
| but also to set any of the parameters for a connection. There are security |
| implications for this - for example, RDP file sharing can be used to pass |
| through any directory available on the server running guacd to the remote |
| desktop. This should be taken into consideration when enabling this extension |
| and making sure that guacd is configured in a way that does not compromise |
| sensitive system files by allowing access to them. |
| ::: |
| |
| (quickconnect-downloading)= |
| |
| Downloading the quickconnect extension |
| -------------------------------------- |
| |
| The quickconnect extension is available separately from the main |
| `guacamole.war`. The link for this and all other officially-supported and |
| compatible extensions for a particular version of Guacamole are provided in the |
| release notes for that version. You can find the release notes for current |
| versions of Guacamole here: <http://guacamole.apache.org/releases/>. |
| |
| The quickconnect extension is packaged as a `.tar.gz` file containing only the |
| extension itself, `guacamole-auth-quickconnect-1.3.0.jar`, which must |
| ultimately be placed in `GUACAMOLE_HOME/extensions`. |
| |
| (installing-quickconnect)= |
| |
| Installing the quickconnect extension |
| ------------------------------------- |
| |
| Guacamole extensions are self-contained `.jar` files which are located within |
| the `GUACAMOLE_HOME/extensions` directory. *If you are unsure where |
| `GUACAMOLE_HOME` is located on your system, please consult |
| [](configuring-guacamole) before proceeding.* |
| |
| To install the extension, you must: |
| |
| 1. Create the `GUACAMOLE_HOME/extensions` directory, if it does not already |
| exist. |
| |
| 2. Place the `guacamole-auth-quickconnect-1.3.0.jar` file in the |
| `GUACAMOLE_HOME/extensions` directory. |
| |
| (guac-quickconnect-config)= |
| |
| ### Configuring Guacamole for the quickconnect extension |
| |
| The quickconnect extension has two configuration properties that allow for |
| controlling what connection parameters can be used in the URIs that are opened |
| with the quickconnect extension: |
| |
| `quickconnect-allowed-parameters` |
| : An optional list of parameters that are allowed to be used by connections |
| that are created and accessed via the quickconnect extension. If this |
| property is present, only parameters in this list will be allowed. If this |
| property is absent, any/all parameters will be allowed unless explicitly |
| denied using the `quickconnect-denied-parameters` property. |
| |
| `quickconnect-denied-parameters` |
| : An optional list of parameters that are explicitly denied from being used by |
| connections created and accessed via the quickconnect extension. If this |
| property is present, any parameters in this list will be removed from the |
| connection configuration when it is created, *even if those parameter are |
| listed above in the `quickconnect-allowed-parameters` property.* If this |
| property is not present, no connection parameters will be explicitly denied. |
| |
| (completing-quickconnect-install)= |
| |
| ### Completing the installation |
| |
| Guacamole will only load newly-installed extensions during startup, so your |
| servlet container will need to be restarted before the quickconnect extension |
| can be used. *Doing this will disconnect all active users, so be sure that it |
| is safe to do so prior to attempting installation.* When ready, restart your |
| servlet container and give the extension a try. |
| |
| (using-quickconnect)= |
| |
| Using the quickconnect extension |
| -------------------------------- |
| |
| The quickconnect extension provides a field on the home page that allows you to |
| enter a Uniform Resource Identifier (URI) to create a connection. A URI is in |
| the form: |
| |
| {samp}`{protocol}://{username}:{password}@{host}:{port}/?{parameters}` |
| |
| The `protocol` field can have any of the protocols supported by Guacamole, as |
| documented in [](configuring-guacamole). Many of the protocols define a default |
| `port` value, with the exception of VNC. The `parameters` field can specify any |
| of the protocol-specific parameters as documented on the configuration page. |
| |
| To establish a connection, simply type in a valid URI and either press "Enter" |
| or click the connect button. This extension will parse the URI and create a new |
| connection, and immediately start that connection in the current browser. |
| |
| Here are a few examples of URIs: |
| |
| `ssh://linux1.example.com/` |
| : Connect to the server linux1.example.com using the SSH protocol on the |
| default SSH port (22). This will result in prompting for both username and |
| password. |
| |
| `vnc://linux1.example.com:5900/` |
| : Connect to the server linux1.example.com using the VNC protocol and |
| specifying the port as 5900. |
| |
| `rdp://localuser@windows1.example.com/?security=rdp&ignore-cert=true&disable-audio=true&enable-drive=true&drive-path=/mnt/usb` |
| : Connect to the server windows1.example.com using the RDP protocol and the |
| user "localuser". This URI also specifies several RDP-specific parameters on |
| the connection, including forcing security mode to RDP (security=rdp), ignoring |
| any certificate errors (ignore-cert=true), disabling audio pass-through |
| (disable-audio=true), and enabling filesystem redirection (enable-drive=true) |
| to the /mnt/usb folder on the system running guacd (drive-path=/mnt/usb). |
| |