SAML Single Sign-On avec Pandora FMS
SAML est une norme ouverte d'authentification et d'autorisation basée sur XML. Pandora FMS peut fonctionner comme un fournisseur de services avec son fournisseur d'identité SAML interne.
Les administrateurs s'authentifient toujours contre la base de données locale.
Plusieurs étapes doivent être complétées avant de pouvoir utiliser SAML dans Pandora FMS.
1. Avoir un serveur SAML opérationnel. 2. Configurer les paramètres dans Pandora FMS. 3. Si vous envisagez d'utiliser Azure avec SAML, vous devez configurer ce serveur.
Installation de SimpleSAMLphp 2.0
Téléchargez la version 2.3.2 de SimpleSAMLphp depuis son dépôt officiel :
Puis, téléchargez-la sur le serveur Pandora FMS. Si le serveur PFMS a accès à Internet et que wget est installé, vous pouvez utiliser la commande suivante dans un répertoire avec suffisamment d'espace et de droits d'écriture :
wget https://github.com/simplesamlphp/simplesamlphp/releases/download/v2.3.2/simplesamlphp-2.3.2-full.tar.gz
Décompressez le fichier téléchargé avec :
tar -xvf simplesamlphp-2.3.2-full.tar.gz
Déplacez le dossier à son emplacement final :
mv simplesamlphp-2.3.2 /opt/simplesamlphp
Pour partager l'accès avec Pandora FMS, créez le lien symbolique suivant :
ln -s /opt/simplesamlphp/public /var/www/html/simplesamlphp
SimpleSAMLphp se base sur le fichier config.php pour sa configuration. Avec l'emplacement final défini ci-dessus, renommez le modèle par défaut :
mv /opt/simplesamlphp/config/config.php.dist /opt/simplesamlphp/config/config.php
Ainsi, vous aurez le chemin complet du fichier de configuration comme suit :
/opt/simplesamlphp/config/config.php
Utilisez votre éditeur de texte préféré pour modifier les valeurs suivantes (notez que vous devez remplacer pandora.local par l'URL de la console web PFMS et conserver la virgule à la fin de la ligne, car elle fait partie des blocs d'instructions) :
- /opt/simplesamlphp/config/config.php
'baseurlpath' => 'https://pandora.local/simplesamlphp/', 'auth.adminpassword' => '123pandora',
- Notez que vous devez remplacer
pandora.localpar l'URL de la console web PFMS et conserver la virgule à la fin de la ligne car elle fait partie des blocs d'instructions. - Il faut toujours utiliser une URL au lieu d'une adresse IP. Dans le cas où vous utilisez
pandora.local, cette “URL” doit être ajoutée au fichier/etc/hostsdu système d'exploitation (note : à des fins pédagogiques uniquement).
Enregistrez les modifications du fichier et quittez la ligne de commande.
Si des erreurs de permission liées au cache apparaissent, appliquez la commande suivante :
mkdir /var/cache/simplesamlphp && chown apache:apache /var/cache/simplesamlphp
Cela mettra SimpleSAMLphp en fonctionnement et il devrait afficher la page d'accueil à l'URL https://pandora.local/simplesamlphp/ (remplacez pandora.local par l'URL de la console web PFMS).
Si vous vous connectez via HTTP au lieu de HTTPS, l'authentification échouera jusqu'à ce que le serveur web Apache soit configuré pour écouter sur le port sécurisé 443.
Pour accéder à l'administration de SimpleSAMLphp, commencez par renommer le fichier authsources.php.dist :
mv /opt/simplesamlphp/config/authsources.php.dist /opt/simplesamlphp/config/authsources.php
Copiez le contenu du XML téléchargé précédemment, collez-le et traitez-le ; cela générera un texte de configuration pour PHP qu'il faudra copier et ajouter dans le fichier /opt/simplesamlphp/metadata/saml20-idp-remote.php. Ensuite, enregistrez ces ajouts et quittez l'édition du fichier.
Accédez à l'interface d'administration via l'URL https://pandora.local/simplesamlphp/admin/ (remplacez pandora.local par l'URL de la console web PFMS) :
Configuration de Pandora FMS avec SAML
Menu Management → Setup → Setup → Authentication.
Les valeurs suivantes sont communes :
Quelques champs notables :
- Attribut de nom de groupe SAML : Champ SAML où rechercher le nom du groupe (tant que la création automatique des utilisateurs distants est activée).
- Chemin SimpleSAML : Répertoire où se trouve le dossier
simplesamlphp. - Source SAML : Nom de
authsource, par exemple :example-userpass. - Attribut d'email SAML : Champ SAML où rechercher l'email de l'utilisateur (tant que la création automatique des utilisateurs distants est activée).
Avant de configurer tout service tiers avec SAML, il est recommandé de tester et vérifier localement l'installation de SimpleSAMLphp.
Configuration de Azure avec SAML
Dans les services Azure®, allez dans la section ID supplémentaire :
Accédez ensuite à Applications d'entreprise :
Créez une nouvelle application (ou utilisez-en une existante) :
Allez dans l'option de Single Sign-On :
Modifiez la configuration SAML de base :
Remplissez les champs suivants avec l'ID de l'application, l'adresse du SimpleSAMLphp installé (remplacez pandora.local par l'URL de la console web PFMS), et l'adresse à laquelle Azure® doit rediriger lorsque la session est fermée :
Téléchargez le fichier XML contenant les métadonnées de fédération qui sera utilisé plus tard :
Enfin, enregistrez l'ID du pas précédent et l'URL de l'identifiant supplémentaire :
Configuration dans SimpleSAMLphp
Modifiez le fichier /opt/simplesamlphp/config/authsources.php avec les valeurs suivantes :
Puis, allez sur le site web de SimpleSAMLphp, dans le menu Fédération, puis dans la section Outils pour la conversion XML en PHP :
Renommez saml20-idp-remote.php.dist en :
mv /opt/simplesamlphp/metadata/saml20-idp-remote.php.dist /opt/simplesamlphp/metadata/saml20-idp-remote.php
Copiez le contenu du XML téléchargé précédemment, collez-le et traitez-le ; cela générera un texte de configuration pour PHP qu'il faudra copier et coller dans le fichier /opt/simplesamlphp/config/authsources.php en remplaçant tout son contenu.
Si tout est correct, procédez au test :
Vous obtiendrez le résultat suivant :
L'email et l'identifiant de l'utilisateur peuvent être extraits des attributs renvoyés par Azure® lors du test effectué précédemment :
Pour une configuration avancée, vous pouvez approfondir le mappage des propriétés ou sélectionner une par défaut en cas d'absence de correspondance :

















