Introdução
Este documento descreve os fundamentos para ativar e verificar o SSO (Single Sign On, Logon único) no vManage.
Terminologia
A SAML (Security Assertion Markup Language) é um padrão aberto para a troca de dados de autenticação e autorização entre as partes, em particular entre um provedor de identidade e um provedor de serviços. Como o nome indica, a SAML é uma linguagem de marcação baseada em XML para asserções de segurança (instruções que os provedores de serviços usam para tomar decisões de controle de acesso).
Um Provedor de Identidade (IdP) é "um provedor confiável que permite que você use o logon único (SSO) para acessar outros sites." O SSO reduz o cansaço de senhas e melhora a usabilidade. Ele reduz a superfície de ataque potencial e fornece melhor segurança.
Provedor de serviços - é uma entidade do sistema que recebe e aceita asserções de autenticação em conjunto com um perfil SSO do SAML.
O que são recursos?
- A partir da versão 18.3.0, o vManage oferece suporte a SSO. O SSO permite que um usuário faça login no vManage por meio da autenticação em um Provedor de Identidade (IP) externo.
- Somente SAML2.0 é suportado
- Compatível com - Single Tenant (independente e de cluster), Multi-Tenant (no nível do provedor e do usuário), Além disso, as implantações de Multi-Tenant são agrupadas por padrão. Provedor como locatário não aplicável.
- Cada locatário pode ter seu próprio provedor de identidade exclusivo, desde que o idp se alinhe com a especificação SAML 2.0.
- Suporta a configuração de metadados IDP por meio de upload de arquivo, cópia de texto simples e download de metadados vManage.
- Somente o SSO baseado em navegador é suportado.
- Os certificados usados para metadados vmanage não são configuráveis nesta versão.
é um Certificado Autoassinado, criado na primeira vez em que você ativa o SSO, com estes parâmetros:
String CN = <NomeDoLocatário>, DefaultTenant
String OU = <Nome da Org.>
String O = <Nome Da Org. Sp>
Corda L = "San Jose";
String ST = "CA";
Corda C = "USA";
Validade da sequência = 5 anos;
Algoritmo de assinatura do certificado: SHA256WithRSA
Algoritmo de geração de KeyPair: RSA
- Login único - SP iniciado e IDP iniciado com suporte
- Logoff único - SP iniciado apenas
Como ativá-lo no vManage?
Para ativar o logon único (SSO) para o vManage NMS para permitir que os usuários sejam autenticados usando um provedor de identidade externo:
- Verifique se você habilitou o NTP no vManage NMS.
- conecte-se à GUI do vManage com a URL configurada no IdP
(por exemplo, vmanage-112233.example.net e não use Endereço IP, pois essas informações de URL estão incluídas nos Metadados SAML)
- Clique no botão Editar à direita da barra Configurações do provedor de identidade.
- No campo Ativar provedor de identidade, clique em Ativado,
- Copie e cole os metadados do provedor de identidade na caixa Carregar Metadados do Provedor de Identidade. Ou clique em Selecionar um Arquivo para carregar o arquivo de metadados do provedor de identidade.
- Click Save.
Qual é o fluxo de trabalho?
- O usuário ativa o SSO por meio da página Administração -> Configurações carregando os metadados do provedor de identidade.
- Em seguida, o usuário baixa os metadados do locatário do vManage correspondentes a serem carregados no provedor de identidade (deve ser feito pelo menos uma vez para gerar metadados do vManage).
- O usuário pode desativar ou atualizar os metadados a qualquer momento, se necessário.
Exemplo de meta do vManage
O vManage oferece suporte à autenticação de dois fatores e como ela é diferente do SSO?
A Autenticação de Dois Fatores (também conhecida como2FA) é um tipo, ou subconjunto, de autenticação multifator (MFA). É um método de confirmar as identidades reivindicadas dos usuários usando uma combinação dedois fatores diferentes: 1) algo que eles sabem, 2) algo que eles têm, ou 3) algo que eles são.
Exemplo: Google GMail (senha com senha de uso único (OTP))
2FA é algo que é fornecido no Servidor SSO. É semelhante à forma como fazemos login no site interno da Cisco.
Ele o redireciona para o Cisco SSO, onde você é solicitado a fornecer PingID / DUO 2FA.
Quantas funções existem como parte da solução?
Temos 3 funções: básica, operadora, netadmin.
Configurando o acesso e a autenticação de usuários
A quais IdPs oferecemos suporte?
- Okta
- PingID
- ADFS
- Microsoft Azure (20.9 e posterior)
Os clientes podem usar outros IdPs e vê-los funcionando. Isto seria abrangido pelo "melhor esforço"
Outros incluem: Oracle Access Manager, F5 Networks
Observação: verifique a documentação mais recente da Cisco para obter os últimos IdPs suportados pelo vManage
Como indicar a associação de grupo de usuários na asserção SAML?
Problema: front-end do vManage com um SAML IdP. Quando o usuário é autenticado com êxito, a única coisa que o usuário pode acessar é o painel.
Há uma maneira de dar ao usuário mais acesso (via grupo de usuários RBAC) quando o usuário é autenticado via SAML?
Esse problema é causado pela configuração incorreta do IDP. A chave aqui é que as informações enviadas pelo IDP durante a autenticação devem conter "Username" e "Groups" como atributos no xml. Se outras strings forem usadas no lugar de "Groups", o usergroup será padronizado como "Basic". Os usuários "básicos" só têm acesso ao painel básico.
Certifique-se de que o IDP envie "Username/Groups" (Nome de usuário/grupos), em vez de "UserId/role" (ID de usuário/função) para o vManage.
Este é um exemplo conforme visto no arquivo /var/log/nms/vmanage-server.log:
Exemplo não funcional:
Vemos que "UserId/role" foi enviado por IdP e o usuário está mapeado para o grupo básico.
01-Mar-2019 15:23:50,797 UTC INFO [vManage] [SAMLAuthenticationProvider] (default task-227) |default| AttributeMap: {role=[netadmin], UserId=[Tester@example.com]}
01-Mar-2019 15:23:50,797 UTC INFO [vManage] [SAMLAuthenticationProvider] (default task-227) |default| AttributeMap: {role=[netadmin], UserId=[Tester@example.com]}
01-Mar-2019 15:23:50,797 UTC INFO [vManage] [SAMLAuthenticationProvider] (default task-227) |default| Roles: [Basic]
Exemplo funcional:
Nela, você vê "Nome de usuário/Grupos" e o usuário é mapeado para o grupo netadmin.
05-Mar-2019 21:35:55,766 UTC INFO [vManage] [SAMLAuthenticationProvider] (default task-90) |default| AttributeMap: {UserName=[Tester@example.com], Groups=[netadmin]}
05-Mar-2019 21:35:55,766 UTC INFO [vManage] [SAMLAuthenticationProvider] (default task-90) |default| AttributeMap: {UserName=[Tester@example.com], Groups=[netadmin]}
05-Mar-2019 21:35:55,766 UTC INFO [vManage] [SAMLAuthenticationProvider] (default task-90) |default| Roles: [netadmin]
Como habilitar/verificar se o SSO funciona?
O log de depuração do recurso SSO pode ser ativado por estas etapas:
1. Navegue até https://<vManage_ip_addr:port>/logsettings.html
2. Selecione o log de SSO e ative-o como mostrado na imagem.
3. Uma vez Habilitado, pressione o botão Enviar.
- Os logs relacionados ao SSO são salvos no arquivo de log do vManage /var/log/nms/vmanage-server.log de particular interesse é a configuração "Grupos" para autorização de IDP. Se não houver correspondência, o usuário assume como padrão o grupo "Básico", que tem acesso somente leitura;
- Para depurar o problema de privilégio de acesso, verifique o arquivo de log e procure a string "SamlUserGroups". A saída subsequente deve ser uma lista de cadeias de caracteres de nomes de grupos. Um deles deve corresponder às configurações de grupo no vManage. Se nenhuma correspondência for encontrada, o usuário definiu como padrão o grupo "Básico".
Rastreador SAML
Uma ferramenta para exibir mensagens SAML e WS-Federation enviadas pelo navegador durante o logon único e o logoff único.
Complemento FireFox SAML-Tracer
Extensão do Chrome SAML-Tracer
Mensagem SAML de exemplo
Como fazer login no vManage ativado por SSO?
O SSO é apenas para login do navegador. Você pode direcionar manualmente o vManage para a página de login tradicional e ignorar o SSO para usar apenas o nome de usuário e a senha: https://<vmanage>:8443/login.html.
Qual algoritmo de criptografia é usado?
Atualmente, oferecemos suporte a SHA1 como algoritmo de criptografia. O vManage assina o arquivo de metadados SAML com o algoritmo SHA1, que os IdPs precisam aceitar. O suporte para SHA256 está chegando em versões futuras, que não temos suporte no momento.
Informações Relacionadas
Configurar logon único: https://www.cisco.com/c/en/us/td/docs/routers/sdwan/configuration/security/ios-xe-16/security-book-xe/configure-sso.html
Logon OKTA / Logout logs de trabalho anexados ao caso como referência.