You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@guacamole.apache.org by vn...@apache.org on 2018/10/14 21:23:52 UTC
[1/3] guacamole-manual git commit: GUACAMOLE-96: Document support for
multi-factor authentication using TOTP.
Repository: guacamole-manual
Updated Branches:
refs/heads/master f35fe6421 -> 614bdece2
GUACAMOLE-96: Document support for multi-factor authentication using TOTP.
Project: http://git-wip-us.apache.org/repos/asf/guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-manual/commit/f1d368be
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-manual/tree/f1d368be
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-manual/diff/f1d368be
Branch: refs/heads/master
Commit: f1d368be9b3787f42209a4ee8cede7bf99153270
Parents: 7083723
Author: Michael Jumper <mj...@apache.org>
Authored: Thu Oct 11 01:36:31 2018 -0700
Committer: Michael Jumper <mj...@apache.org>
Committed: Thu Oct 11 01:46:05 2018 -0700
----------------------------------------------------------------------
src/chapters/images/totp-auth-factor-1.png | Bin 0 -> 12418 bytes
src/chapters/images/totp-auth-factor-2.png | Bin 0 -> 14088 bytes
src/chapters/images/totp-enroll-detail.png | Bin 0 -> 42801 bytes
src/chapters/images/totp-enroll.png | Bin 0 -> 33722 bytes
src/chapters/totp-auth.xml | 214 ++++++++++++++++++++++++
src/gug.xml | 1 +
6 files changed, 215 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/guacamole-manual/blob/f1d368be/src/chapters/images/totp-auth-factor-1.png
----------------------------------------------------------------------
diff --git a/src/chapters/images/totp-auth-factor-1.png b/src/chapters/images/totp-auth-factor-1.png
new file mode 100644
index 0000000..3a82976
Binary files /dev/null and b/src/chapters/images/totp-auth-factor-1.png differ
http://git-wip-us.apache.org/repos/asf/guacamole-manual/blob/f1d368be/src/chapters/images/totp-auth-factor-2.png
----------------------------------------------------------------------
diff --git a/src/chapters/images/totp-auth-factor-2.png b/src/chapters/images/totp-auth-factor-2.png
new file mode 100644
index 0000000..c2a649f
Binary files /dev/null and b/src/chapters/images/totp-auth-factor-2.png differ
http://git-wip-us.apache.org/repos/asf/guacamole-manual/blob/f1d368be/src/chapters/images/totp-enroll-detail.png
----------------------------------------------------------------------
diff --git a/src/chapters/images/totp-enroll-detail.png b/src/chapters/images/totp-enroll-detail.png
new file mode 100644
index 0000000..afde141
Binary files /dev/null and b/src/chapters/images/totp-enroll-detail.png differ
http://git-wip-us.apache.org/repos/asf/guacamole-manual/blob/f1d368be/src/chapters/images/totp-enroll.png
----------------------------------------------------------------------
diff --git a/src/chapters/images/totp-enroll.png b/src/chapters/images/totp-enroll.png
new file mode 100644
index 0000000..97474b6
Binary files /dev/null and b/src/chapters/images/totp-enroll.png differ
http://git-wip-us.apache.org/repos/asf/guacamole-manual/blob/f1d368be/src/chapters/totp-auth.xml
----------------------------------------------------------------------
diff --git a/src/chapters/totp-auth.xml b/src/chapters/totp-auth.xml
new file mode 100644
index 0000000..4d85c66
--- /dev/null
+++ b/src/chapters/totp-auth.xml
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<chapter xml:id="totp-auth" xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en"
+ xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>TOTP two-factor authentication</title>
+ <indexterm>
+ <primary>TOTP</primary>
+ </indexterm>
+ <para>Guacamole supports TOTP as a second authentication factor, layered on top of any other
+ authentication extension, including those available from the main project website, providing
+ <link linkend="totp-prerequisites">base requirements for key storage and
+ enrollment</link> are met. The TOTP authentication extension allows users to be
+ additionally verified against a user-specific and secret key generated during <link
+ linkend="totp-enrollment">enrollment of their authentication device</link>.</para>
+ <important>
+ <para>This chapter involves modifying the contents of <varname>GUACAMOLE_HOME</varname> -
+ the Guacamole configuration directory. If you are unsure where
+ <varname>GUACAMOLE_HOME</varname> is located on your system, please consult <xref
+ linkend="configuring-guacamole"/> before proceeding.</para>
+ </important>
+ <section xml:id="totp-prerequisites">
+ <title>Prerequisites</title>
+ <para>The enrollment process used by Guacamole's TOTP support needs to be able to store an
+ automatically-generated key within the user's account, and will be operating with the
+ privileges of that user when it does so. With this in mind, there are requirements which
+ must be satisfied for TOTP to work as expected:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Another extension must be installed which supports storage of arbitrary data
+ from other extensions. <emphasis>Currently the only extensions provided with
+ Guacamole which support this kind of storage are the <link
+ linkend="jdbc-auth">database authentication
+ extensions</link>.</emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Within whichever extension provides the storage described above, users
+ requiring TOTP must be granted permission to update their own accounts (to
+ update their passwords, etc.). This privilege is managed within the <link
+ linkend="user-management">administrative web interface</link> with a
+ checkbox labeled "change own password". <emphasis>If a user lacks this
+ permission, the TOTP extension will not be able to generate and store the
+ user's TOTP key during enrollment, and TOTP will be disabled for that
+ user.</emphasis></para>
+ </listitem>
+ </itemizedlist>
+ <para>It is thus recommended that authentication against a database be fully configured
+ prior to setting up TOTP. Instructions walking through the setup of database
+ authentication for Guacamole are provided in <xref linkend="jdbc-auth"/>.</para>
+ </section>
+ <section xml:id="totp-architecture">
+ <title>How TOTP works with Guacamole</title>
+ <para>Guacamole provides support for TOTP as a second authentication factor. To make use of
+ the TOTP authentication extension, some other authentication mechanism will need be
+ configured, as well. When a user attempts to log into Guacamole, other installed
+ authentication methods will be queried first:</para>
+ <informalfigure>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/totp-auth-factor-1.png" format="PNG"
+ contentwidth="2in"/>
+ </imageobject>
+ </mediaobject>
+ </informalfigure>
+ <para>Only after authentication has succeeded with one of those methods will Guacamole
+ prompt the user to further verify their identity with an authentication code:</para>
+ <informalfigure>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/totp-auth-factor-2.png" format="PNG"
+ contentwidth="4in"/>
+ </imageobject>
+ </mediaobject>
+ </informalfigure>
+ <para>If both the initial authentication attempt and verification using TOTP succeed, the
+ user will be allowed in. If either mechanism fails, access to Guacamole is
+ denied.</para>
+ <section xml:id="totp-enrollment">
+ <title>Enrollment</title>
+ <para>If the user does not yet have a TOTP key associated with their account (they have
+ not yet completed enrollment), they be required to enroll an authentication device
+ after passing the first authentication factor. A QR code containing an
+ automatically-generated key will be presented to the user to be scanned by their
+ authentication app or device:</para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/totp-enroll.png" format="PNG" contentwidth="4in"/>
+ </imageobject>
+ </mediaobject>
+ <para>If the authentication device does not support scanning QR codes for enrollment,
+ the details within the QR code can be revealed by clicking the "Show" link next to
+ the "Details" header. These values can then be entered manually:</para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/totp-enroll-detail.png" format="PNG"
+ contentwidth="4in"/>
+ </imageobject>
+ </mediaobject>
+ <para>Enrollment is completed once the user enters a valid authentication code generated
+ by their device using the provided key.</para>
+ </section>
+ </section>
+ <section xml:id="totp-downloading">
+ <title>Downloading the TOTP extension</title>
+ <para>The TOTP authentication extension is available separately from the main
+ <filename>guacamole.war</filename>. 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: <link
+ xlink:href="http://guacamole.apache.org/releases/"
+ >http://guacamole.apache.org/releases/</link>.</para>
+ <para>The TOTP authentication extension is packaged as a <filename>.tar.gz</filename> file
+ containing only the extension itself,
+ <filename>guacamole-auth-totp-1.0.0.jar</filename>, which must ultimately be placed in
+ <filename>GUACAMOLE_HOME/extensions</filename>.</para>
+ </section>
+ <section xml:id="installing-totp-auth">
+ <title>Installing TOTP authentication</title>
+ <para>Guacamole extensions are self-contained <filename>.jar</filename> files which are
+ located within the <filename>GUACAMOLE_HOME/extensions</filename> directory. To install
+ the TOTP authentication extension, you must:</para>
+ <procedure>
+ <step>
+ <para>Create the <filename>GUACAMOLE_HOME/extensions</filename> directory, if it
+ does not already exist.</para>
+ </step>
+ <step>
+ <para>Copy <filename>guacamole-auth-totp-1.0.0.jar</filename> within
+ <filename>GUACAMOLE_HOME/extensions</filename>.</para>
+ </step>
+ <step>
+ <para>Configure Guacamole to use TOTP authentication, as described below.</para>
+ </step>
+ </procedure>
+ <important>
+ <para>You will need to restart Guacamole by restarting your servlet container in order
+ to complete the installation. Doing this will disconnect all active users, so be
+ sure that it is safe to do so prior to attempting installation. If you do not
+ configure the TOTP authentication properly, Guacamole will not start up again until
+ the configuration is fixed.</para>
+ </important>
+ <section xml:id="guac-totp-config">
+ <title>Configuring Guacamole for TOTP</title>
+ <indexterm>
+ <primary>configuring TOTP</primary>
+ </indexterm>
+ <indexterm>
+ <primary>TOTP</primary>
+ <secondary>configuration</secondary>
+ </indexterm>
+ <para>With the exception of <link linkend="totp-prerequisites">the storage and
+ permission requirements described above</link>, the TOTP extension should work
+ out-of-the-box without any additional configuration. Defaults have been chosen for
+ all configuration parameters such that the TOTP extension will be compatible with
+ Google Authenticator and similar, popular TOTP implementations.</para>
+ <para>If your intended authentication application or device has different requirements,
+ or you wish to override the defaults, additional properties may be specified within
+ <filename>guacamole.properties</filename>:</para>
+ <variablelist>
+ <varlistentry>
+ <term><property>totp-issuer</property></term>
+ <listitem>
+ <para>The human-readable name of the entity issuing user accounts. If not
+ specified, "Apache Guacamole" will be used by default.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><property>totp-digits</property></term>
+ <listitem>
+ <para>The number of digits which should be included in each generated TOTP
+ code. Legal values are 6, 7, or 8. By default, 6-digit codes are
+ generated.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><property>totp-period</property></term>
+ <listitem>
+ <para>The duration that each generated code should remain valid, in seconds.
+ By default, each code remains valid for 30 seconds.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><property>totp-mode</property></term>
+ <listitem>
+ <para>The hash algorithm that should be used to generate TOTP codes. Legal
+ values are "sha1", "sha256", and "sha512". By default, "sha1" is
+ used.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+ <section xml:id="completing-totp-install">
+ <title>Completing the installation</title>
+ <para>Guacamole will only reread <filename>guacamole.properties</filename> and load
+ newly-installed extensions during startup, so your servlet container will need to be
+ restarted before TOTP authentication will take effect. Restart your servlet
+ container and give the new authentication a try.</para>
+ <para>
+ <important>
+ <para>You only need to restart your servlet container. <emphasis>You do not need
+ to restart <package>guacd</package></emphasis>.</para>
+ <para><package>guacd</package> is completely independent of the web application
+ and does not deal with <filename>guacamole.properties</filename> or the
+ authentication system in any way. Since you are already restarting the
+ servlet container, restarting <package>guacd</package> as well technically
+ won't hurt anything, but doing so is completely pointless.</para>
+ </important>
+ </para>
+ <para>If Guacamole does not come back online after restarting your servlet container,
+ check the logs. Problems in the configuration of the TOTP extension may prevent
+ Guacamole from starting up, and any such errors will be recorded in the logs of your
+ servlet container.</para>
+ </section>
+ </section>
+</chapter>
http://git-wip-us.apache.org/repos/asf/guacamole-manual/blob/f1d368be/src/gug.xml
----------------------------------------------------------------------
diff --git a/src/gug.xml b/src/gug.xml
index 424df7b..df0f66e 100644
--- a/src/gug.xml
+++ b/src/gug.xml
@@ -161,6 +161,7 @@
<xi:include href="chapters/jdbc-auth.xml"/>
<xi:include href="chapters/ldap-auth.xml"/>
<xi:include href="chapters/duo-auth.xml"/>
+ <xi:include href="chapters/totp-auth.xml"/>
<xi:include href="chapters/header-auth.xml"/>
<xi:include href="chapters/cas-auth.xml"/>
<xi:include href="chapters/openid-auth.xml"/>
[2/3] guacamole-manual git commit: GUACAMOLE-96: Merge document
support for multi-factor authentication using TOTP.
Posted by vn...@apache.org.
GUACAMOLE-96: Merge document support for multi-factor authentication using TOTP.
Project: http://git-wip-us.apache.org/repos/asf/guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-manual/commit/949f9c75
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-manual/tree/949f9c75
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-manual/diff/949f9c75
Branch: refs/heads/master
Commit: 949f9c75e86c7e8933c074b7fd85dec2452edd03
Parents: 7083723 f1d368b
Author: Nick Couchman <vn...@apache.org>
Authored: Sun Oct 14 17:20:56 2018 -0400
Committer: Nick Couchman <vn...@apache.org>
Committed: Sun Oct 14 17:20:56 2018 -0400
----------------------------------------------------------------------
src/chapters/images/totp-auth-factor-1.png | Bin 0 -> 12418 bytes
src/chapters/images/totp-auth-factor-2.png | Bin 0 -> 14088 bytes
src/chapters/images/totp-enroll-detail.png | Bin 0 -> 42801 bytes
src/chapters/images/totp-enroll.png | Bin 0 -> 33722 bytes
src/chapters/totp-auth.xml | 214 ++++++++++++++++++++++++
src/gug.xml | 1 +
6 files changed, 215 insertions(+)
----------------------------------------------------------------------
[3/3] guacamole-manual git commit: Merge 1.0.0 changes back to master.
Posted by vn...@apache.org.
Merge 1.0.0 changes back to master.
Project: http://git-wip-us.apache.org/repos/asf/guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-manual/commit/614bdece
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-manual/tree/614bdece
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-manual/diff/614bdece
Branch: refs/heads/master
Commit: 614bdece24372b0f7e2b5348ffb910bd23b6eabc
Parents: f35fe64 949f9c7
Author: Nick Couchman <vn...@apache.org>
Authored: Sun Oct 14 17:23:26 2018 -0400
Committer: Nick Couchman <vn...@apache.org>
Committed: Sun Oct 14 17:23:26 2018 -0400
----------------------------------------------------------------------
src/chapters/images/totp-auth-factor-1.png | Bin 0 -> 12418 bytes
src/chapters/images/totp-auth-factor-2.png | Bin 0 -> 14088 bytes
src/chapters/images/totp-enroll-detail.png | Bin 0 -> 42801 bytes
src/chapters/images/totp-enroll.png | Bin 0 -> 33722 bytes
src/chapters/totp-auth.xml | 214 ++++++++++++++++++++++++
src/gug.xml | 1 +
6 files changed, 215 insertions(+)
----------------------------------------------------------------------