Configuration d'une authentification SAML pour Guacamole

Installation de l'extension SAML pour guacamole

Téléchargez guacamole-auth-sso-1.6.0.tar.gz, décompressez l'archive et déplacer guacamole-auth-sso-saml-1.6.0.jar dans le dossier extensions : <code> wget https://dlcdn.apache.org/guacamole/1.6.0/binary/guacamole-auth-sso-1.6.0.tar.gz tar -xzf guacamole-auth-sso-1.6.0.tar.gz sudo mv guacamole-auth-sso-1.6.0/saml/guacamole-auth-sso-saml-1.6.0.jar /etc/guacamole/extensions/ </code>

Créer une application dans Entra ID

Accéder au portail Azure → Microsoft Entra ID → Applications d’entreprise.

Nouvelle application → Créer votre propre application.

Choisir Configurer le proxy d’application pour un accès à distance sécurisé à une application locale

Choisir Intégration locale (non-galerie) si le service n’est pas dans la galerie. Donner un nom (ex. MonServiceWeb).

✅ 3. Configurer l’authentification SAML

Dans l’application créée → Authentification unique → SAML. Renseigner :

Identificateur (Entity ID) : fourni par le service. URL de réponse (ACS) : fourni par le service. URL de connexion (facultatif) : page de login du service.

Télécharger le fichier de métadonnées XML d’Entra ID (il contient le certificat et les endpoints).

✅ 4. Configurer le service web avec les infos Entra ID

Fournir au service :

Entity ID d’Entra ID (souvent https://sts.windows.net/{tenant-id}/). SSO URL : https://login.microsoftonline.com/{tenant-id}/saml2. Certificat public (X.509) pour vérifier les signatures.

Importer le metadata XML d’Entra ID si le service le supporte.

✅ 5. Attribuer des utilisateurs

Dans Entra ID → Utilisateurs et groupes → attribuer les comptes qui peuvent se connecter.

✅ 6. Tester la connexion

Utiliser le bouton Tester l’authentification unique dans Azure. Vérifier les logs SAML (ACS du service) pour les assertions.

✅ Points clés

Format des claims : Par défaut, Entra ID envoie NameID (UPN). Vous pouvez personnaliser les attributs dans Attributs et revendications. Certificat : Surveillez la rotation automatique (Azure change le certificat tous les 3 ans). Sécurité : Activez la signature des assertions et la validation des audiences.

Modification du fichier guacamole.properties pour configurer SAML.

sudo nano /etc/guacamole/guacamole.properties

Ajoutez dans ce fichier les lignes suivantes :

# MySQL
mysql-hostname: 127.0.0.1
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: P@$$w0rd2025Secure

Déclarez le serveur Guacamole (ici, on déclare une connexion locale sur le port par défaut, à savoir 4822).

sudo nano /etc/guacamole/guacd.conf

Voici le code à intégrer :

[server]
bind_host = 0.0.0.0
bind_port = 4822

Redémarrez les trois services liés à Apache Guacamole :

sudo systemctl restart tomcat9 guacd mariadb