blob: 904fa890ced21c0f7e70d4ee4b1b027ec02fcff5 [file] [log] [blame] [view]
HTTP header authentication
==========================
Guacamole supports delegating authentication to an arbitrary external service,
relying on the presence of an HTTP header which contains the username of the
authenticated user. This authentication method must be layered on top of some
other authentication extension, such as those available from the main project
website, in order to provide access to actual connections.
:::{important}
All external requests must be properly sanitized if this extension is used. The
chosen HTTP header must be stripped from untrusted requests, such that the
authentication service is the only possible source of that header. *If such
sanitization is not performed, it will be trivial for malicious users to add
this header manually, and thus gain unrestricted access.*
:::
(header-downloading)=
Downloading the HTTP header authentication extension
----------------------------------------------------
The HTTP header authentication 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 on the
release notes for that version. You can find the release notes for current
versions of Guacamole here: <http://guacamole.apache.org/releases/>.
The HTTP header authentication extension is packaged as a `.tar.gz` file
containing only the extension itself, `guacamole-auth-header-1.6.0.jar`, which
must ultimately be placed in `GUACAMOLE_HOME/extensions`.
(installing-header-auth)=
Installing HTTP header authentication
-------------------------------------
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 HTTP header authentication extension, you must:
1. Create the `GUACAMOLE_HOME/extensions` directory, if it does not already
exist.
2. Copy `guacamole-auth-header-1.6.0.jar` within `GUACAMOLE_HOME/extensions`.
3. Configure Guacamole to use HTTP header authentication, as described below.
(guac-header-config)=
### Configuring Guacamole for HTTP header authentication
The HTTP header authentication extension provides only one configuration
property, and it is optional. By default, the extension will pull the username
of the authenticated user from the `REMOTE_USER` header, if present. If your
authentication system uses a different HTTP header, you will need to override
this by specifying the `http-auth-header` property within
[`guacamole.properties`](initial-setup):
`http-auth-header`
: The HTTP header containing the username of the authenticated user. This
property is optional. If not specified, `REMOTE_USER` will be used by
default.
(completing-header-install)=
### Completing the installation
Guacamole will only reread `guacamole.properties` and load newly-installed
extensions during startup, so your servlet container will need to be restarted
before HTTP header authentication 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 new
authentication a try.