OpenID Authentik + Apache Guacamole

🐳 Installer Apache Guacamole avec Authentik (OIDC) via Docker

⚙️ Prérequis

  • Docker et Docker Compose installés :

    sudo apt update
    sudo apt install docker.io docker-compose -y
    sudo systemctl enable --now docker

1. Installation d’Authentik avec Docker

👉 Guide officiel : Authentik Docker Installation


2. Création du Provider OIDC dans Authentik

  1. Se connecter à l’interface admin : https://authentik.ton-domaine.tld/if/admin/ 💡 Remarque : Cette URL ne fonctionne que si un DNS est configuré. Sinon, utilisez http://<IP>:9000.

  2. Aller dans Providers > + Create Type : OAuth2/OpenID Provider

  3. Configurer :

    • Nom : Guacamole OIDC Provider

    • Authorization flow : explicit consent

    • Redirect URIs :

      http://<IP>:8080/guacamole/
      OU
      https://guacamole.ton-domaine.tld/guacamole/   ⚠️ Seulement si DNS configuré
  4. Enregistrer et copier :

    • Client ID

    • Client Secret


3. Création de l’Application dans Authentik

  1. Allez dans Applications > + Create

  2. Remplir :

    • Nom : Guacamole

    • Slug : guacamole

    • Provider : celui créé juste avant

  3. Enregistrer.


4. Récupération des Endpoints Authentik

À partir du provider OIDC, notez :

Endpoint
Exemple (avec DNS)
Exemple (sans DNS)

Authorization Endpoint

https://authentik.ton-domaine.tld/application/o/guacamole/authorize/

http://<IP>/application/o/guacamole/authorize/

JWKS Endpoint

https://authentik.ton-domaine.tld/application/o/guacamole/jwks/

http://<IP>application/o/guacamole/jwks/

Issuer

https://authentik.ton-domaine.tld/application/o/guacamole/

http://<IP>/application/o/guacamole/

Redirect URI (vers Guacamole)

https://guacamole.ton-domaine.tld/guacamole/

http://<IP>:8080/guacamole/


5. Déploiement de Guacamole avec Docker

a. Télécharger le docker-compose.yml

👉 Lien GitHub docker-compose Guacamolearrow-up-right

b. Créer le fichier .env

Dans le même dossier que docker-compose.yml, créer un fichier .env :

👉 Lien Github Fichier .envarrow-up-right

circle-exclamation

Utiliser le bon endpoint en fonction de si DNS est configuré ou non

Remplacer <IP> et les secrets par vos vraies valeurs.


▶️ Lancer les conteneurs


✅ Accéder à Guacamole

  • Sans DNS (défaut) : http://<IP>:8080/guacamole/

  • Avec DNS (et certificat HTTPS) : https://guacamole.ton-domaine.tld/guacamole/


🔁 Bonus : Utilisation d’un Reverse Proxy (ex: NGINX)

Pour rendre l’accès à Guacamole plus propre et sécurisé, on peut le placer derrière un reverse proxy comme NGINX.

Exemple de configuration NGINX

✅ Avantages

  • URL propre : https://guacamole.ton-domaine.tld/

  • Connexion sécurisée (HTTPS avec certbot ou autre)

  • Possibilité de gérer l'accès en frontal via firewall, fail2ban, etc.

  • Permet de cacher l’IP/port interne de Guacamole


circle-exclamation

⚠️ Important : Impacts sur Authentik

Exemple : config parallèle pour Authentik


🧠 Résumé des recommandations

Élément
Avec DNS / RP
Sans DNS / RP

Guacamole accessible via

https://guacamole.tld/guacamole/

http://<IP>:8080/guacamole/

Authentik doit connaître

Certificat TLS du reverse proxy

Pas de validation TLS

Certificat

Let’s Encrypt ou équivalent

Non requis

Authentik via RP

Recommandé

Optionnel


Last updated