amirelemam / keycloak-poc

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Keycloak POC

Subindo o Keycloak

docker run --name keycloak -p 8081:8080 -d -e KEYCLOAK_USER=user -e KEYCLOAK_PASSWORD=change jboss/keycloak:6.0.1

Configuração passo a passo

  1. Criar realm poc
  2. Listar os endpoints para o realm poc
GET localhost:8081/auth/realms/poc/.well-known/uma2-configuration
  1. Criar um clientId do tipo client_credentials

    • Menu Clients
    • Create
      • Client ID: poc-client
      • Clicar em save
    • Em Client Protocol selecionar openid-connect
    • Em Access Type: selecionar confidential
    • Em Authorization Enabled selecionar ON
    • Em Valid Redirect URIs preencher com none
    • Clicar em save
  2. Criar uma role personalizada

    • Menu Roles
    • Clicar em Add Role
      • Em Role Name preencher com manage_system_parameters
  3. Criar um group personalizado

    • Menu Groups
    • Clicar em New
      • Em Name preencher com Supervisores
      • Na aba Role Mappings
        • Clicar em manage_system_parameters
        • Clicar em Add selected
  4. Liberar acesso para gerenciar os usuários

    • No menu Clients, em poc-client, acessar a aba Service Account Roles
    • Em Client Roles selecionar realm-management
    • Adicionar a role manager-users
  5. Obter um access token para o client

    • A secret está na aba Credentials do client
    POST localhost:8081/auth/realms/poc/protocol/openid-connect/token \
    grant_type=client_credentials \
    --user poc-client:<secret>
    
  6. Criar um usuário para o realm poc

    POST localhost:8081/auth/admin/realms/poc/users Authorization:"Bearer <ACCESS_TOKEN>" \
    enabled=true \
    email=poc@poc.com.br \
    username=Poc \
    firstName=Prova \
    lastName=Conceito \
    attributes:='{"phone":["11-1234-5678"], "address":"Av. Paulista, 1" }'
    
  7. Lista os usuários

    GET localhost:8081/auth/admin/realms/poc/users Authorization:"Bearer <ACCESS_TOKEN>"
    
  8. Atribuir uma senha ao usuário

    PUT localhost:8081/auth/admin/realms/poc/users/<USER_ID>/reset-password Authorization:"Bearer <ACCESS_TOKEN>" \
    type=password \
    value=123456 \
    temporary=true
    
  9. Lista os grupos

    GET localhost:8081/auth/admin/realms/poc/groups Authorization:"Bearer <ACCESS_TOKEN>"
    
  10. Vincular o usuário a um grupo

    PUT localhost:8081/auth/admin/realms/poc/users/<USER_ID>/groups/<GROUP_ID> Authorization:"Bearer <ACCESS_TOKEN>"
    
  11. Criar o client para o frontend

    • Menu Clients
    • Create
      • Client ID: poc-js
      • RootURL: http://localhost:5000
      • Client Protocol selecionar openid-connect
      • Clicar em save

Iniciando o servidor

npm install
npm start

Acesso

http://localhost:5000

Adendos

Autenticar manuamente com usuário e senha

http --form :8081/auth/realms/poc/protocol/openid-connect/token \
grant_type=password \
username=poc \
password=123456 \
-a poc-client:<secret>

Observações

  • Para multiempresa a ferramenta sugere a criação de diferentes realms.
  • É possivel configurar os themes de login no menu Realm Settings, aba Themes.
  • É possivel configurar os locales no menu Realm Settings, aba Themes.
  • É possível alterar a duração dos tokens no menu Realm Settings, aba Tokens.

About


Languages

Language:HTML 51.4%Language:JavaScript 40.8%Language:FreeMarker 6.8%Language:CSS 1.0%Language:Shell 0.0%