GitHub user mike-jumper opened a pull request:
https://github.com/apache/guacamole-client/pull/247
GUACAMOLE-96: Add support for TOTP as an additional authentication factor.
The last in a series of changes building the foundation for TOTP support
(see #225 and #233), this change adds actual support for TOTP authentication.
It builds off the reference implementation provided by the IETF, and supports
enrollment via QR codes or manual entry of parameters into the authentication
device.
Configurable values are given defaults compatible with Google
Authenticator, thus the extension will work with Google Authenticator and
similar solutions out-of-the-box, as well as others with minor additions to
`guacamole.properties`.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/mike-jumper/guacamole-client
totp-03-of-03-final
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/guacamole-client/pull/247.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 #247
----
commit 264fd24b6586b66392bf9e2c022fa31918719a8a
Author: Michael Jumper <mjumper@...>
Date: 2017-11-20T05:14:18Z
GUACAMOLE-96: Add skeleton TOTP authentication extension (hard-coded, fake
TOTP).
commit b55e56179c656191d3363b9089e3e3f235351d83
Author: Michael Jumper <mjumper@...>
Date: 2017-11-20T08:22:26Z
GUACAMOLE-96: Add TOTP generator implementation based on reference
implementation from IETF.
commit 19e03a1632eee39508378a434f3362b9e9f9a3f8
Author: Michael Jumper <mjumper@...>
Date: 2017-11-20T08:57:37Z
GUACAMOLE-96: Verify TOTP of all users against hard-coded key.
commit 8dd5537cf30f9b9a57e637dae53c47c237416064
Author: Michael Jumper <mjumper@...>
Date: 2017-11-20T09:05:42Z
GUACAMOLE-96: Pull TOTP key from user attribute.
commit 78c398f45d484ba4935870f6cd5a146a6f9d2f16
Author: Michael Jumper <mjumper@...>
Date: 2017-11-20T09:19:39Z
GUACAMOLE-96: Allow users to enter either the current or previous TOTP
codes.
commit 4178a4b8b3f4898db4af9159ea2d3df747a01638
Author: Michael Jumper <mjumper@...>
Date: 2017-11-20T18:37:23Z
GUACAMOLE-96: Include recommended key length for each TOTP mode.
commit 8e3cbf06274c385afb99340e3b1c153a7946fb08
Author: Michael Jumper <mjumper@...>
Date: 2017-11-20T18:56:35Z
GUACAMOLE-96: Abstract TOTP key into separate class with confirmation
semantics.
commit 0844e9d42297a7f87e6bf2a8fb2f75a198aa0d3f
Author: Michael Jumper <mjumper@...>
Date: 2017-11-20T19:00:15Z
GUACAMOLE-96: Add license for Guava.
commit 8ac8fec47834a13317591a676faf11ed29b34929
Author: Michael Jumper <mjumper@...>
Date: 2017-11-20T20:03:18Z
GUACAMOLE-96: Migrate to TOTP-specific field type for authentication code.
commit 170a11bf2a17a98b7ce292ecc53c947b755bad14
Author: Michael Jumper <mjumper@...>
Date: 2017-11-20T22:01:39Z
GUACAMOLE-96: Handle enrollment via QR code for unconfirmed users.
commit a422fdf9c235e898d5c05499cef638501beb6508
Author: Michael Jumper <mjumper@...>
Date: 2017-11-20T22:29:03Z
GUACAMOLE-96: Add configuration parameters for details of TOTP generation.
commit 2a894c487cf25e1ffa35548de1dc791aefed6471
Author: Michael Jumper <mjumper@...>
Date: 2017-11-20T23:51:06Z
GUACAMOLE-96: Clean up enrollment interface. Provide help text for user.
commit 96e3d029992ac09d27aac808c489779000fb6fe1
Author: Michael Jumper <mjumper@...>
Date: 2017-11-21T00:15:01Z
GUACAMOLE-96: Block external access to TOTP-internal attributes.
commit 456b8a0394c7cc5dc6ed8dd02f9a83383b05d63b
Author: Michael Jumper <mjumper@...>
Date: 2017-11-21T00:20:13Z
GUACAMOLE-96: Remove unused field controller.
commit b1c23f20d00b030cb8a8691f8aad1d53a341f8ff
Author: Michael Jumper <mjumper@...>
Date: 2017-11-23T02:53:29Z
GUACAMOLE-96: Ensure valid codes cannot be reused.
commit 5b2b633707b997212de553130e1e9f7b6627c30e
Author: Michael Jumper <mjumper@...>
Date: 2017-11-24T20:34:09Z
GUACAMOLE-96: Include all TOTP key details in field when enrolling.
commit 78cde50df96fcda535622fd9039ac0c6dc59c5ef
Author: Michael Jumper <mjumper@...>
Date: 2017-11-24T21:33:39Z
GUACAMOLE-96: Allow user's raw TOTP key details to be exposed within UI
during enrollment.
commit b9dba7ddf4eaa9c291035c706bfc6b32408544e8
Author: Michael Jumper <mjumper@...>
Date: 2017-11-24T21:54:26Z
GUACAMOLE-96: Open "otpauth" link when user clicks on barcode.
commit a426f59765471adb72dc011a56b50d9c403d4ab4
Author: Michael Jumper <mjumper@...>
Date: 2017-11-24T22:02:18Z
GUACAMOLE-96: Scroll login interface if too large for screen.
commit 608a11170baba9b983e2bf8601b8a7936c42d986
Author: Michael Jumper <mjumper@...>
Date: 2017-11-24T22:05:32Z
GUACAMOLE-96: TOTP detail headers should always be left-aligned.
----
---