Pesquisa de site

Como integrar Keycloak SSO com Duo 2FA ao vCloud


Este artigo é um relato em primeira mão de testes baseados em laboratório para configurar Keycloak SSO com Duo 2FA no vCloud Director da VMware. Todos os testes e documentação foram concluídos pelo próprio Joe Benga do PhoenixNAP. Joe é nosso arquiteto corporativo confiável para tecnologias de nuvem, infraestrutura e rede.

Passei a gostar do Keycloak como produto. Acho que é uma solução de gerenciamento de identidade e acesso (AMS) de origem forte.

Eu queria poder aproveitar o Keycloak em meu laboratório para o vCloud Director (vCD) da VMware e testar a integração do Active Directory (AD) com suporte à autenticação de dois fatores (2FA).

Neste relato em primeira mão, listo as etapas que executei em um ambiente de laboratório para fornecer integração do Security Assertion Markup Language (SAML) com o Keycloak em nível organizacional. Além disso, explico como forneço Duo Security 2FA para o portal frontal.

Como sempre, essas são apenas etapas básicas. Tenha em mente a segurança e as práticas recomendadas para sua empresa.

Capa de chave

Para este experimento, temos a sorte de o Keycloak ter um pacote docker pré-construído para iniciar tudo.

Com alguns comandos simples, consegui colocar um produto principal em funcionamento em uma máquina virtual (VM) Centos 7. Nesse ponto, decidi que, em vez de executar tudo de forma independente, usaria um contêiner Postgres. Para seu experimento, você pode decidir o que precisa para seu próprio laboratório, com diferentes opções fornecidas no link de informações abaixo. Adicionei um código de cores para mostrar como os comandos estão relacionados entre si.

Para informações completas: https://hub.docker.com/r/jboss/keycloak/

Pré-requisitos: Docker CE, configurações de Firewall (se necessário)

  1. Crie uma rede de usuários compartilhada para banco de dados e contêiner Keycloak
    docker network create keycloak-network
  2. Inicie o DB Container (opcional e optei pelo Postgres)
    docker run -d --name postgres --net keycloak-network -e POSTGRES_DB=keycloak -e POSTGRES_USER=keycloak -e POSTGRES_PASSWORD=password postgres
  3. Inicie o Keycloak
    docker run -p 8080:8080 --name keycloak --net keycloak-network -e KEYCLOAK_USER=nome de usuário -e KEYCLOAK_PASSWORD=senha jboss/keycloak
  4. Depois de concluir essas etapas, você poderá fazer login no Keycloak em (nome de usuário e senha são os que você definiu no texto verde)
    http://ip_addr:8080/auth/admin/

Observação: para uso em produção, você deve considerar o uso de um serviço seguro de armazenamento secreto para lidar com credenciais passadas ao contêiner.

Configuração do Keycloak vCloud Director

  1. Crie um novo domínio com base no nome da sua organização vCloud.
    Selecione a seta suspensa ao lado de Mestre e selecione Adicionar domínio. Observação: se você não pretende aproveitar o SSL depois que seu domínio for criado, navegue até a guia de login e defina Exigir SSL como nenhum
  2. Enquanto estiver no Keycloak, crie um usuário local para usar como teste. (Mais tarde, usaremos um usuário do Active Directory.) Em nosso domínio, no painel esquerdo, navegue até Gerenciar > Usuários. No painel direito, selecione Adicionar usuário
  3. Insira as informações do usuário. Certifique-se de incluir um endereço de e-mail, pois especificaremos o e-mail como o formato de ID do nome neste registro. Em seguida, selecione Salvar

  1. Crie uma senha para o usuário. Navegue até a guia Credenciais. Digite e confirme a nova senha e desmarque Temporária. Em seguida, clique em Redefinir senha
  2. Agora que temos seu domínio e usuário, precisaremos obter os metadados da sua organização. Faça login em sua organização. Navegue até Administração no painel esquerdo em Configurações > Federação e selecione o link Metadados. Faça download do arquivo spring_saml_metadata.xml . Este arquivo nos fornecerá o certificado e o arquivo de configuração que pode ser facilmente importado para a configuração do cliente Keycloak

  1. No Keycloak, navegue até o painel esquerdo em Configurar > Clientes e selecione criar no painel direito
  2. Clique em Selecionar arquivo e importe o spring_saml_metadata.xml que acabou de ser baixado. Selecione Salvar
  3. Navegue até a guia Instalação e na Opção de formato: selecione SAML Metadata IDPSSODescriptor e copie ou baixe o texto que aparece na caixa de diálogo

  1. No vCD, navegue até Administração. Em seguida, no painel esquerdo Configurações > Federação selecione Usar provedor de identidade SAML e copie ou faça upload do SAML Metadata IDPSSODescriptor informações de cima. Em seguida, clique em aplicar. Observação: dependendo de como você está fazendo sua rede e configuração, pode ser necessário ajustar manualmente as informações de IP no XML de metadados
  2. Importe o usuário Keycloak. No painel direito, em Membros > Usuários. Selecione Importar ícone de usuários. Em seguida, insira o endereço de e-mail do usuário que criamos acima e selecione a função vCD desejada. Observação: durante esta etapa, também incluo o e-mail do usuário do Active Directory que usarei posteriormente.

  1. Faça login na organização vCloud Director e seremos redirecionados para a tela de login do Keycloak Realm.

Agora temos nosso aplicativo Identity Manager que fornece autenticação para nosso portal vCloud Director. A seguir, sincronizaremos com o Active Directory subjacente a esta configuração por meio de um proxy Duo e mostraremos como aproveitar o 2FA. Também mostrarei como adicionar OTP a qualquer usuário para aproveitar rapidamente a autenticação do Google.

Integrando Duo ao Keycloak

Pré-requisitos:

  • Active Directory já em execução
  • Duo Auth Proxy em execução (https://duo.com/docs/authproxy-overview) e conectado ao Active Directory

Nota: Minha configuração de proxy Duo

  1. Em nosso domínio, no painel esquerdo, navegue até Configurar > Federação de usuários. No painel direito, adicione um provedor LDAP .
  2. Defina seu Modo de edição: Fornecedor: Active Directory (isso ocorre porque meu proxy Duo está conectado ao Win2012 AD), URL de conexão, DN do usuário, Tipo de autenticação, DN de vinculação, Credenciais de vinculação, Escopo de pesquisa de conexão: subárvore ( a menos que você esteja trabalhando no mesmo nível), Política de Cache: Sem Cache (queremos que a solicitação chegue ao proxy para cada solicitação)

  1. Selecione Salvar e, em seguida, selecione Sincronizar: Todos os usuários
  2. Se você não pré-adicionou seu usuário Duo, adicione-o agora; repita a Etapa 14.
  3. Na tela de login do vCD, use o e-mail da conta de apoio do AD que está aproveitando o Duo. Observe que a tela de login não exibirá nenhum aviso de que está aguardando aprovação da 2FA. A tela parecerá travada até que você aprove seu dispositivo de hardware 2FA.

Adicionando senha de uso único (OTP)

Use este processo para adicionar um OTP rapidamente.

  1. Em nosso domínio, no painel esquerdo, navegue até Configurar > Autenticação. Selecione a Política OTP e defina sua configuração. Observação: pode ser necessário ajustar sua janela antecipada para acomodar configurações de horário incompatíveis em seus servidores.

  1. No painel esquerdo, navegue até Gerenciar > Usuários e selecione o usuário que criamos na Etapa 6.
  2. Na guia Detalhes , na configuração Ações obrigatórias do usuário selecione Configurar OTP e selecione Salvar

  1. Faça login no vCD com este usuário. Antes de podermos acessar o vCloud Director, precisamos configurar um autenticador 2FA. Isso pode ser feito na tela mostrada abaixo.

  1. Você pode aproveitar qualquer aplicativo OTP, como Duo ou Google Authenticator. Depois de verificar, você será direcionado para sua organização VCD.
>

Na próxima vez que você fizer login, será apresentado o seguinte prompt:

Digite seu código no aplicativo e você estará pronto para prosseguir.

Artigos relacionados