Introduction
Este documento descreve Security Assertion Markup Language (SAML)
autenticação no FTD gerido pelo FMC.
Prerequisites
Requirements
A Cisco recomenda o conhecimento destes tópicos:
AnyConnect
configuração no FMC
- Valores SAML e metatada.xml
Componentes Utilizados
As informações neste documento são baseadas nestas versões de software e hardware:
Firepower Threat Defense (FTD)
versão 6.7.0
Firepower Management Center (FMC)
versão 6.7.0
- ADFS de
AD Server
com SAML 2.0
Note: Se possível, use um servidor NTP para sincronizar o horário entre o FTD e o IdP. Caso contrário, verifique se a hora é sincronizada manualmente entre eles.
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. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Informações de Apoio
A configuração permite que os usuários do Anyconnect estabeleçam uma autenticação de sessão VPN com um SAML Identity Service Provider.
Algumas das limitações atuais do SAML são:
- O SAML no FTD é suportado para autenticação (versão 6.7 em diante) e autorização (versão 7.0 em diante).
- Atributos de autenticação SAML disponíveis na avaliação DAP (semelhante a
RADIUS
atributos enviados em RADIUS
resposta de autorização do servidor AAA) não são suportados.
- O ASA oferece suporte ao grupo de túneis habilitado para SAML na política DAP. No entanto, você não pode verificar o atributo de nome de usuário com autenticação SAML, pois o atributo de nome de usuário é mascarado pelo provedor de identidade SAML.
-
Porque AnyConnect
com o navegador incorporado usa uma nova sessão de navegador em cada tentativa de VPN, os usuários devem reautenticar sempre que o IdP usar cookies de sessão HTTP para rastrear o estado de login.
-
Neste caso, o Force Re-Authentication
definição em Configuration > Remote Access VPN > Clientless SSL VPN Access > Advanced > Single Sign On Servers
não tem efeito sobre AnyConnect
autenticação SAML iniciada.
Mais limitações para SAML são descritas no link fornecido aqui.
https://www.cisco.com/c/en/us/td/docs/security/asa/asa915/configuration/vpn/asa-915-vpn-config/webvpn-configure-users.html#reference_55BA48B37D6443BEA5D2F42EC21075B5
Estas limitações aplicam-se ao ASA e ao FTD: "Guidelines and Limitations for SAML 2.0
"
Note: Toda a configuração SAML a ser implementada no FTD pode ser encontrada no arquivo metadata.xml fornecido pelo seu IdP.
Configuração
Esta seção descreve como configurar AnyConnect
com autenticação SAML no FTD
Obter os parâmetros IdP SAML
Esta imagem mostra um arquivo metadata.xml do IdP SAML. Na saída, você pode obter todos os valores necessários para configurar o AnyConnect
perfil com SAML:

Configuração no FTD via FMC
Etapa 1. Instale e registre o certificado IdP no FMC. Navegue até Devices > Certificates

Etapa 2. Clique em Add
. Selecione o FTD para se inscrever neste certificado. Em Cert Enrollment, clique no sinal de mais +
No Add Cert Enrollment
use qualquer nome como rótulo para o certificado IdP. Clique em Manual
.
Marque a caixa de seleção CA Only
e Skip Check
para campos de flag CA.
Cole o base64
formatar certificado IdP CA.
Clique em Save
e clique em Add
.

Etapa 3. Definir as configurações do servidor SAML. Navegue até Objects > Object Management > AAA Servers > Single Sign-on Server
. Em seguida, selecione Add Single Sign-on Server
.

Etapa 4. Com base na metadata.xml
arquivo já fornecido pelo IdP, configure os valores SAML no 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.

Etapa 5. Configurar o Connection Profile
que usa esse método de autenticação. Navegue até Devices > Remote Access
e, em seguida, edite seu VPN Remote Access
configuração.

Etapa 6. Clique no sinal de mais + e adicione outro Connection Profile
.

Etapa 7. Crie o novo Connection Profile
e adicionar a VPN apropriada, Pool
ou Servidor DHCP.

Etapa 8. Selecione a guia AAA. Sob a Authentication Method
selecione SAML.
Sob a Authentication Server
selecione o objeto SAML criado na Etapa 4.

Etapa 9. Crie um alias de grupo para mapear as conexões para este Connection Profile
. Essa é a marca que os usuários podem ver no AnyConnect
Software.
Quando isso estiver configurado, clique em OK e salve o SAML Authentication VPN
configuração.

Etapa 10. Navegue até Deploy > Deployment
e selecione o FTD apropriado para aplicar o SAML Authentication VPN
alterações.
Etapa 11. Fornecer o FTD metadata.xml
ao IdP para que adicionem o FTD como um dispositivo confiável.
Na CLI do FTD, execute o comando show saml metadata SAML_TG
onde SAML_TG é o nome do Connection Profile
criado na Etapa 7.
Esta é a saída esperada:
> 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>
Após a metadata.xml
do FTD é fornecido ao IdP e é como um dispositivo confiável, um teste na conexão VPN pode ser executado.
Verificar
Verifique se o VPN AnyConnect
A conexão foi estabelecida com o SAML como um método de autenticação com os comandos vistos aqui:
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
Troubleshoot
Alguns comandos de verificação na CLI do FTD podem ser usados para solucionar problemas de SAML e Remote Access VPN
conexão como visto no suporte:
firepower# show run webvpn
firepower# show run tunnel-group
firepower# show crypto ca certificate
firepower# debug webvpn saml 25
Note: Você pode solucionar problemas DART
nos AnyConnect
usuário também.