Introduction
Ce document décrit comment configurer l'authentification SAML pour plusieurs profils de connexion de VPN d'accès à distance en utilisant Azure comme IdP sur CSF via FDM.
Conditions préalables
Exigences
Cisco vous recommande de prendre connaissance des rubriques suivantes :
- Certificats SSL (Secure Socket Layer)
- OpenSSL
- Réseau privé virtuel d'accès à distance (RAVPN)
- Cisco Secure Firewall Device Manager (FDM)
- SAML (Security Assertion Markup Language)
- Microsoft Azure
Composants utilisés
Les informations contenues dans ce document sont basées sur les versions de logiciel suivantes :
- OpenSSL
- Cisco Secure Firewall (CSF) version 7.4.1
- Gestionnaire de périphériques Cisco Secure Firewall Version 7.4.1
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Informations générales
Le langage SAML (Security Assertion Markup Language) est une norme ouverte d'échange d'informations d'authentification et d'autorisation entre les parties, en particulier un fournisseur d'identité (IdP) et un fournisseur de services (SP). L'utilisation de l'authentification SAML pour les connexions VPN d'accès à distance (RAVPN) et diverses autres applications est devenue de plus en plus populaire en raison de ses nombreux avantages. Sur le Centre de gestion Firepower (FMC), plusieurs profils de connexion peuvent être configurés pour utiliser différentes applications protégées par un fournisseur d'identité en raison de l'option Remplacer le certificat du fournisseur d'identité disponible dans le menu de configuration Profil de connexion. Cette fonctionnalité permet aux administrateurs de remplacer le certificat du fournisseur d'identité principal dans l'objet de serveur SSO (Single Sign-On) par un certificat de fournisseur d'identité spécifique pour chaque profil de connexion. Cependant, cette fonctionnalité est limitée sur le Gestionnaire de périphériques Firepower (FDM), car elle ne fournit pas d'option similaire. Si un deuxième objet SAML est configuré, toute tentative de connexion au premier profil de connexion entraîne un échec d'authentification et affiche le message d'erreur suivant : "L'authentification a échoué en raison d'un problème de récupération du cookie d'authentification unique." Pour contourner cette limitation, un certificat auto-signé personnalisé peut être créé et importé dans Azure pour être utilisé dans toutes les applications. Ainsi, un seul certificat doit être installé dans le FDM, ce qui permet une authentification SAML transparente pour plusieurs applications.
Configurer
Étape 1 : Créez un certificat auto-signé et un fichier PKCS#12 à l'aide d'OpenSSL
Cette section décrit comment créer le certificat auto-signé à l'aide d'OpenSSL
- Connectez-vous à un terminal sur lequel la bibliothèque OpenSSL est installée.
Remarque : dans ce document, une machine Linux est utilisée, de sorte que certaines commandes sont spécifiques à un environnement Linux. Cependant, les commandes OpenSSL sont identiques.
b. Créez un fichier de configuration à l'aide de la commandetouch
.conf
.
root@host# touch config.conf
c. Modifiez le fichier avec un éditeur de texte. Dans cet exemple, Vim est utilisé et la vim
.conf
commande est exécutée. Vous pouvez utiliser tout autre éditeur de texte.
root@host# vim config.conf
d. Saisissez les informations à inclure dans l'auto-signature.
Veillez à remplacer les valeurs entre < > par les informations de votre organisation.
[req]
distinguished_name = req_distinguished_name
prompt = no
[req_distinguished_name]
C =
ST =
L =
O =
OU =
CN =
e. L'utilisation de cette commande génère une nouvelle clé privée RSA 2 048 bits et un certificat auto-signé à l'aide de l'algorithme SHA-256, valide pendant 3 650 jours, en fonction de la configuration spécifiée dans le
.conf
fichier. La clé privée est enregistrée dans
.pem
et le certificat auto-signé dans
.crt
.
root@host# openssl req -newkey rsa:2048 -nodes -keyout
.pem -x509 -sha256 -days 3650 -config
.conf -out
.crt
f. Après avoir créé la clé privée et le certificat auto-signé, il les exporte dans un fichier PKCS#12, qui est un format pouvant inclure à la fois la clé privée et le certificat.
root@host# openssl pkcs12 -export -inkey
.pem -in
.crt -name
-out
.pfx
Prenez note du mot de passe.
Étape 2 : Téléchargez le fichier PKCS#12 sur Azure et FDM
Assurez-vous de créer une application sur Azure pour chaque profil de connexion qui utilise l'authentification SAML sur FDM.
Une fois que vous avez le fichier PKCS#12 de l'étape 1 : Créer un certificat auto-signé et le fichier PKCS#12 à l'aide d'OpenSSL, il doit être téléchargé vers Azure pour plusieurs applications et configuré dans la configuration FDM SSO.
Étape 2.1. Télécharger le certificat sur Azure
a. Connectez-vous à votre portail Azure, accédez à l'application Entreprise que vous souhaitez protéger avec l'authentification SAML et sélectionnez Authentification unique.
b. Faites défiler jusqu'à la section Certificats SAML et sélectionnez Plus d'options > Modifier.
c. Sélectionnez maintenant l'option Importer le certificat.
d. Recherchez le fichier PKCS#12 précédemment créé et utilisez le mot de passe que vous avez entré lors de la création du fichier PKCS#12.
e. Enfin, sélectionnez l'option Make Certificate Active.
Remarque : assurez-vous d'effectuer l'étape 2.1 : Téléchargez le certificat vers Azure pour chaque application.
Étape 2.2. Télécharger le certificat sur le FDM
a. Accédez à Objects > Certificates > Click Add Trusted CA certificate
.
b. Entrez le nom du point de confiance que vous préférez et téléchargez uniquement le certificat d'identité à partir du fournisseur d'identité (et non le fichier PKCS#12), puis vérifiez la Skip CA Certificate Check
.
c. Définissez le nouveau certificat dans l'objet SAML.
d. Définissez l'objet SAML sur les différents profils de connexion qui utilisent SAML comme méthode d'authentification et pour lesquels l'application a été créée dans Azure. Déployer les modifications
Vérifier
Exécutez les commandes show running-config
webvpn etshow running-config tunnel-group
pour vérifier la configuration et vérifier que la même URL IDP est configurée sur les différents profils de connexion.
firepower#show running-confuting webvpn
webvpn
enable outside
http-headers
hsts-server
enable
max-age 31536000
include-sub-domains
no preload
hsts-client
enable
x-content-type-options
x-xss-protection
content-security-policy
anyconnect image disk0:/anyconnpkgs/anyconnect-win-4.10.08029-webdeploy-k9.pkg 2
anyconnect profiles defaultClientProfile disk0:/anyconncprofs/defaultClientProfile.xml
anyconnect enable
saml idp https://saml.lab.local/af42bac0
/
url sign-in https://login.saml.lab.local/af42bac0
/saml2
url sign-out https://login.saml.lab.local/af42bac0
/saml2
base-url https://Server.cisco.com
trustpoint idp
Azure_SSO
trustpoint sp FWCertificate
no signature
force re-authentication
tunnel-group-list enable
cache
disable
error-recovery disable
firepower#
firepower# show running-config tunnel-group
tunnel-group SAML_TG_Admin type remote-access
tunnel-group SAML_TG_Admin general-attributes
address-pool Admin_Pool
default-group-policy SAML_GP_Admin
tunnel-group SAML_TG_Admin webvpn-attributes
authentication saml
group-alias SAML_TG_Admin enable
saml identity-provider https://saml.lab.local/af42bac0
/
tunnel-group SAML_TG_IT type remote-access
tunnel-group SAML_TG_IT general-attributes
address-pool IT_Pool
default-group-policy SAML_GP_IT
tunnel-group SAML_TG_IT webvpn-attributes
authentication saml
group-alias SAML_TG_IT enable
saml identity-provider https://saml.lab.local/af42bac0
/
firepower#