Git Product home page Git Product logo

jdbc-keycloak-user-storage's Introduction

Keycloak JDBC User Storage

Este projeto implementa um user storage para busca de usuários em um banco de dados com o Keycloak.

Documentação

A documentação sobre como implementar um user storage está nesta página.

Como usar

Artefato

O primeiro passo é gerar o pacote do projeto:

mvn clean package

Além do artefato padrão, será gerado um artefato na pasta ./.docker/providers.

Containers Docker

Na raiz do projeto há uma pasta chamada .docker, a qual contém um docker-compose que inicializa um container do Keycloak e um do MySQL.
A configuração do Keycloak no docker-compose usa o MySQL para armazenamento dos dados, e mapeia a pasta providers no diretório onde o Keycloak reconhece e instala os providers.
Para o Keycloak são configurados um realm (conceito do Keycloak equivalente a um tenant) chamado Provider, um client chamado provider, e o user federation que utiliza nosso artefato para buscar os usuários no banco de dados.
Para o MySQL é configurada uma base chamada keycloak, com alguns usuários pré-cadastrados.

Depois de gerado o pacote, basta iniciar o docker-compose:

docker-compose up -d

A inicialização leva um tempo, então é legal verificar os logs para ver quando tudo estiver pronto:

docker-compose logs -f keycloak

A inicialização estará completa quando um log como o abaixo for exibido:

INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990

Painel administrativo

O painel administrativo do Keycloak pode ser acessado no endereço abaixo:

http://localhost:8050

Ná pagina, clicar em Administration Console e utilizar como usuário: admin e senha: admin

Obter um token

No diretório .postman existe uma coleção do Postman. Basta importá-la e executar a request. Também é possível obter um token com o comando curl abaixo:

curl --location --request POST 'http://localhost:8050/auth/realms/Provider/protocol/openid-connect/token' \
--header 'Authorization: Basic cHJvdmlkZXI6NDMwNDFiZTctZDYxZC00OWQwLWJjZmYtODZhN2MyY2E2ZjAw' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'username=[email protected]' \
--data-urlencode 'password=123' \
--data-urlencode 'client_id=provider'

jdbc-keycloak-user-storage's People

Contributors

paulosalonso avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.