You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@guacamole.apache.org by "Michael Jumper (JIRA)" <ji...@apache.org> on 2016/12/06 04:10:58 UTC
[jira] [Created] (GUACAMOLE-136) Add support for TFA - initially
Duo
Michael Jumper created GUACAMOLE-136:
----------------------------------------
Summary: Add support for TFA - initially Duo
Key: GUACAMOLE-136
URL: https://issues.apache.org/jira/browse/GUACAMOLE-136
Project: Guacamole
Issue Type: Improvement
Components: guacamole-client
Reporter: Michael Jumper
Assignee: Michael Jumper
Fix For: 0.9.11-incubating
Copied from downstream [GUAC-1574|https://glyptodon.org/jira/browse/GUAC-1574]:
{quote}
Add support for two-factor authentication to Guacamole, initially providing an implementation supporting [Duo|https://duo.com/], but keeping in mind that future implementations will likely be made for other TFA providers (similar to the MySQL and PostgreSQL authentication backends sharing a common core).
The Duo API makes things considerably simple, and is nicely in line with the authentication system already present in Guacamole. The auth process would be as follows:
# The user attempts to sign into Guacamole as usual.
# The authentication attempt succeeds.
# The Duo authentication extension vetoes the authentication attempt, requesting additional information. This request is part of the Guacamole extension API, and in this case would trigger the Duo prompt to appear.
# The user submits the additional information. This data is forwarded by the Duo API to Guacamole's authentication system, which then issues a new authentication request on behalf of the user with the additional data.
# The Duo authentication extension validates the additional data, allows the authentication attempt to succeed, and the user is in.
The specifics of this would require defining a new field type which contains the Duo <iframe>, and properly calling Duo's Java equivalent to their verify_response() function when the TFA response is received. Though their API is aimed at performing a POST to some arbitrary URL on the user's behalf, they also provide a JavaScript callback which will be invoked instead, allowing us to assign the field value and invoke form submit.
{quote}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)