Contents

Introdução

Pré-requisitos

Requisitos

Componentes Utilizados

Informações de Apoio

Configuração

Obter os Parâmetros IdP SAML

Configuração no FTD via FMC

Verificar

Troubleshooting

Introdução

Este documento descreve a autenticação SAML (Security Assertion Markup Language) no FTD gerenciado no FMC.

Pré-requisitos

Requisitos

A Cisco recomenda o conhecimento destes tópicos:

- Configuração do AnyConnect no Firepower Management Center (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

- FMC versão 6.7.0

- ADFS do Servidor AD com SAML 2.0

Observação: 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.

As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. 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 provedor de serviço de identidade SAML.

Algumas das limitações atuais do SAML são:

- O SAML no FTD é suportado para autenticação (versão 6.7 e superior) e autorização (versão 7.0 e superior).

- Os atributos de autenticação SAML disponíveis na avaliação DAP (semelhante aos atributos RADIUS enviados na resposta de autorização RADIUS 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 a autenticação SAML, pois o atributo de nome de usuário é mascarado pelo provedor de identidade SAML.

- Como o AnyConnect com o navegador incorporado usa uma nova sessão do 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 na autenticação SAML iniciada pelo AnyConnect.

Mais limitações para SAML são descritas no link fornecido aqui.

Diretrizes e Limitações do SAML 2.0

Essas limitações se aplicam ao ASA e ao FTD: Diretrizes e Limitações para SAML 2.0.

Observação: todas as configurações SAML a serem implementadas no FTD podem ser encontradas no arquivo metadata.xml fornecido pelo seu IdP.

Configuração

Esta seção descreve como configurar o 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 perfil do AnyConnect com SAML:

Configuração no FTD via FMC

Etapa 1. Instalar e registrar 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 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. Defina 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 Perfil de conexão.

Passo 7. Crie o novo Perfil de Conexão e adicione a VPN, o Pool ou o Servidor DHCP apropriados.

Etapa 8. Selecione a guia AAA. Sob o comando Authentication Method selecione SAML.

Sob o comando Authentication Server selecione o objeto SAML criado na Etapa 4.

Etapa 9. Crie um alias de grupo para mapear as conexões para este Perfil de Conexão. Essa é a marca que os usuários podem ver no menu suspenso Software AnyConnect.

Quando isso estiver configurado, clique em OK e salve a configuração completa da VPN de Autenticação SAML.

Etapa 10. Navegue até Deploy > Deployment e selecione o FTD apropriado para aplicar as alterações de VPN de autenticação SAML.

Etapa 11. Forneça o arquivo metadata.xml do FTD ao IDP para que ele adicione 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 Perfil de Conexão 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>

Depois que o 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 a conexão VPN AnyConnect foi estabelecida com 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

Troubleshooting

Alguns comandos de verificação na CLI de FTD podem ser usados para solucionar problemas de SAML e conexão de VPN de acesso remoto, conforme visto no parêntese:

firepower# show run webvpn

firepower# show run tunnel-group

firepower# show crypto ca certificate

firepower# debug webvpn saml 25

Observação: você também pode solucionar problemas do DART no PC do usuário do AnyConnect.