Inleiding
Dit document beschrijft Security Assertion Markup Language (SAML)-verificatie op FTD die wordt beheerd via FMC.
Voorwaarden
Vereisten
Cisco raadt kennis van deze onderwerpen aan:
- AnyConnect-configuratie op Firepower Management Center (FMC)
- SAML- en metatada.xml-waarden
Gebruikte componenten
De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:
- Firepower Threat Defence (FTD) versie 6.7.0
- FMC versie 6.7.0
- ADFS van AD Server met SAML 2.0
Opmerking: Gebruik indien mogelijk een NTP-server om de tijd tussen de FTD en de IDp te synchroniseren. Controleer anders of de tijd handmatig tussen de twee wordt gesynchroniseerd.
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
Met de configuratie kunnen AnyConnect-gebruikers een VPN-sessieverificatie instellen bij een SAML Identity Service Provider.
Momenteel gelden voor SAML onder meer de volgende beperkingen:
- SAML on FTD wordt ondersteund voor verificatie (versie 6.7 en hoger) en autorisatie (versie 7.0 en hoger).
- De verificatiekenmerken van SAML die beschikbaar zijn in de DAP-evaluatie (vergelijkbaar met de RADIUS-kenmerken die worden verzonden in de autorisatiereactie van de RADIUS van de AAA-server) worden niet ondersteund.
- ASA ondersteunt SAML-enabled tunnelgroep op DAP-beleid. U kunt het kenmerk gebruikersnaam echter niet controleren met SAML-verificatie, omdat het kenmerk gebruikersnaam wordt gemaskeerd door de SAML Identity provider.
-
Omdat AnyConnect met de ingesloten browser een nieuwe browsersessie gebruikt bij elke VPN-poging, moeten gebruikers opnieuw verifiëren telkens als de IDP HTTP-sessiecookies gebruikt om de inlogstatus te volgen.
-
In dit geval Force Re-Authentication
instelling Configuration > Remote Access VPN > Clientless SSL VPN Access > Advanced > Single Sign On Servers
heeft geen effect op de door AnyConnect geïnitieerde SAML-verificatie.
Meer beperkingen voor SAML worden beschreven in de link die hier wordt geleverd.
Richtlijnen en beperkingen voor SAML 2.0
Deze beperkingen zijn van toepassing op ASA en FTD: Guidelines and Limitations for SAML 2.0.
Opmerking: Alle SAML-configuraties die op de FTD worden geïmplementeerd, zijn te vinden in het bestand metadata.xml dat door uw IdP wordt geleverd.
Configuratie
In dit deel wordt beschreven hoe u AnyConnect met SAML-verificatie op FTD kunt configureren
De SAML IDp-parameters ophalen
Dit beeld toont een SAML IdP metadata.xml bestand. Van de uitvoer kunt u alle waarden verkrijgen die vereist zijn voor de configuratie van het AnyConnect-profiel met SAML:
Configuratie op het FTD via het VCC
Stap 1. Installeer en registreer het IDp-certificaat in het VCC. Naar navigeren Devices > Certificates.
Stap 2. Klik op de knop Add
. Selecteer de FTD om in te schrijven op dit certificaat. Klik onder Inschrijving behouden op het plusteken +.
In het Add Cert Enrollment
deel, gebruik om het even welke naam als etiket voor de cert IdP. Klik op de knop Manual
.
Controleer de CA Only
en Skip Check
voor de vlagvelden van CA.
Plakt het base64
formaat IDp CA cert.
Klik op de knop Save
en klik vervolgens op Add
.
Stap 3. Configureer de SAML-serverinstellingen. Naar navigeren Objects > Object Management > AAA Servers > Single Sign-on Server.
Selecteer vervolgens Add Single Sign-on Server.
Stap 4. Op basis van de metadata.xml
bestand reeds verstrekt door uw IDp, de SAML-waarden configureren op de New Single Sign-on Server.
SAML Provider Entity ID: entityID from metadata.xml
SSO URL: SingleSignOnService from metadata.xml.
Logout URL: SingleLogoutService from metadata.xml.
BASE URL: FQDN of your FTD SSL ID Certificate.
Identity Provider Certificate: IdP Signing Certificate.
Service Provider Certificate: FTD Signing Certificate.
Stap 5. Configureer de Connection Profile
die deze verificatiemethode gebruikt. Naar navigeren Devices > Remote Access
en bewerk vervolgens uw huidige VPN Remote Access
configuratie.
Stap 6. Klik op het plus +-teken en voeg een ander verbindingsprofiel toe.
Stap 7. Maak het nieuwe verbindingsprofiel en voeg de juiste VPN-, Pool- of DHCP-server toe.
Stap 8. Selecteer het tabblad AAA. In het Authentication Method
Selecteer de optie SAML.
In het Authentication Server
Selecteer in deze optie het SAML-object dat in Stap 4 is gemaakt.
Stap 9. Maak een groepsalias om de verbindingen met dit verbindingsprofiel in kaart te brengen. Dit is de tag die gebruikers kunnen zien in het vervolgkeuzemenu AnyConnect Software.
Wanneer dit is ingesteld, klikt u op OK en slaat u de volledige VPN-configuratie voor SAML-verificatie op.
Stap 10. Naar navigeren Deploy > Deployment
en selecteer de juiste FTD om de wijzigingen in SAML Verification VPN toe te passen.
Stap 11. Verstrek het FTD metadata.xml bestand aan de IDP zodat ze de FTD als een betrouwbaar apparaat toevoegen.
Voer op de FTD CLI de opdracht uit show saml metadata SAML_TG
waarin SAML_TG de naam is van het verbindingsprofiel dat in stap 7 is gemaakt.
Dit is de verwachte output:
> system support diagnostic-cli
Attaching to Diagnostic CLI ... Press 'Ctrl+a then d' to detach.
Type help or '?' for a list of available commands.
firepower> en
Password:
firepower# show saml metadata SAML_TG
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<EntityDescriptor entityID="https://ftd.lab.local/saml/sp/metadata/SAML_TG" xmlns="urn:oasis:names:tc:SAML:2.0:metadata">
<SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>MIIF1zCCBL+gAwIBAgITYAAAABN6dX+H0cOFYwAAAAAAEzANBgkqhkiG9w0BAQsF
ADBAMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxEzARBgoJkiaJk/IsZAEZFgNsYWIx
EjAQBgNVBAMTCU1TMjAxMi1DQTAeFw0yMDA0MTEwMTQyMTlaFw0yMjA0MTEwMTQy
MTlaMCMxCzAJBgNVBAYTAkNSMRQwEgYDVQQDDAsqLmxhYi5sb2NhbDCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAKfRmbCfWk+V1f+YlsIE4hyY6+Qr1yKf
g1wEqLOFHtGVM3re/WmFuD+4sCyU1VkoiJhf2+X8tG7x2WTpKKtZM3N7bHpb7oPc
uz8N4GabfAIw287soLM521h6ZM01bWGQ0vxXR+xtCAyqz6JJdK0CNjNEdEkYcaG8
PFrFUy31UPmCqQnEy+GYZipErrWTpWwbF7FWr5u7efhTtmdR6Y8vjAZqFddigXMy
EY4F8sdic7btlQQPKG9JIaWny9RvHBmLgj0px2i5Rp5k1JIECD9kHGj44O5lBEcv
OFY6ecAPv4CkZB6CloftaHjUGTSeVeBAvXBK24Ci9e/ynIUNJ/CM9pcCAwEAAaOC
AuUwggLhMBYGA1UdEQQPMA2CCyoubGFiLmxvY2FsMB0GA1UdDgQWBBROkmTIhXT/
EjkMdpc4aM6PTnyKPzAfBgNVHSMEGDAWgBTEPQVWHlHqxd11VIRYSCSCuHTa4TCB
zQYDVR0fBIHFMIHCMIG/oIG8oIG5hoG2bGRhcDovLy9DTj1NUzIwMTItQ0EsQ049
V0lOLTVBME5HNDkxQURCLENOPUNEUCxDTj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNl
cyxDTj1TZXJ2aWNlcyxDTj1Db25maWd1cmF0aW9uLERDPWxhYixEQz1sb2NhbD9j
ZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0P2Jhc2U/b2JqZWN0Q2xhc3M9Y1JMRGlz
dHJpYnV0aW9uUG9pbnQwgbkGCCsGAQUFBwEBBIGsMIGpMIGmBggrBgEFBQcwAoaB
mWxkYXA6Ly8vQ049TVMyMDEyLUNBLENOPUFJQSxDTj1QdWJsaWMlMjBLZXklMjBT
ZXJ2aWNlcyxDTj1TZXJ2aWNlcyxDTj1Db25maWd1cmF0aW9uLERDPWxhYixEQz1s
b2NhbD9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlv
bkF1dGhvcml0eTAOBgNVHQ8BAf8EBAMCBaAwPQYJKwYBBAGCNxUHBDAwLgYmKwYB
BAGCNxUIgYKsboLe0U6B4ZUthLbxToW+yFILh4iaWYXgpQUCAWQCAQMwSwYDVR0l
BEQwQgYIKwYBBQUHAwEGCCsGAQUFBwMHBggrBgEFBQcDBgYIKwYBBQUIAgIGCCsG
AQUFBwMFBggrBgEFBQcDAgYEVR0lADBfBgkrBgEEAYI3FQoEUjBQMAoGCCsGAQUF
BwMBMAoGCCsGAQUFBwMHMAoGCCsGAQUFBwMGMAoGCCsGAQUFCAICMAoGCCsGAQUF
BwMFMAoGCCsGAQUFBwMCMAYGBFUdJQAwDQYJKoZIhvcNAQELBQADggEBAKQnqcaU
fZ3kdeoE8v2Qz+3Us8tXxXaXVhS3L5heiwr1IyUgsZm/+RLJL/zGE3AprEiITW2V
Lmq04X1goaAs6obHrYFtSttz/9XlTAe1KbZ0GlRVg9LblPiF17kZAxALjLJHlCTG
5EQSC1YqS31sTuarm4WPDJyMShc6hlUpswnCokGRMMgpx2GmDgv4Zf8SzJJ0NI4y
DgMozuObwkNUXuHbiLuoXwvb2Whm11ysidpl+V9kp1RYamyjFUo+agx0E+L1zp8C
i0YEwYKXgKk3CZdwJfnYQuCWjmapYwlLGt5S59Uwegwro6AsUXY335+ZOrY/kuLF
tzR3/S90jDq6dqk=
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</KeyDescriptor>
<AssertionConsumerService index="0" isDefault="true" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://ftd.lab.local/+CSCOE+/saml/sp/acs?tgname=SAML_TG" />
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://ftd.lab.local/+CSCOE+/saml/sp/logout"/><SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://ftd.lab.local/+CSCOE+/saml/sp/logout"/></SPSSODescriptor>
</EntityDescriptor>
Nadat de metadata.xml van de FTD aan de IdP is verstrekt en als betrouwbaar apparaat is, kan een test onder de VPN-verbinding worden uitgevoerd.
Verifiëren
Controleer of de VPN AnyConnect-verbinding met SAML is tot stand gebracht als een verificatiemethode met de hier weergegeven opdrachten:
firepower# show vpn-sessiondb detail AnyConnect
Session Type: AnyConnect Detailed
Username : xxxx Index : 4
Assigned IP : 10.1.1.1 Public IP : 192.168.1.104
Protocol : AnyConnect-Parent SSL-Tunnel DTLS-Tunnel
License : AnyConnect Premium
Encryption : AnyConnect-Parent: (1)none SSL-Tunnel: (1)AES-GCM-256 DTLS-Tunnel: (1)AES-GCM-256
Hashing : AnyConnect-Parent: (1)none SSL-Tunnel: (1)SHA384 DTLS-Tunnel: (1)SHA384
Bytes Tx : 12772 Bytes Rx : 0
Pkts Tx : 10 Pkts Rx : 0
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Group Policy : SAML_GP Tunnel Group : SAML_TG
Login Time : 18:19:13 UTC Tue Nov 10 2020
Duration : 0h:03m:12s
Inactivity : 0h:00m:00s
VLAN Mapping : N/A VLAN : none
Audt Sess ID : c0a80109000040005faad9a1
Security Grp : none Tunnel Zone : 0
AnyConnect-Parent Tunnels: 1
SSL-Tunnel Tunnels: 1
DTLS-Tunnel Tunnels: 1
AnyConnect-Parent:
Tunnel ID : 4.1
Public IP : 192.168.1.104
Encryption : none Hashing : none
TCP Src Port : 55130 TCP Dst Port : 443
Auth Mode : SAML
Idle Time Out: 30 Minutes Idle TO Left : 26 Minutes
Client OS : linux-64
Client OS Ver: Ubuntu 20.04.1 LTS (Focal Fossa)
Client Type : AnyConnect
Client Ver : Cisco AnyConnect VPN Agent for Linux 4.9.03047
Bytes Tx : 6386 Bytes Rx : 0
Pkts Tx : 5 Pkts Rx : 0
Pkts Tx Drop : 0 Pkts Rx Drop : 0
SSL-Tunnel:
Tunnel ID : 4.2
Assigned IP : 10.1.1.1 Public IP : 192.168.1.104
Encryption : AES-GCM-256 Hashing : SHA384
Ciphersuite : ECDHE-RSA-AES256-GCM-SHA384
Encapsulation: TLSv1.2 TCP Src Port : 55156
TCP Dst Port : 443 Auth Mode : SAML
Idle Time Out: 30 Minutes Idle TO Left : 28 Minutes
Client OS : Linux_64
Client Type : SSL VPN Client
Client Ver : Cisco AnyConnect VPN Agent for Linux 4.9.03047
Bytes Tx : 6386 Bytes Rx : 0
Pkts Tx : 5 Pkts Rx : 0
Pkts Tx Drop : 0 Pkts Rx Drop : 0
DTLS-Tunnel:
Tunnel ID : 4.3
Assigned IP : 10.1.1.1 Public IP : 192.168.1.104
Encryption : AES-GCM-256 Hashing : SHA384
Ciphersuite : ECDHE-ECDSA-AES256-GCM-SHA384
Encapsulation: DTLSv1.2 UDP Src Port : 40868
UDP Dst Port : 443 Auth Mode : SAML
Idle Time Out: 30 Minutes Idle TO Left : 28 Minutes
Client OS : Linux_64
Client Type : DTLS VPN Client
Client Ver : Cisco AnyConnect VPN Agent for Linux 4.9.03047
Bytes Tx : 0 Bytes Rx : 0
Pkts Tx : 0 Pkts Rx : 0
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Problemen oplossen
Sommige verificatieopdrachten op de FTD CLI kunnen worden gebruikt voor probleemoplossing van SAML en de verbinding van Remote Access VPN zoals in de haakje te zien is:
firepower# show run webvpn
firepower# show run tunnel-group
firepower# show crypto ca certificate
firepower# debug webvpn saml 25
Opmerking: u kunt ook DART oplossen vanaf de AnyConnect-gebruikers-pc.