====== SAML Single Sign-On avec Pandora FMS ====== {{indexmenu_n>12}} **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 [[#ks1|serveur SAML]] opérationnel. 2. [[#ks2|Configurer les paramètres dans Pandora FMS]]. 3. Si vous envisagez d'utiliser [[#ks3|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 : https://github.com/simplesamlphp/simplesamlphp/releases/tag/v2.3.2 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) : 'baseurlpath' => 'https://pandora.local/simplesamlphp/', 'auth.adminpassword' => '123pandora', \\ * 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. * 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/hosts'' du 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''. {{ wiki:pfms-saml-image_28.png }} 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) : {{ wiki:pfms-saml-image_30.png }} ===== Configuration de Pandora FMS avec SAML ===== Menu **Management → Setup → Setup → Authentication**. Les valeurs suivantes sont communes : {{ :wiki:pfms-saml-image_70.png }} 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 [[:fr:documentation:pandorafms:technical_annexes:45_simplesaml_2_local|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** : {{ wiki:pfms-saml-image_40.png }} Accédez ensuite à **Applications d'entreprise** : {{ wiki:pfms-saml-image_42.png }} Créez une nouvelle application (ou utilisez-en une existante) : {{ wiki:pfms-saml-image_44.png }} Allez dans l'option de Single Sign-On : {{ wiki:pfms-saml-image_46.png }} Modifiez la configuration SAML de base : {{ wiki:pfms-saml-image_48.png }} 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 : {{ wiki:pfms-saml-image_50.png }} Téléchargez le fichier XML contenant les métadonnées de fédération qui sera utilisé plus tard : {{ wiki:pfms-saml-image_52.png }} Enfin, enregistrez l'ID du pas précédent et l'URL de l'identifiant supplémentaire : {{ wiki:pfms-saml-image_54.png }} ==== Configuration dans SimpleSAMLphp ==== Modifiez le fichier ''/opt/simplesamlphp/config/authsources.php'' avec les valeurs suivantes : {{ wiki:pfms-saml-image_56.png }} 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 : {{ wiki:pfms-saml-image_58.png }} 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 : {{ wiki:pfms-saml-image_60.png }} Vous obtiendrez le résultat suivant : {{ wiki:pfms-saml-image_62.png }} L'email et l'identifiant de l'utilisateur peuvent être extraits des attributs renvoyés par Azure® lors du test effectué précédemment : {{ :wiki:pfms-saml-image_80.png }} {{ :wiki:pfms-saml-image_90.png }} 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 : {{ :wiki:pfms-saml-image_100.png }} [[:fr:documentation:start|Retour à l'index de la documentation Pandora FMS]]