Infraestrutura TI

Configurando Autenticação de 2 Fatores No Keycloak

Neste artigo, vamos mostrar como configurar para que sempre um usuário faça login ou forneça sua autenticação de 2 fatores por APP. Caso queira ver como habilitar também por SMS ou por e-mail, deixe nos comentários para que possamos atender a essa demanda.

Pré-requisitos

Para este artigo, partimos do ponto em que o Keycloak já esteja rodando em produção. Caso não seja o caso, mais abaixo vamos mostrar como subir rapidamente uma instância de desenvolvimento usando Docker. Também é necessário que já tenha um realm criado. Caso não tenha feito, recomendamos: Como configurar um Realm e Cliente no Keycloak.

Como rodar o Keycloak via Docker

Caso não tenha o Keycloak rodando, vamos usar o Docker para subir um ambiente de desenvolvimento. No comando abaixo, vamos subir a última versão do Keycloak na porta 8080, definindo o login e senha como codeinloop. Além disso, estamos iniciando ele em modo primeiro plano, ou seja, a execução ficará vinculada ao terminal, mostrando logs e afins. Adicione o parâmetro -d ou --detach para executar o contêiner em segundo plano e imprima o ID do contêiner.

docker run -p 8080:8080 -e KEYCLOAK_ADMIN=codeinloop -e KEYCLOAK_ADMIN_PASSWORD=codeinloop quay.io/keycloak/keycloak:latest start-dev
Bash

Ao final da execução, o endereço do Keycloak localmente será: http://localhost:8080/

Configurando politicas do OTP

Por padrão, o Keycloak vai configurar a senha descartável ou senha de uso único (em inglês: One-time Password, abreviado OTP) com o tipo baseado em tempo. Porém, na tela: Authentication -> Policies -> OTP Policy, podemos fazer outras configurações como algoritmo de hash, tamanho da senha, entre outros formatos. Abaixo temos uma tela na versão 24.0.4.

Configurando Obrigatoriedade do 2FA

O Keycloak já possibilita que o usuário acesse o endereço da conta dele e ative a autenticação de 2 fatores. Porém, não queremos que isso seja algo opcional para o usuário, e é nesse sentido que vamos aplicar nossa configuração.

Para essa configuração, temos duas formas:

Configuração Via Required actions

No menu Authentication, em “Required Actions”, podemos simplesmente marcar “Configure OTP” como ação padrão.

Com isso, novos usuários e aqueles que tiverem como ação “Configurar OTP” verão a tela de configuração conforme abaixo. Porém, usuários já existentes não terão a obrigatoriedade da configuração. Na etapa 2 dessa configuração, mostramos como tratar isso.

Configurando browser flows para 2FA

Ainda no menu Authentication, porém agora em “Flows”, vamos abrir o fluxo de navegador (browser) e descer até o item “Browser – Conditional OTP”, que deve estar como “Condicional”. Queremos que ele esteja como “Obrigatório”.

Ao final dos dois passos acima, seu usuário verá na tela de cadastro ou login algo similar a isso. Lembrando, esta é só via APP. Caso queira ver por SMS ou e-mail, basta nos informar via comentários.

Conclusão

Ao final dessa configuração, seu usuário poderá cadastrar e usar a autenticação de 2 fatores pelos apps: FreeOTP, Google Authenticator ou Microsoft Authenticator. O que achou da configuração? Já conhecia? Usa o Keycloak com AD? Neste artigo, mostramos como integrar o LDAP (AD) no Keycloak 22.0.3. Como integrar o LDAP (AD) no Keycloak 22.0.3.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.