Skip to content

Latest commit

 

History

History
74 lines (68 loc) · 4.65 KB

SSO-EXTENSIONS-HOW-TO.md

File metadata and controls

74 lines (68 loc) · 4.65 KB

How to build all Guacamole client extensions:

Licensing prevents some extensions being supplied in binary form, therefore these must be built from source. To achieve this, follow the exact order below on a fresh Linux system WITHOUT JVM INSTALLED.

1. Obtain the specific JDK dependency

Download jdk-8u411-linux-x64.tar.gz from Oracle (needs an Oracle sign in, select the Linux x64 compressed archive and copy it to your Linux home dir) A backup of this file is achived here.

2. Install the JDK

sudo mkdir -p /usr/lib/jvm
sudo tar zxvf jdk-8u411-linux-x64.tar.gz -C /usr/lib/jvm
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_411/bin/java" 1
sudo update-alternatives --set java /usr/lib/jvm/jdk1.8.0_411/bin/java

3. Clone Guacamole client source

git clone https://github.com/apache/guacamole-client.git
cd guacamole-client
git checkout 1.5.5 # or whatever version

4. Install Maven and build all the client binaries (with Radius support)

sudo apt -y install maven
mvn clean package -Plgpl-extensions

Build output should show:

[INFO] Reactor Summary for guacamole-client 1.5.5:
[INFO] guacamole-client ................................... SUCCESS [ 18.363 s]
[INFO] guacamole-common ................................... SUCCESS [ 10.902 s]
[INFO] guacamole-ext ...................................... SUCCESS [  6.032 s]
[INFO] guacamole-common-js ................................ SUCCESS [ 14.552 s]
[INFO] guacamole .......................................... SUCCESS [01:04 min]
[INFO] extensions ......................................... SUCCESS [  0.132 s]
[INFO] guacamole-auth-duo ................................. SUCCESS [  5.207 s]
[INFO] guacamole-auth-header .............................. SUCCESS [  0.793 s]
[INFO] guacamole-auth-jdbc ................................ SUCCESS [  0.143 s]
[INFO] guacamole-auth-jdbc-base ........................... SUCCESS [  3.314 s]
[INFO] guacamole-auth-jdbc-mysql .......................... SUCCESS [  1.208 s]
[INFO] guacamole-auth-jdbc-postgresql ..................... SUCCESS [  1.008 s]
[INFO] guacamole-auth-jdbc-sqlserver ...................... SUCCESS [  1.004 s]
[INFO] guacamole-auth-jdbc-dist ........................... SUCCESS [  1.072 s]
[INFO] guacamole-auth-json ................................ SUCCESS [  2.648 s]
[INFO] guacamole-auth-ldap ................................ SUCCESS [  8.882 s]
[INFO] guacamole-auth-quickconnect ........................ SUCCESS [  1.704 s]
[INFO] guacamole-auth-sso ................................. SUCCESS [  0.132 s]
[INFO] guacamole-auth-sso-base ............................ SUCCESS [  0.667 s]
[INFO] guacamole-auth-sso-cas ............................. SUCCESS [  5.205 s]
[INFO] guacamole-auth-sso-openid .......................... SUCCESS [  1.237 s]
[INFO] guacamole-auth-sso-saml ............................ SUCCESS [  3.801 s]
[INFO] guacamole-auth-sso-dist ............................ SUCCESS [  1.312 s]
[INFO] guacamole-auth-totp ................................ SUCCESS [  2.780 s]
[INFO] guacamole-history-recording-storage ................ SUCCESS [  0.646 s]
[INFO] guacamole-vault .................................... SUCCESS [  0.117 s]
[INFO] guacamole-vault-base ............................... SUCCESS [  1.005 s]
[INFO] guacamole-vault-ksm ................................ SUCCESS [  5.242 s]
[INFO] guacamole-vault-dist ............................... SUCCESS [  1.050 s]
[INFO] guacamole-auth-radius .............................. SUCCESS [ 11.777 s] 
[INFO] guacamole-example .................................. SUCCESS [  2.080 s]
[INFO] guacamole-playback-example ......................... SUCCESS [  0.883 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  02:59 min
[INFO] Finished at: 2024-10-29T11:38:19+11:00
[INFO] ------------------------------------------------------------------------

5 Move your new extension to the Guacamole server

  1. As sudo, copy the new extension.jar file (found in guacamole-client/extensions/guacamole-auth-radius/target/) to /etc/guacamole/extensions on your Guacamole server.
  2. Adjust permissions on the new extension.jar file with sudo chmod 664 /etc/guacamole/extensions/extension.jar
  3. Restart and continue configuring the new extension as per the Guacmole official documentation here.