# Procédure de résolution VPN SAML

# Procédure de résolution VPN SAML

## <span style="font-size:18pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">1. Procédure Technique de Résolution (Post-Mortem)</span>

<span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Voici la séquence exacte qui a permis de résoudre l'incident et de rétablir les connexions utilisateurs.</span>

### <span style="font-size:14pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Étape 1 : Préparation et Import du Certificat</span>

<span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">L'utilisation d'un certificat au format </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">PFX (PKCS#12)</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"> est requise car il embarque de manière sécurisée la clé privée, la clé publique (certificat) ainsi que la chaîne d'autorité (CA).</span>

1. <span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Depuis l'interface web du FortiGate, naviguez dans </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">System</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"> &gt; </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Certificates</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">.</span>
2. <span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Cliquez sur </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Create/Import</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"> &gt; </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Certificate</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"> et choisissez </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Import Certificate</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">.</span>
3. <span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Sélectionnez le type </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">PKCS12 Certificate</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">, <span class="ng" style="background:none;">téléversez</span> le fichier .pfx et saisissez le mot de passe associé.</span>

### <span style="font-size:14pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Étape 2 : Assignation du Certificat dans la configuration SAML (via l'interface graphique)</span>

<span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Une fois le certificat importé, il doit être associé à la configuration du Service Provider (SP) SAML.</span>

1. <span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Dans l'interface d'administration du FortiGate, naviguez vers </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">User &amp; <span class="ng" style="background:none;">Authentication</span></span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"> &gt; </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Single Sign-On</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"> (si le menu n'est pas visible, assurez-vous que la fonctionnalité est activée dans </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">System</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"> &gt; </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Feature Visibility</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">).</span>
2. <span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Modifiez le profil SAML existant correspondant à votre tunnel (ex : </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">sp-tunnel</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">).</span>
3. <span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Localisez la section "Service Provider Configuration" (et non la section de configuration de l'IdP / Identity Provider).</span>
4. <span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Repérez-y le champ </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Certificate</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"> (ou </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Certificat de l'entité</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">) et sélectionnez votre certificat fraîchement importé (\[votre\_certificat\]) dans la liste déroulante.</span>
5. <span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Cliquez sur </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">OK</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"> ou </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Apply</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"> pour enregistrer et appliquer les modifications.</span>

### <span style="font-size:14pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Étape 3 : Extraction du XML de Métadonnées complet</span>

<span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Pour récupérer le fichier XML brut nécessaire à LemonLDAP::NG sans dépendre d'un accès par navigateur web externe (souvent bloqué par des politiques de flux), la commande de diagnostic dédiée suivante a été exécutée sur le FortiGate :</span>

<span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">diag vpn ssl saml-metadata sp-tunnel</span><span style="font-weight:400;font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">  
</span>

<span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Cette commande génère et affiche l'intégralité du schéma XML directement dans la console CLI, incluant les balises de signature et la clé publique du certificat de chiffrement/signature.</span>

### <span style="font-size:14pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Étape 4 : Alignement côté IdP (LemonLDAP::NG)</span>

<span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Le flux XML récupéré à l'étape précédente a été copié puis importé dans l'interface d'administration de LemonLDAP::NG en naviguant dans </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Fournisseurs de services SAML</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"> &gt; </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">\[<span class="ng" style="background:none;">votre\_profil\_SP</span>\]</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;"> (ex : sp-fortinet) &gt; </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Métadonnées</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">, rétablissant ainsi immédiatement la confiance mutuelle (</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Trust relationship</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">) et le fonctionnement du VPN SSL.</span>

## <span style="font-size:18pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">2. Recommandation Majeure : Politique de Rotation des Certificats</span>

<span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">💡 </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Objectif : Ne pas perdre l'habitude et maintenir la maîtrise technique de la plateforme.</span>

<span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">L'un des principaux pièges des liaisons SAML/SSO est la longue durée de vie des certificats (souvent 3, 5 voire 10 ans pour les certificats d'IdP). Lorsqu'ils expirent, les équipes techniques ont souvent perdu l'historique et la procédure de renouvellement, transformant une tâche simple en coupure de production stressante.</span>

### <span style="font-size:14pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;">Préconisations :</span>

1. <span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-variant:normal;vertical-align:baseline;white-space:pre-wrap;">Fréquence de rotation recommandée :</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-variant:normal;vertical-align:baseline;white-space:pre-wrap;"> Mettre en œuvre un renouvellement systématique du certificat SAML </span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-variant:normal;vertical-align:baseline;white-space:pre-wrap;">tous les 1 à 2 ans</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-variant:normal;vertical-align:baseline;white-space:pre-wrap;">.</span>
2. <span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-variant:normal;vertical-align:baseline;white-space:pre-wrap;">Entraînement des équipes :</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-variant:normal;vertical-align:baseline;white-space:pre-wrap;"> Cette récurrence courte permet <span class="ng" style="background:none;">d'ancre</span> le geste technique (génération du CSR, export PFX, modification FortiGate, extraction du XML via diag, import IdP) dans les tâches courantes d'exploitation.</span>
3. <span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-variant:normal;vertical-align:baseline;white-space:pre-wrap;">Mise en place d'alertes d'expiration :</span>

- <span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-variant:normal;vertical-align:baseline;white-space:pre-wrap;">Configurez des alertes de supervision (via SNMP ou API) sur le FortiGate pour notifier l'équipe 30 jours avant l'expiration du certificat.</span>
- <span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-variant:normal;vertical-align:baseline;white-space:pre-wrap;">Utilisez les fonctions d'alerting natives de LemonLDAP::NG concernant la validité des certificats des SP enregistrés.</span>

4. <span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-weight:bold;font-variant:normal;vertical-align:baseline;white-space:pre-wrap;">Maintien de la documentation :</span><span style="font-size:11pt;font-family:'google sans', sans-serif;color:rgb(31,31,31);background-color:transparent;font-variant:normal;vertical-align:baseline;white-space:pre-wrap;"> Tenez à jour cette procédure dans le wiki technique de l'équipe réseau/sécurité.</span>