Commit Graph

40 Commits

Author SHA1 Message Date
Mike Jumper
5f50f036d7 GUACAMOLE-1859: Update Java dependencies to latest compatible versions. 2023-10-06 11:38:38 -07:00
Mike Jumper
2149887d0c GUACAMOLE-1807: Update Java dependencies to latest compatible versions. 2023-07-11 11:16:32 -07:00
Virtually Nick
49300d17b4 GUACAMOLE-1816: Bump client versions to 1.5.3. 2023-07-03 13:51:40 -04:00
James Muehlner
4852d63373 GUACAMOLE-1794: Update KSM SDK to 16.5.3 to add support for "passkey" field type.
(cherry picked from commit 2a9bbed2250be2087db8d4a276ff4140ac919888)
2023-05-23 23:40:44 +00:00
Mike Jumper
0631ff9689 GUACAMOLE-1785: Bump version numbers to 1.5.2. 2023-05-17 16:43:01 -07:00
Michael Jumper
486fe6f42a GUACAMOLE-1769: Handle case that KSM's getCustom() returns null. 2023-04-13 13:38:53 -07:00
Mike Jumper
0b4468ba24 GUACAMOLE-1752: Bump version numbers to 1.5.1. 2023-04-09 19:54:19 -07:00
Michael Jumper
8ee9ee40dc GUACAMOLE-1763: Update Java dependencies to latest compatible versions. 2023-04-03 14:24:58 -07:00
James Muehlner
5966dcae63 GUACAMOLE-1604: Merge version number bumps to 1.5.0. 2023-01-10 17:14:29 -08:00
Mike Jumper
5ecee2efaa GUACAMOLE-1604: Bump version numbers of all projects to 1.5.0. 2023-01-10 16:40:19 -08:00
Mike Jumper
9262a2b33b GUACAMOLE-1594: Update Java dependencies to latest compatible versions. 2023-01-10 16:28:08 -08:00
Mike Jumper
ce9922e08c GUACAMOLE-1594: Update all Java and JavaScript dependencies to latest compatible.
NOTE: Several WebPack plugins could not be updated as all plugins within
WebPack's "webpack-contrib" have dropped support for WebPack v4
entirely, but Closure Compiler only supports WebPack v4.
2022-10-27 12:54:58 -07:00
Michael Jumper
837a0360be GUACAMOLE-641: Clarify that null will also be returned if the List actually contains null. 2022-04-27 22:01:01 +00:00
Michael Jumper
741cf481d6 GUACAMOLE-641: Ensure empty strings within KSM record fields are handled as if the field value is absent. 2022-04-27 19:22:04 +00:00
Michael Jumper
ed14fa3ecf GUACAMOLE-641: Use "KeyPair" typed field for private key only if non-empty.
An SSH server record in KSM has an associated "KeyPair" field, but this
field need not be set. If unset, the current logic ignores the rest of
the record and assumes there is no private key at all. Instead, the
standard fallbacks of locating an attached PEM file, locating an
alternative password field, etc. should be used.
2022-01-30 11:33:14 -08:00
Michael Jumper
96c8c7de61 GUACAMOLE-641: Correct old references to the temporarily-removed Azure support. 2022-01-25 19:50:17 -08:00
Michael Jumper
979505bb58 GUACAMOLE-641: Remove Azure Key Vault extension until license text can be obtained. 2022-01-22 22:25:05 -08:00
Michael Jumper
e89a65586c GUACAMOLE-641: Alternatively download .pem files for private keys. 2022-01-22 22:25:05 -08:00
Michael Jumper
86d1de5f2c GUACAMOLE-641: Automatically pull Guacamole properties from vault. 2022-01-22 22:25:05 -08:00
Michael Jumper
46501f4b63 GUACAMOLE-641: Correct standard vs. custom field logic for complex retrievals.
When retrieving a contextual field like "passphrase", which does not
have a typed representation different from "password" or "hidden", the
contexts where the field's identity is truly known should be preferred
("password" field of a record with a "keypair" field, which MUST be the
key passphrase). When venturing outside well-known contexts, custom
fields should be preferred when their standard counterparts would
already have well-established meanings that differ from the requested
secret (again: "password" of a record with "keypair").

If this is not done, things like retrieving the private key from a
"Login" record fail, as one of the possible storage mechanisms for a
private key is a hidden or password field, which pulls the user's
password instead of their key. In this case, the correct behavior is
to pull the typed value ("keypair") if available, and use custom fields
ONLY otherwise, as those fields have labels that can establish context.
In no other case would it be reliable to assume that a hidden/password
field actually contains a private key.
2022-01-22 22:25:05 -08:00
Michael Jumper
1cfd2ee835 GUACAMOLE-641: Index records by username ONLY if not related to a hostname.
Doing otherwise would mean that a particular user would never be able
to be associated with a specific password/key by their username if they
have any explicit server-specific account.
2022-01-22 22:25:05 -08:00
Michael Jumper
87b26fe2c8 GUACAMOLE-641: Use record service to resolve hostname/username of records for later lookup. 2022-01-22 22:25:04 -08:00
Michael Jumper
55b7e6f867 GUACAMOLE-641: Additionally match against KSM custom fields based on labels. 2022-01-22 22:25:04 -08:00
Michael Jumper
f8f0779d7a GUACAMOLE-641: Manually extract password value from KeeperRecord.
Simply calling getPassword() does not currently work correctly, as the
implementation of getPassword() assumes there will be at least one
value if the field is present. This results in an
ArrayIndexOutOfBoundsException for records with empty passwords:

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
 at java.util.ArrayList.rangeCheck(ArrayList.java:659)
 at java.util.ArrayList.get(ArrayList.java:435)
 at com.keepersecurity.secretsManager.core.KeeperRecord.getPassword(SecretsManager.kt:134)
 ...
2022-01-22 22:25:04 -08:00
Michael Jumper
b6e6800c0d GUACAMOLE-641: Consider null token mapping (blank YAML) to be empty. 2022-01-22 22:25:04 -08:00
Michael Jumper
aee1b13b2b GUACAMOLE-641: Include KSM extension in vault distribution. 2022-01-22 22:25:04 -08:00
Michael Jumper
62863f8a0b GUACAMOLE-641: Log possible ambiguous record retrievals at debug level. 2022-01-22 22:25:04 -08:00
Michael Jumper
c5ae027225 GUACAMOLE-641: Add user- and gateway-specific tokens. 2022-01-22 22:25:04 -08:00
Michael Jumper
b655866057 GUACAMOLE-641: Consider existing tokens when injecting tokens from vault. 2022-01-22 22:25:04 -08:00
Michael Jumper
d2f5596015 GUACAMOLE-641: Automatically provide KEEPER_SERVER_* tokens based on connection parameters. 2022-01-22 22:25:04 -08:00
Michael Jumper
30f24de808 GUACAMOLE-641: Allow vault implementations to automatically provide tokens based on connection parameters (without YAML mapping). 2022-01-22 22:25:04 -08:00
Michael Jumper
d0bd4b52d6 GUACAMOLE-641: Add general service for retrieving data from Keeper records. 2022-01-22 22:25:04 -08:00
Michael Jumper
d0043e34dd GUACAMOLE-641: Allow token mapping file to not exist.
Some tokens may be standardized or specific to the implementation, and
may not need to be defined in YAML.
2022-01-22 22:25:04 -08:00
Michael Jumper
8bedbe746c GUACAMOLE-641: Add initial draft implementation of KSM vault support for Guacamole. 2022-01-22 22:25:04 -08:00
Michael Jumper
786430612e GUACAMOLE-641: Canonicalize individual, tokenized components of secret names rather than the whole name.
In the event that a secret name is structured, such as the URL-like
notation used by Keeper Secrets Manager, canonicalizing/encoding the
entire name could result in the name itself becoming invalid. Only the
portions that come from tokens should be canonicalized.
2022-01-22 22:25:04 -08:00
Michael Jumper
16cb9ed69b GUACAMOLE-641: Expand CONNECTION_USERNAME and CONNECTION_HOSTNAME tokens only if corresponding parameters are non-empty. 2022-01-22 22:25:04 -08:00
Michael Jumper
4d3b2a9435 GUACAMOLE-641: Obtain connection hostname and/or username for vault tokens via privileged access, if possible. 2022-01-22 22:25:04 -08:00
Michael Jumper
5aba0cd09d GUACAMOLE-641: Read token/secret mapping from YAML instead of JSON. 2022-01-22 22:25:04 -08:00
Michael Jumper
b57578ad8e GUACAMOLE-641: Rename vault-specific username token to "USERNAME" to avoid confusion with "GUAC_USERNAME".
The "GUAC_USERNAME" token provided by the webapp is based off the
username provided by the user when they authenticated. The username
token provided by the vault extensions uses the username stored with
the user's corresponding object, which may not be the same.
2022-01-22 22:25:04 -08:00
Michael Jumper
f99b3a3213 GUACAMOLE-641: Rename guacamole-auth-vault to guacamole-vault (does not provide auth). 2022-01-22 22:25:04 -08:00