KEYCLOAK, o que vocĂȘ deveria saber sobre o assunto
- Alexandro Barsi
- 3 de mai. de 2022
- 3 min de leitura

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