O conjunto de documentação deste produto faz o possível para usar uma linguagem imparcial. Para os fins deste conjunto de documentação, a imparcialidade é definida como uma linguagem que não implica em discriminação baseada em idade, deficiência, gênero, identidade racial, identidade étnica, orientação sexual, status socioeconômico e interseccionalidade. Pode haver exceções na documentação devido à linguagem codificada nas interfaces de usuário do software do produto, linguagem usada com base na documentação de RFP ou linguagem usada por um produto de terceiros referenciado. Saiba mais sobre como a Cisco está usando a linguagem inclusiva.
A Cisco traduziu este documento com a ajuda de tecnologias de tradução automática e humana para oferecer conteúdo de suporte aos seus usuários no seu próprio idioma, independentemente da localização. Observe que mesmo a melhor tradução automática não será tão precisa quanto as realizadas por um tradutor profissional. A Cisco Systems, Inc. não se responsabiliza pela precisão destas traduções e recomenda que o documento original em inglês (link fornecido) seja sempre consultado.
Este documento descreve como configurar a SAML (Security Assertion Markup Language) com foco no Adaptive Security Appliance (ASA) AnyConnect através do Microsoft Azure MFA.
A Cisco recomenda que você tenha conhecimento destes tópicos:
As informações neste documento são baseadas nestas versões de software e hardware:
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.
O SAML é uma estrutura baseada em XML para troca de dados de autenticação e autorização entre domínios de segurança. Ele cria um círculo de confiança entre o usuário, um provedor de serviços (SP) e um provedor de identidade (IdP) que permite que o usuário entre uma única vez para vários serviços. O Microsoft Azure MFA integra-se perfeitamente ao dispositivo VPN Cisco ASA para fornecer segurança adicional para os logons do Cisco AnyConnect VPN.
Metadados: É um documento baseado em XML que garante uma transação segura entre um IdP e um SP. Permite que o IdP e o SP negociem contratos.
Funções suportadas pelos dispositivos (IdP, SP)
Um dispositivo pode suportar mais de uma função e pode conter valores para uma controladora e um IdP. No campo EntityDescriptor, há um IDPSSODescriptor se as informações contidas forem para um IdP de Logon Único ou um SPSSODescriptor se as informações contidas forem para um SP de Logon Único. Isso é importante, pois os valores corretos devem ser tirados das seções apropriadas para que o SAML seja configurado com êxito.
ID da entidade: Esse campo é um identificador exclusivo de um SP ou IdP. Um único dispositivo pode ter vários serviços e pode usar diferentes IDs de entidade para diferenciá-los. Por exemplo, o ASA tem diferentes IDs de entidade para diferentes grupos de túneis que precisam ser autenticados. Um IdP que autentica cada grupo de túneis tem entradas de ID de entidade separadas para cada grupo de túneis para identificar com precisão esses serviços.
O ASA pode suportar vários IdPs e tem um ID de entidade separado para cada IdP para diferenciá-los. Se um dos lados receber uma mensagem de um dispositivo que não contém uma ID de entidade que tenha sido configurada anteriormente, o dispositivo provavelmente descartará essa mensagem e a autenticação SAML falhará. A ID da entidade pode ser encontrada no campo EntityDescriptor ao lado de entityID.
URLs de serviço: Definem a URL para um serviço SAML fornecido pelo SP ou IdP. Para os IdPs, é mais comum ser o Serviço de Logoff Único e o Serviço de Logon Único. Para os SPs, geralmente é o Assertion Consumer Service e o Single Logout Service.
A URL do serviço Single Sign-On encontrada nos metadados do IdP é usada pelo SP para redirecionar o usuário ao IdP para autenticação. Se esse valor estiver configurado incorretamente, o IdP não receberá ou não poderá processar com êxito a solicitação de autenticação enviada pelo SP.
A URL de serviço do consumidor de asserção encontrada nos metadados da controladora de armazenamento é usada pelo IdP para redirecionar o usuário de volta para a controladora de armazenamento e fornecer informações sobre a tentativa de autenticação do usuário. Se isso for configurado incorretamente, o SP não receberá a asserção (a resposta) ou não poderá processá-la com êxito.
A URL do serviço de logoff único pode ser encontrada na controladora e no IdP. É usado para facilitar o logoff de todos os serviços SSO do SP e é opcional no ASA. Quando a URL do serviço SLO dos metadados de IdP é configurada na controladora, quando o usuário faz logoff do serviço na controladora, a controladora envia a solicitação ao IdP. Depois que o IdP tiver desconectado com êxito o usuário dos serviços, ele redirecionará o usuário de volta para o SP e usará a URL do serviço do SLO encontrada nos metadados do SP.
Associações SAML para URLs de Serviço: As vinculações são o método que o SP usa para transferir informações para o IdP e vice-versa para serviços. Isso inclui Redirecionamento HTTP, POST HTTP e Artefato. Cada método tem uma maneira diferente de transferir dados. O método de vinculação suportado pelo serviço está incluído na definição desses serviços. Por exemplo: SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://saml.example.com/simplesaml/saml2/idp/SSOService.php"/ >. O ASA não oferece suporte à associação de Artefato. O ASA sempre usa o método Redirecionamento HTTP para solicitações de autenticação SAML, por isso é importante escolher a URL do Serviço SSO que usa a associação Redirecionamento HTTP para que o IdP espere isso.
Para fornecer confidencialidade e integridade para as mensagens enviadas entre o SP e o IdP, o SAML inclui a capacidade de criptografar e assinar os dados. O certificado usado para criptografar e/ou assinar os dados pode ser incluído nos metadados para que a extremidade que recebe possa verificar a mensagem SAML e garantir que ela vem da fonte esperada. Os certificados usados para assinatura e criptografia podem ser encontrados nos metadados em KeyDescriptor use="signing" e KeyDescriptor use="encryption", respectivamente, depois em X509Certificate. O ASA não oferece suporte à criptografia de mensagens SAML.
Etapa 1. Faça logon no Portal do Azure e selecione Ative Diretory do Azure.
Etapa 2. Como mostrado nesta imagem, selecione Enterprise Applications.
Etapa 3. Agora selecione New Application, conforme mostrado nesta imagem.
Etapa 4. Na seção Adicionar da galeria, digite AnyConnect na caixa de pesquisa, selecione Cisco AnyConnect no painel de resultados e adicione o aplicativo.
Etapa 5. Selecione o item de menu Sign-on único, conforme mostrado nesta imagem.
Etapa 6. Selecione SAML, conforme mostrado na imagem.
Etapa 7. Edite a Seção 1 com esses detalhes.
a. Identifier (Entity ID) - https://<VPN URL>/saml/sp/metadata/<TUNNEL-GROUP NAME> b. Reply URL (Assertion Consumer Service URL) - https://<VPN URL>/+CSCOE+/saml/sp/acs?tgname=<TUNNEL-GROUP NAME> Example: vpn url called asa.example.com and tunnel-group called AnyConnectVPN-1
Etapa 8. Na seção Certificado de assinatura SAML, selecione Download para baixar o arquivo de certificado e salvá-lo no computador.
Etapa 9. Observe que isso é necessário para a configuração do ASA.
Nesta seção, Test1 está habilitado para usar logon único do Azure, à medida que você concede acesso ao aplicativo Cisco AnyConnect.
Etapa 1. Na página de visão geral do aplicativo, selecione Usuários e grupos e depois Adicionar usuário.
Etapa 2. Selecione Usuários e grupos na caixa de diálogo Adicionar tarefa.
Etapa 3. Na caixa de diálogo Adicionar atribuição, clique no botão Atribuir.
Etapa 1. Crie um ponto confiável e importe nosso certificado SAML.
config t
crypto ca trustpoint AzureAD-AC-SAML revocation-check none no id-usage enrollment terminal no ca-check crypto ca authenticate AzureAD-AC-SAML -----BEGIN CERTIFICATE----- … PEM Certificate Text you downloaded goes here … -----END CERTIFICATE----- quit
Etapa 2. Esses comandos provisionam seu IdP SAML.
webvpn saml idp https://sts.windows.net/xxxxxxxxxxxxx/ - [Azure AD Identifier] url sign-in https://login.microsoftonline.com/xxxxxxxxxxxxxxxxxxxxxx/saml2 - [Login URL] url sign-out https://login.microsoftonline.com/common/wsfederation?wa=wsignout1.0 – Logout URL trustpoint idp AzureAD-AC-SAML - [IdP Trustpoint] trustpoint sp ASA-EXTERNAL-CERT - [SP Trustpoint] no force re-authentication no signature base-url https://asa.example.com
Etapa 3. Aplicar a Autenticação SAML a uma Configuração de Túnel VPN.
tunnel-group AnyConnectVPN-1 webvpn-attributes saml identity-provider https://sts.windows.net/xxxxxxxxxxxxx/ authentication saml end write memory
Note: Se você fizer alterações na configuração do IdP, precisará remover a configuração saml identity-provider do Grupo de Túneis e reaplicá-la para que as alterações entrem em vigor.
Etapa 1. Conecte-se à sua URL VPN e insira seus detalhes de logon do Azure AD.
Etapa 2. Aprovar solicitação de entrada.
Etapa 3. O AnyConnect está conectado.
Exemplo de depuração:
[SAML] consume_assertion: O identificador de um provedor é desconhecido para #LassoServer. Para registrar um provedor em um objeto #LassoServer, você deve usar os métodos lasso_server_add_provider() ou lasso_server_add_provider_from_buffer().
Problema: Geralmente, significa que o comando saml idp [entityID] na configuração webvpn do ASA não corresponde à ID de entidade do IdP encontrada nos metadados do IdP.
Solução: Verifique a ID da entidade do arquivo de metadados do IdP e altere o comando saml idp [entity id] para corresponder a isso.
Exemplo de depuração:
[SAML] NotBefore:2017-09-05T23:59:01.896Z NotOnOrAfter:2017-09-06T00:59:01.896Z tempo limite: 0
[SAML] consume_assertion: a asserção expirou ou não é válida
Problema 1. O tempo VMR não foi sincronizado com o tempo do IdP.
Solução 1. Configure ASA com o mesmo servidor NTP usado pelo IdP.
Problema 2. A declaração não é válida entre o tempo especificado.
Solução 2. Modifique o valor de tempo limite configurado no ASA.
Exemplo de depuração:
[Lasso] func=xmlSecOpenSSLEvpSignatureVerify:file=signatures.c:line=493:obj=rsa-sha1:subj=EVP_VerifyFinal:error=18:os dados não correspondem:a assinatura não corresponde
[SAML] consume_assertion: O perfil não pode verificar uma assinatura na mensagem
Problema: O ASA não pode verificar a mensagem assinada pelo IdP ou não há assinatura para o ASA verificar.
Solução: Verifique o certificado de assinatura IdP instalado no ASA para certificar-se de que ele corresponde ao que é enviado pelo IdP. Se isso for confirmado, verifique se a assinatura está incluída na resposta SAML.
Exemplo de depuração:
[SAML] consume_assertion: audiência de asserção inválida
Problema: O IdP define o público incorreto.
Solução: Corrija a configuração de Audiência no IdP. Ele deve corresponder à ID da entidade do ASA.
Exemplo de depuração: Não é possível receber depurações após o envio da solicitação de autenticação inicial. O usuário pode inserir credenciais no IdP, mas o IdP não redireciona para o ASA.
Problema: O IdP está configurado para a URL incorreta do Serviço de Consumidor de Asserção.
Solução(ões): Verifique a URL base na configuração e certifique-se de que esteja correta. Verifique os metadados ASA com show para certificar-se de que a URL do Assertion Consumer Service esteja correta. Para testá-lo, procure-o. Se ambos estiverem corretos no ASA, verifique o IdP para certificar-se de que o URL está correto.
Exemplo: Depois que uma URL de logon único é modificada ou alterada, o certificado SP, o SAML ainda não funciona e envia as configurações anteriores.
Problema: O ASA precisa regenerar seus metadados quando houver uma alteração de configuração que o afete. Ele não faz isso automaticamente.
Solução: Depois que as alterações forem feitas, no grupo de túneis afetado, remova e reaplique o comando saml idp [entity-id].
A maioria das soluções de problemas SAML envolve uma configuração incorreta que pode ser encontrada quando a configuração SAML é verificada ou quando as depurações são executadas. debug webvpn saml 255 pode ser usado para solucionar a maioria dos problemas, no entanto, em cenários onde essa depuração não fornece informações úteis, depurações adicionais podem ser executadas:
debug webvpn saml 255 debug webvpn 255 debug webvpn session 255 debug webvpn request 255
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
19-Aug-2020 |
Versão inicial |