• Marcio Miranda

KEYCLOAK, o que você deveria saber sobre o assunto


Existe uma grande chance de você ter lido sobre o termo “Keycloak” em algum artigo de TI ou até mesmo em alguma descrição de vaga no Linkedin, certo? Mas a pergunta é: Você sabe do que se trata?


Nesse texto vamos falar um pouco sobre essa ferramenta que vem ganhando espaço nas grandes companhias no atual cenário.


De uma forma bem resumida, o Keycloak é uma ferramenta criada pela empresa Red Hat e que faz o gerenciamento de credenciais de usuários e de suas permissões.

É o famoso “cara, crachá” ou então o “porteiraço do Enem”.


Pegando esse segundo exemplo, é como se o Keycloak fosse realmente o porteiro do Enem. A primeira coisa que ele faria quando um candidato chega ao seu local de prova, é conferir se as credenciais daquele candidato são válidas (trazendo pro universo de TI, seria uma validação de usuário/senha) e depois verifica se o usuário está dentro do tempo limite de entrada para saber se tem permissão ou não para adentrar o local de prova.


“Simples”, não é?


Quantas e quantas vezes nós já não participamos de projetos onde tínhamos a tabelinha de “usuários”, uma tabela de “funcionalidades” e um relacionamento entre elas? Depois disso tínhamos que implementar toda a questão do cadastro desses dados e a aplicação deles no nosso sistema. Isso demandava tempo, recurso e, principalmente, dinheiro! O Keycloak, como uma ferramenta “Open Source”, vem para tirar essa demanda do time de desenvolvimento.


O Keycloak pode também ser o repositório oficial de usuários de uma companhia, seja através de um cadastro de todos ou usuários, ou de um vínculo com uma base de dados já existente, como o ldap, por exemplo.


Alguns conceitos básicos da ferramenta são importantes para entendermos o seu funcionamento:


· Realm: É um grande repositório de usuários. É a parte principal das configurações dos dados.

· Client: São os “clientes” ou “aplicações” configuradas dentro do nosso realm.

· Role: É o conjunto de permissões que podem ser configuradas tanto para o client (quando queremos permissões específicas por clients) ou para o realm (quando queremos permissões independentes de clients).

· Group: São grupos que podemos criar com uma série de configurações para não precisarmos repetí-las para cada usuário.

Ex.: Grupo Departamento Pessoal.

· User: Essa tá fácil né? Aqui podemos cadastrar usuários e todas as suas configurações, ou simplesmente vincular a um grupo criado previamente.


Além desses conceitos mais básicos, tem mais 2 que vale a pena comentarmos aqui:


· Identity Providers: São provedores de identidade externos a companhia para que o usuário possa fazer seu próprio cadastro, como por exemplo, login através do Google, Facebook, Linkedin, etc.

· User Federation: Base de dados externas onde podemos vincular com o Keycloak.

Exemplo, se a companhia já possui uma base ldap com todos os usuários, é possível conectar com o Keycloak e automaticamente obter todos esses usuários sem que seja necessário o cadastro individual (e manual) deles.


Para ilustrar um pouco mais o funcionamento do fluxo das credenciais e gerenciamento das permissões, podemos observar a imagem abaixo:



Olhando a figura acima, podemos ver que do ponto 3 ao ponto 4, falamos sobre um Token de autenticação. Esse token JWT é uma forma criptografada de transitar informações como os dados do usuário que se autenticou, as permissões que ele possui, etc.


Esse é o token que vai transitar para cada chamada de serviço que faremos. O serviço, com a posse desse token, faz a decriptografia e verifica se o usuário tem a permissão necessária para acessar tal funcionalidade.


Legal, né?


Pensando em uma integração entre o Keycloak e um projeto Java Spring, toda a configuração é realizada apenas em um arquivo de propriedade, onde nele devemos configurar uma série de informações, como por exemplo:



E aí, gostaram? O tema ficou menos nebuloso?


Se vocês se interessarem nós podemos disponibilizar um projeto no github com a integração Keycloak + Java Spring para vocês.

Nos mande uma mensagem 😊


Ah, e se quiserem saber mais sobre a ferramenta, é só entrar na página oficial deles que é: https://www.keycloak.org/

Marcio Miranda – Software Developer na Verity



91 visualizações0 comentário

Posts recentes

Ver tudo