Inleiding
In dit document wordt beschreven hoe u SAML-verificatie configureert voor meervoudige verbindingsprofielen van Remote Access VPN met Azure als IdP op CSF via FDM.
Voorwaarden
Vereisten
Cisco raadt u aan om basiskennis te hebben van deze onderwerpen:
- SSL-certificaten (Secure Socket Layer)
- OpenSSL
- Virtual Private Network (RAVPN) voor externe toegang
- 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 authenticatie- en autorisatiegegevens tussen partijen, met name een Identity Provider (IdP) en een Service Provider (SP). Het gebruik van SAML-verificatie voor Remote Access VPN (RAVPN)-verbindingen en verschillende andere toepassingen is steeds populairder geworden vanwege de vele voordelen. In het Firepower Management Center (FMC) kunnen meerdere verbindingsprofielen worden geconfigureerd om verschillende IdP-beveiligde toepassingen te gebruiken, omdat de optie Identity Provider Certificate overschrijven beschikbaar is in het configuratiemenu van het verbindingsprofiel. Met deze functie kunnen beheerders het primaire IdP-certificaat in het serverobject Single Sign-On (SSO) overschrijven met een specifiek IdP-certificaat voor elk verbindingsprofiel. Deze functionaliteit is echter beperkt op de Firepower Device Manager (FDM) omdat deze geen vergelijkbare optie biedt. Als een tweede SAML-object is geconfigureerd, resulteert een poging om verbinding te maken met het eerste verbindingsprofiel in een verificatiefout, waarbij de foutmelding wordt weergegeven: "Verificatie is mislukt vanwege een probleem met het ophalen van de cookie voor eenmalige aanmelding." Om deze beperking te omzeilen, kan een aangepast zelfondertekend certificaat worden gemaakt en geïmporteerd in Azure voor gebruik in alle toepassingen. Hierdoor hoeft slechts één certificaat in de FDM te worden geïnstalleerd, waardoor naadloze SAML-verificatie voor meerdere toepassingen mogelijk is.
Configureren
Stap 1: Maak een zelf ondertekend certificaat en PKCS # 12 bestand met behulp van OpenSSL
In dit gedeelte wordt beschreven hoe u het zelfondertekende certificaat kunt maken 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 OpenSSL-commando's 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 moet worden opgenomen in het zelfondertekende document.
Zorg ervoor dat u de waarden tussen < > vervangt door de informatie van uw organisatie.
[req]
distinguished_name = req_distinguished_name
prompt = no
[req_distinguished_name]
C =
ST =
L =
O =
OU =
CN =
e. Met deze opdracht worden een nieuwe 2048-bits RSA-privésleutel en een zelf ondertekend certificaat gegenereerd met behulp van het SHA-256-algoritme, dat 3650 dagen geldig is, op basis van de configuratie die in het .conf
bestand is opgegeven. De privésleutel wordt opgeslagen in .pem
en het certificaat met zelfondertekening 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 aanmaken van de private key en het Self-Signed certificaat, exporteert het deze naar een PKCS#12 bestand, wat een formaat is dat zowel de private key als het certificaat kan bevatten.
root@host# openssl pkcs12 -export -inkey .pem -in .crt -name -out .pfx

Let op het wachtwoord.
Stap 2: Upload het PKCS#12-bestand op Azure en FDM
Zorg ervoor dat u een toepassing op Azure maakt voor elk verbindingsprofiel dat SAML-verificatie op de FDM gebruikt.

Zodra u het PKCS#12-bestand van Stap 1: 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. Upload het certificaat naar Azure
a. Meld u aan bij uw Azure-portal, navigeer naar de Enterprise-toepassing die u wilt beveiligen met SAML-verificatie en selecteer Eenmalige aanmelding.
b. Blader omlaag naar de sectie SAML-certificaten en selecteer 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 ten slotte de optie Certificaat actief maken.

Opmerking: Zorg ervoor dat stap 2.1 wordt uitgevoerd: 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 trustpointnaam in die u verkiest en upload alleen het identiteitscertificaat van de IdP (niet het PKCS#12-bestand) en controleer het Skip CA Certificate Check
wachtwoord.

c. Stel het nieuwe certificaat in het SAML-object in.

d. Stel het SAML-object in op de verschillende verbindingsprofielen waarvoor SAML als verificatiemethode wordt gebruikt en waarvoor de toepassing in Azure is gemaakt. Implementeer de veranderingen.


Verifiëren
Voer de webvpn- en webvpn-opdrachten uitshow running-config
om de configuratie te bekijken en te controleren of dezelfde IDP-URL is geconfigureerd voor de verschillende verbindingsprofielenshow running-config tunnel-group
.
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#