[FortiGate] Configurer une authentification SSO SAML Azure Entra ID pour le VPN SSL
Dans cet article, j'explique comment configurer un SSL VPN FortiGate avec une authentification SAML SSO Entra ID.
Jusqu'à présent, les besoins rencontrés ne nécessitait pas d'avoir cette fonctionnalité. Seulement quelques utilisateurs qui disposaient de comptes locaux.
Lorsqu'il fallait fournir un accès VPN à une centaine d'utilisateurs, la question ne se posait plus. Il me fallait absolument coupler le VPN à Azure Entra ID pour faire du SSO SAML.
Partons du principe que le portail est déjà configuré et fournit déjà une authentification locale.
Créer une application d'entreprise sur Entra ID
Dans un premier temps, créer une application d'entreprise sur Entra ID à partir de la galerie :
1- Configurer les URL en accordance avec le modèle ci-dessous :
- https://*.FORTIGATE-FQDN.com/remote/saml/metadata
- https://<FORTIGATE-FQDN>/remote/saml/login
Ces mêmes URLs devront être répliquées dans la configuration SSO sur le fortigate
2 - Dans la partie Attributes & Claims, indiquer les attributs à partager dans les données SAML et surtout le username et le groupe.
3 - Télécharger le certificat au format Raw
4 - Copiez les URL Microsoft qui seront ajoutées dans la configuration SSO du Forti.
5 - Ne pas oubliez d'ajouter dans le menu "Users and groups", les utilisateurs ou groupes qui seront autorisés à utiliser le VPN.
Configurer un profil Single Sign-On
1 - Dans le menu User & Authentication
2 - Sélectionner Single Sign-On
3 - Dans la partie Service Provider Configuration, saisir les mêmes URLs que celles indiquées dans la partie Basic SAML Configuration sur l'application d'entreprise Entra ID.
N.B : Si les URL n'acceptent pas le HTTPS, il faudra faire la configuration via la CLI
4 - Configurer les URLs de Microsoft fournis dans l'application d'entreprise en partie 4 :
- L'entity ID est le Microsoft Entra Identifier
- L'Assertion consumer service URL et le Single logout service URL sont identiques et correspondent au Login URL
5 - Sélectionner le certificat téléchargé précédemment et importé via le menu System > Certificates. Vous ne pourrez pas l'ajouter dans la configuration SSO.
6 - Enfin indiquer dans chaque champ le nom de l'attribut qui est partagé dans les claims de l'application pour identifier les utilisateurs et les groupes.
Configuration des groupes
Après avoir créer la configuration Single Sign-On, se rendre dans les "User Groups".
1 - Ajouter un nouveau groupe de Type Firewall
2 - Dans la partie "Remote Groups" ajouter le serveur SSO SAML configuré précédemment
Dans la partie "Groups" sélectionner l'ID du groupe Entra ID qui a été ajouté dans l'application.
L'ID d'un groupe est présent dans le champ Object ID sur Entra ID.
Lorsque le ou les groupes ont été crées, il existe désormais une association groupe FortiGate / groupe Entra ID utilisable dans la configuration VPN.
Affectation du groupe au portail VPN
Dans le Menu VPN > SSL-VPN Settings :
- Dans la section Authentication/Portal Mapping, affecter le ou les groupes crées au portail souhaité.
Que faire si un utilisateur se trouve dans deux groupes et que j'affecte un portail par groupe ? Quel portail va t'il avoir ?
Je me suis posé cette question car le cas était bien présent. Un utilisateur existe dans deux groupes Entra ID. Sauf que j'affecte à chaque groupe un portail différent.
Il y a probablement une priorité dans l'affectation du portail, que je n'ai pas testé ni documenté. En revanche pour palier à cette ambiguïté, la solution que j'ai trouvé est d'utiliser les "realms".
Concrètement, cela permet de définir un environnement différent au besoin. En sachant que l'URL de connexion au VPN contiendra cette information du realm.
En définissant un realm spécifique par groupe, je suis donc capable de différencier les différents portails avec des URL différentes. Exemple :
- https://vpn-ssl.fortinet.com/realmgroup1
- https://vpn-ssl.fortinet.com/realmgroup2
Au niveau du mapping "Authentication/Portail" je choisis un realm specifique
Pour activer cette option de REALM qui n'est pas présente par défaut, il faut aller dans System > Feature Visibility et cocher SSL-VPN Realms.
Après l'activation de la fonctionnalité, un sous menu s'ajoutera SSL-VPN Realms