GitHub user mike-jumper opened a pull request:

    https://github.com/apache/guacamole-client/pull/336

    GUACAMOLE-641: Add support for populating arbitrary parameter tokens from 
key vaults.

    These changes add a new family of extensions, similar to 
"guacamole-auth-jdbc", which provide support for retrieval of secrets from key 
vaults: "guacamole-auth-vault". Initial support for Azure Key Vault is present 
through the "guacamole-auth-vault-azure" module, with the necessary structure 
in place to allow other implementations to be provided in the future.
    
    The general support works as follows:
    
    1. A JSON file is included within `GUACAMOLE_HOME` which defines a 
token/secret mapping. Besides defining tokens, the names of each secret may 
also contain tokens which allow the secret name to vary by connection ID, 
hostname, username, etc. There is a specific set of tokens available for use 
within secret names.
    2. When a user attempts to connect to a connection or connection group, the 
key vault implementation is queried to retrieve each defined secret. Tokens are 
then defined for only those secrets whose names are fully defined within the 
current context and which have values stored within the vault.
    3. The extension defining the connection is given these tokens. If the 
extension supports substitution of parameter tokens, as all current extensions 
do, those tokens will be substituted within the configuration of the 
connection. Guacamole extensions are not required to do this, however.
    4. To avoid excessive retrieval requests, the result of retrieving a 
particular secret is cached (by default for 10 seconds).
    
    This thus allows secret values like passwords and private keys to be stored 
off-site within the vault and retrieved dynamically based on context.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/mike-jumper/guacamole-client key-vault

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/guacamole-client/pull/336.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #336
    
----
commit a1d6eeac5f4fce22291a6b9f2c826915441b1329
Author: Michael Jumper <mjumper@...>
Date:   2018-10-07T05:32:26Z

    GUACAMOLE-641: Allow token retrieval/generation to fail with an error.

commit fa7878fc22f5c4f012b38e517e37dbfc9a2f31ee
Author: Michael Jumper <mjumper@...>
Date:   2018-10-07T05:36:30Z

    GUACAMOLE-641: Provide strict filtering mode for TokenFilter which 
disallows undefined tokens.

commit 34d14262c092878ccdf8bec1e73ab6292f7ba72a
Author: Michael Jumper <mjumper@...>
Date:   2018-10-07T20:28:12Z

    GUACAMOLE-641: Add generic vault support with an initial Azure Key Vault 
implementation.

commit 0bd1343d016adee73834c31791162feba4c65400
Author: Michael Jumper <mjumper@...>
Date:   2018-10-08T01:21:20Z

    GUACAMOLE-641: Automatically cache requests for secrets from the vault.

commit 35ee93de8a8ef58241e7e3c6bb145447857d6d19
Author: Michael Jumper <mjumper@...>
Date:   2018-10-16T17:29:05Z

    GUACAMOLE-641: Retrieve secrets from Azure Key Vault.

commit 0f3ac8161915a07d1476f2b09f998ac040c5488c
Author: Michael Jumper <mjumper@...>
Date:   2018-10-16T21:16:14Z

    GUACAMOLE-641: Allow tokens to be easily injected on-demand.

commit 4d90b34732d81efd1fbdeab8df9d9edb939f6266
Author: Michael Jumper <mjumper@...>
Date:   2018-10-16T21:51:24Z

    GUACAMOLE-641: Retrieve tokens asynchronously and in parallel.

----


---

Reply via email to