Imad’s wiki
GithubLinkedInXMailHashnode
  • ADMINISTRATION LINUX
    • Linux et ses distributions
    • Commandes Utiles
    • Gestion des paquets
    • SSH
    • Partitionnement LVM
  • Base de données
    • PostgreSQL
      • Quelques commandes Postgres
      • Mise à jour de Postgresql sous windows
  • Tutoriels
    • Securité
      • Wazuh
      • Intégration Debian sur Active Directory
      • Certificat SSL
    • SingleSignOn
      • Authentik
      • SAML + CENTREON
      • OpenID + Apache Guacamole
      • OpenID + Proxmox
    • Git
      • Git
    • Infra-As-Code
      • Terraform + Proxmox
      • Ansible
    • Conteneurisation
      • Docker
        • Quelques commandes Docker utiles
Powered by GitBook
On this page
  • 🐳 Installer Apache Guacamole avec Authentik (OIDC) via Docker
  • ⚙️ Prérequis
  • 1. Installation d’Authentik avec Docker
  • 2. Création du Provider OIDC dans Authentik
  • 3. Création de l’Application dans Authentik
  • 4. Récupération des Endpoints Authentik
  • 5. Déploiement de Guacamole avec Docker
  • ▶️ Lancer les conteneurs
  • ✅ Accéder à Guacamole
  • 🔁 Bonus : Utilisation d’un Reverse Proxy (ex: NGINX)
  • 🧠 Résumé des recommandations

Was this helpful?

  1. Tutoriels
  2. SingleSignOn

OpenID + Apache Guacamole

PreviousSAML + CENTREONNextOpenID + Proxmox

Last updated 2 hours ago

Was this helpful?

🐳 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 :


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>:9000/application/o/guacamole/authorize/

JWKS Endpoint

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

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

Issuer

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

http://<IP>:9000/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

b. Créer le fichier .env

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

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

OPENID_AUTHORIZATION_ENDPOINT="http://:9000/application/o/guacamole/authorize/" OPENID_JWKS_ENDPOINT="http://:9000/application/o/guacamole/jwks/" OPENID_ISSUER="http://:9000/application/o/guacamole/" OPENID_CLIENT_ID="<CLIENT_ID>" OPENID_CLIENT_SECRET="<CLIENT_SECRET>"

Pour l'accès à Guacamole, via IP:8080

OPENID_REDIRECT_URI="http://:8080/guacamole/" OPENID_USERNAME_CLAIM_TYPE=preferred_username

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


▶️ Lancer les conteneurs

docker-compose up -d

✅ 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

server {
    listen 80;
    server_name guacamole.ton-domaine.tld;

    location / {
        rewrite ^/$ /guacamole/ permanent;
        return 301 /guacamole;
    }

    location /guacamole/ {
        proxy_pass http://192.168.3.50:8080/guacamole/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_redirect off;
    }
}

✅ 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


⚠️ Important : Impacts sur Authentik

Quand Guacamole est derrière un reverse proxy avec HTTPS, Authentik doit faire confiance au certificat TLS présenté à l’URL de redirection (redirect_uri).

1. Authentik valide le domaine guacamole.ton-domaine.tld

  • Le certificat du reverse proxy (Let’s Encrypt ou autre) doit être valide et signé par une autorité de confiance.

  • Pas de certificat autosigné côté RP si Authentik est strict (par défaut, il vérifie les chaînes).

2. (Optionnel) Authentik derrière le reverse proxy

Tu peux aussi exposer Authentik derrière le même reverse proxy. Cela permet :

  • De forcer HTTPS côté Authentik

  • D’homogénéiser la configuration réseau

  • De simplifier l’ouverture des ports (souvent juste 80/443)

Exemple : config parallèle pour Authentik

server {
    listen 443 ssl;
    server_name authentik.ton-domaine.tld;

    location / {
        proxy_pass http://192.168.99.99:9000/; # IP d’Authentik
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # Certificats TLS
    ssl_certificate /etc/letsencrypt/live/authentik.ton-domaine.tld/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/authentik.ton-domaine.tld/privkey.pem;
}

🧠 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


👉

👉

Authentik Docker Installation
Lien GitHub docker-compose Guacamole
Lien Github Fichier .env