Inleiding
In dit document wordt beschreven hoe u SAML-verificatie kunt configureren voor Meerdere verbindingsprofielen van externe toegang VPN met Azure als IdP op CSF via FDM.
Voorwaarden
Vereisten
Cisco raadt u aan een basiskennis te hebben van deze onderwerpen:
- Secure Socket Layer (SSL)-certificaten
- OpenSSL
- Remote Access Virtual Private Network (RAVPN)
- Cisco Secure Firewall Device Manager (FDM)
- Security Assertion Markup Language (SAML)
- Microsoft Azure
Gebruikte componenten
De informatie in dit document is gebaseerd op de volgende softwareversies:
- OpenSSL
- Cisco Secure Firewall (CSF) versie 7.4.1
- Cisco Secure Firewall Device Manager versie 7.4.1
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Achtergrondinformatie
SAML, of Security Assertion Markup Language, is een open standaard voor het uitwisselen van verificatie- en autorisatiegegevens tussen partijen, met name een Identity Provider (IDP) en een Service Provider (SP). Het gebruik van SAML-verificatie voor RAVPN-verbindingen (Remote Access VPN) en diverse andere toepassingen is steeds populairder geworden vanwege de vele voordelen. In het Firepower Management Center (FMC) kunnen meerdere verbindingsprofielen worden geconfigureerd voor het gebruik van verschillende met IDP beschermde toepassingen, dankzij de optie Override Identity Provider Certificate die beschikbaar is in het configuratiemenu van het verbindingsprofiel. Met deze functie kunnen beheerders het primaire IDP-certificaat in het SSO-serverobject (Single Sign-On) overschrijven met een specifiek IDP-certificaat voor elk verbindingsprofiel. Deze functionaliteit is echter beperkt voor Firepower Device Manager (FDM) omdat deze geen vergelijkbare optie biedt. Als er een tweede SAML-object is geconfigureerd, resulteert een poging om verbinding te maken met het eerste verbindingsprofiel in een verificatiefout door de foutmelding weer te geven: "Verificatie mislukt vanwege een probleem bij het ophalen van de enkele aanmelding-cookie." Om deze beperking te omzeilen, kan een aangepast zelfondertekend certificaat worden gemaakt en geïmporteerd in Azure voor gebruik in alle toepassingen. Hierbij hoeft slechts één certificaat in de FDM te worden geïnstalleerd, waardoor een naadloze SAML-verificatie voor meerdere toepassingen mogelijk is.
Configureren
Stap 1: Maak een zelfondertekend certificaat en PKCS#12 File met OpenSSL
In deze sectie wordt beschreven hoe u het zelfondertekende certificaat maakt met OpenSSL
- Meld u aan bij een eindpunt waarop de OpenSSL-bibliotheek is geïnstalleerd.
Opmerking: in dit document wordt een Linux-machine gebruikt, dus sommige opdrachten zijn specifiek voor een Linux-omgeving. De opdrachten voor OpenSSL zijn echter hetzelfde.
b. Maak een configuratiebestand met de opdrachttouch
.conf
.
root@host# touch config.conf
c. Bewerk het bestand met een teksteditor. In dit voorbeeld wordt Vim gebruikt en wordt de vim
.conf
opdracht uitgevoerd. U kunt elke andere teksteditor gebruiken.
root@host# vim config.conf
d. Voer de informatie in die in het zelfondertekende document moet worden opgenomen.
Verzeker u ervan dat u de waarden tussen < > en de informatie van uw organisatie vervangt.
[req]
distinguished_name = req_distinguished_name
prompt = no
[req_distinguished_name]
C =
ST =
L =
O =
OU =
CN =
e. Met deze opdracht wordt een nieuwe 2048-bits RSA-privésleutel en een zelfondertekend certificaat gegenereerd met behulp van het SHA-256-algoritme, geldig voor 3650 dagen, op basis van de configuratie die in het
.conf
bestand is gespecificeerd. De persoonlijke sleutel wordt opgeslagen in
.pem
en het zelfondertekende certificaat wordt opgeslagen in
.crt
.
root@host# openssl req -newkey rsa:2048 -nodes -keyout
.pem -x509 -sha256 -days 3650 -config
.conf -out
.crt
f. Na het maken van de privé-sleutel en het zelfondertekende certificaat, exporteert het deze naar een PKCS#12-bestand, dat een formaat is dat zowel de privé-sleutel als het certificaat kan bevatten.
root@host# openssl pkcs12 -export -inkey
.pem -in
.crt -name
-out
.pfx
Noteer het wachtwoord.
Stap 2: Upload het PKCS#12-bestand op Azure en FDM
Zorg ervoor dat u op Azure een toepassing maakt voor elk verbindingsprofiel dat SAML-verificatie gebruikt op de FDM.
Zodra u het PKCS#12-bestand uit Stap 1 hebt: Maak een zelfondertekend certificaat en PKCS#12-bestand met OpenSSL, moet het worden geüpload naar Azure voor meerdere toepassingen en geconfigureerd in de FDM SSO-configuratie.
Stap 2.1. Certificaat uploaden naar Azure
a. Log in op uw Azure-portal, navigeer naar de Enterprise-applicatie die u wilt beveiligen met SAML-verificatie en selecteer Single Sign-On.
b. Blader naar beneden naar het gedeelte SAML-certificaten en selecteer de optie Meer opties > Bewerken.
c. Selecteer nu de optie Certificaat importeren.
d. Zoek het PKCS#12-bestand dat eerder is gemaakt en gebruik het wachtwoord dat u hebt ingevoerd toen u het PKCS#12-bestand hebt gemaakt.
e. Selecteer tot slot de optie Certificaat actief maken.
Opmerking: Zorg ervoor dat u Stap 2.1 uitvoert: Upload het certificaat naar Azure voor elke toepassing.
Stap 2.2. Upload het certificaat naar de FDM
a. Navigeer naar Objects > Certificates > Click Add Trusted CA certificate
.
b. Voer de naam in van het vertrouwingspunt dat u wenst en upload alleen het identiteitsbewijs van de IDP (niet het PKCS#12-bestand) en controleer de Skip CA Certificate Check
gegevens.
c. Stel het nieuwe certificaat in het SAML-object in.
d. Stel het SAML-object in op de verschillende verbindingsprofielen die SAML gebruiken als de verificatiemethode en waarvoor de toepassing is gemaakt in Azure. De wijzigingen implementeren
Verifiëren
Voer de opdrachten show running-config
webvpn enshow running-config tunnel-group
uit om de configuratie te bekijken en te controleren of dezelfde URL voor IDP is geconfigureerd op de verschillende verbindingsprofielen.
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#