Introdução
Este documento descreve como configurar a autenticação SAML para Vários Perfis de Conexão de VPN de Acesso Remoto usando o Azure como IdP no CSF via FDM.
Pré-requisitos
Requisitos
A Cisco recomenda que você tenha conhecimento básico destes tópicos:
- Certificados SSL
- OpenSSL
- Rede Virtual Privada de Acesso Remoto (RAVPN)
- Gerenciador de dispositivos do Cisco Secure Firewall (FDM)
- SAML (Security Assertion Markup Language, Linguagem de marcação de asserção de segurança)
- Microsoft Azure
Componentes Utilizados
As informações neste documento são baseadas nestas versões de software:
- OpenSSL
- Cisco Secure Firewall (CSF) versão 7.4.1
- Cisco Secure Firewall Device Manager versão 7.4.1
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
SAML, ou Security Assertion Markup Language, é um padrão aberto para troca de informações de autenticação e autorização entre as partes, especificamente um Identity Provider (IdP) e um Service Provider (SP). O uso da autenticação SAML para conexões de VPN de Acesso Remoto (RAVPN) e vários outros aplicativos tornou-se cada vez mais popular devido às suas inúmeras vantagens. No Firepower Management Center (FMC), vários Perfis de conexão podem ser configurados para usar aplicativos protegidos por IdP diferentes devido à opção Substituir certificado do provedor de identidade disponível no menu de configuração Perfil de conexão. Este recurso permite que os administradores substituam o certificado IdP primário no objeto do Servidor de Signon Único (SSO) por um certificado IdP específico para cada perfil de conexão. No entanto, essa funcionalidade é limitada no Firepower Device Manager (FDM), pois não oferece uma opção semelhante. Se um segundo objeto SAML estiver configurado, tentar se conectar ao primeiro Perfil de Conexão resultará em uma falha de autenticação, exibindo a mensagem de erro: "Falha de autenticação devido a um problema na recuperação do cookie de logon único". Para contornar essa limitação, um certificado Autoassinado personalizado pode ser criado e importado para o Azure para uso em todos os aplicativos. Ao fazer isso, apenas um certificado precisa ser instalado no FDM, permitindo a autenticação SAML perfeita para vários aplicativos.
Configurar
Etapa 1: Crie um certificado autoassinado e um arquivo PKCS#12 usando o OpenSSL
Esta seção descreve como criar o certificado Autoassinado usando o OpenSSL
- Faça login em um endpoint que tenha a biblioteca OpenSSL instalada.
Observação: neste documento, uma máquina Linux é usada, portanto, alguns comandos são específicos de um ambiente Linux. No entanto, os comandos do OpenSSL são os mesmos.
b. Crie um arquivo de configuração usando otouch
.conf
comando.
root@host# touch config.conf
c. Edite o arquivo com um editor de texto. Neste exemplo, o Vim é usado e o vim
.conf
comando é executado. Você pode usar qualquer outro editor de texto.
root@host# vim config.conf
d. Insira as informações a serem incluídas no campo Autoassinado.
Certifique-se de substituir os valores entre < > as informações de sua empresa.
[req]
distinguished_name = req_distinguished_name
prompt = no
[req_distinguished_name]
C =
ST =
L =
O =
OU =
CN =
e. O uso desse comando gera uma nova chave privada RSA de 2048 bits e um certificado autoassinado usando o algoritmo SHA-256, válido por 3650 dias, com base na configuração especificada no
.conf
arquivo. A chave privada é salva em
.pem
e o certificado Autoassinado é salvo em
.crt
.
root@host# openssl req -newkey rsa:2048 -nodes -keyout
.pem -x509 -sha256 -days 3650 -config
.conf -out
.crt
f. Depois de criar a chave privada e o certificado Autoassinado, ele a exporta para um arquivo PKCS#12, que é um formato que pode incluir a chave privada e o certificado.
root@host# openssl pkcs12 -export -inkey
.pem -in
.crt -name
-out
.pfx
Anote a senha.
Etapa 2: Carregue o arquivo PKCS#12 no Azure e no FDM
Certifique-se de criar um aplicativo no Azure para cada Perfil de Conexão que esteja usando a autenticação SAML no FDM.
Depois que você tiver o arquivo PKCS#12 da Etapa 1: Criar um Certificado AutoAssinado e o arquivo PKCS#12 usando OpenSSL, ele deverá ser carregado para o Azure para vários aplicativos e configurado na configuração SSO do FDM.
Etapa 2.1. Carregar o Certificado no Azure
a. Faça logon no portal do Azure, navegue para o aplicativo Enterprise que deseja proteger com a autenticação SAML e selecione Logon Único.
b. Role para baixo até a seção Certificados SAML e selecione Mais opções > Editar.
c. Agora, selecione a opção Importar certificado.
d. Localize o arquivo PKCS#12 criado anteriormente e use a senha digitada quando criou o arquivo PKCS#12.
e. Por fim, selecione a opção Tornar Certificado Ativo.
Observação: certifique-se de executar a Etapa 2.1: Carregar o Certificado para o Azure para cada aplicativo.
Etapa 2.2. Carregar o Certificado no FDM
a. Navegue até Objects > Certificates > Click Add Trusted CA certificate
.
b. Insira o nome do ponto de confiança que você prefere e carregue somente o certificado de identidade do IdP (não o arquivo PKCS#12) e marque a Skip CA Certificate Check
.
c. Defina o novo certificado no objeto SAML.
d. Defina o objeto SAML nos diferentes Perfis de Conexão que estão usando SAML como o método de autenticação e para o qual o aplicativo foi criado no Azure. Implantar as alterações
Verificar
Execute os comandos show running-config
webvpn eshow running-config tunnel-group
para revisar a configuração e verificar se a mesma URL do IDP está configurada nos diferentes Perfis de Conexão.
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#