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
BashAo 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.