Introduzione
In questo documento viene descritto come configurare l'autenticazione SAML per più profili di connessione della VPN ad accesso remoto usando Azure come IdP su CSF tramite FDM.
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza di base dei seguenti argomenti:
- Certificati SSL (Secure Sockets Layer)
- OpenSSL
- RAVPN (Virtual Private Network) di accesso remoto
- Cisco Secure Firewall Device Manager (FDM)
- SAML (Security Assertion Markup Language)
- Microsoft Azure
Componenti usati
Le informazioni fornite in questo documento si basano sulle seguenti versioni software:
- OpenSSL
- Cisco Secure Firewall (CSF) versione 7.4.1
- Cisco Secure Firewall Device Manager versione 7.4.1
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Premesse
SAML, o Security Assertion Markup Language, è uno standard aperto per lo scambio di informazioni di autenticazione e autorizzazione tra parti, in particolare un provider di identità (IdP) e un provider di servizi (SP). L'utilizzo dell'autenticazione SAML per le connessioni VPN (Remote Access VPN) e diverse altre applicazioni è diventato sempre più comune grazie ai numerosi vantaggi che offre. In Firepower Management Center (FMC) è possibile configurare più profili di connessione per l'utilizzo di diverse applicazioni protette da IdP grazie all'opzione Ignora certificato provider di identità disponibile nel menu di configurazione Profilo di connessione. Questa funzionalità consente agli amministratori di sostituire il certificato IdP primario nell'oggetto server Single Sign-On (SSO) con un certificato IdP specifico per ogni profilo di connessione. Tuttavia, questa funzionalità è limitata in Firepower Device Manager (FDM) in quanto non fornisce un'opzione simile. Se è stato configurato un secondo oggetto SAML, il tentativo di connessione al primo profilo di connessione genera un errore di autenticazione e visualizza il messaggio di errore "Autenticazione non riuscita a causa di un problema durante il recupero del cookie Single Sign-On". Per ovviare a questa limitazione, è possibile creare e importare in Azure un certificato autofirmato personalizzato da utilizzare in tutte le applicazioni. In questo modo, è necessario installare un solo certificato in FDM, consentendo l'autenticazione SAML senza problemi per più applicazioni.
Configurazione
Passaggio 1: Creare un certificato autofirmato e un file PKCS#12 utilizzando OpenSSL
In questa sezione viene descritto come creare il certificato autofirmato utilizzando OpenSSL
- Accedere a un endpoint in cui è installata la libreria OpenSSL.
Nota: in questo documento viene usato un computer Linux, quindi alcuni comandi sono specifici di un ambiente Linux. Tuttavia, i comandi OpenSSL sono gli stessi.
b. Creare un file di configurazione utilizzando iltouch
.conf
comando.
root@host# touch config.conf
c. Modificare il file con un editor di testo. Nell'esempio viene utilizzato Vim e viene eseguito il vim
.conf
comando. È possibile utilizzare qualsiasi altro editor di testo.
root@host# vim config.conf
d. Inserire le informazioni da includere nel documento autofirmato.
Assicurarsi di sostituire i valori tra < > con le informazioni dell'organizzazione.
[req]
distinguished_name = req_distinguished_name
prompt = no
[req_distinguished_name]
C =
ST =
L =
O =
OU =
CN =
e. L'uso di questo comando genera una nuova chiave privata RSA a 2048 bit e un certificato autofirmato utilizzando l'algoritmo SHA-256, valido per 3650 giorni, in base alla configurazione specificata nel
.conf
file. La chiave privata viene salvata in
.pem
e il certificato autofirmato viene salvato in
.crt
.
root@host# openssl req -newkey rsa:2048 -nodes -keyout
.pem -x509 -sha256 -days 3650 -config
.conf -out
.crt
f. Dopo aver creato la chiave privata e il certificato autofirmato, questi vengono esportati in un file PKCS#12, che può includere sia la chiave privata che il certificato.
root@host# openssl pkcs12 -export -inkey
.pem -in
.crt -name
-out
.pfx
Prendere nota della password.
Passaggio 2: caricare il file PKCS#12 in Azure e FDM
Assicurarsi di creare un'applicazione in Azure per ogni profilo di connessione che utilizza l'autenticazione SAML in FDM.
Dopo aver ottenuto il file PKCS#12 dal Passaggio 1: creazione di un certificato autofirmato e di un file PKCS#12 utilizzando OpenSSL, è necessario caricarlo in Azure per più applicazioni e configurarlo nella configurazione FDM SSO.
Passaggio 2.1. Carica il certificato in Azure
a. Accedere al portale di Azure, passare all'applicazione Enterprise che si desidera proteggere con l'autenticazione SAML e selezionare Single Sign-On.
b. Scorrere fino alla sezione Certificati SAML e selezionare Altre opzioni > Modifica.
c. Selezionare l'opzione Importa certificato.
d. Individuare il file PKCS#12 creato in precedenza e utilizzare la password immessa al momento della creazione del file PKCS#12.
e. Infine, selezionare l'opzione Rendi certificato attivo.
Nota: eseguire il passaggio 2.1: Caricare il certificato in Azure per ogni applicazione.
Passaggio 2.2. Carica il certificato in FDM
a. Passare a Objects > Certificates > Click Add Trusted CA certificate
.
b. Inserire il nome del trust point desiderato e caricare solo il certificato di identità dall'IdP (non il file PKCS#12), quindi controllare la Skip CA Certificate Check
tabella.
c. Impostare il nuovo certificato nell'oggetto SAML.
d. Impostare l'oggetto SAML nei diversi profili di connessione che utilizzano SAML come metodo di autenticazione e per i quali l'applicazione è stata creata in Azure. Distribuire le modifiche
Verifica
Eseguire i comandi show running-config
webvpn eshow running-config tunnel-group
per rivedere la configurazione e verificare che lo stesso URL IDP sia configurato sui diversi profili di connessione.
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#