Introdução

Aprenda como utilizar o Keycloak em ambiente local baseado no Docker com o objetivo de executar a implementação de proteção de acesso a recursos nos microsserviços baseados no Devprime.

O Keycloak é uma plataforma para gestão de identidade com suporte a segurança em aplicativos e microsserviços em processos de single sign-on with Identity, Access Management oferecendo autenticação e autorização integrados a plataforma Devprime. Essa integração é feita pelo adapter de Security.

Siga os passos abaixo para preparar o ambiente local do Keycloak com as cofigurações básicas para habilitar os testes de integração local com o mecanismo de segurança.

  1. Inicialize o container do Keycloak utilizando o comando disponibilizado na documentação do Docker.
  2. Abra a url do Keycloak em http://localhost:8080 e visualize o portal do Keycloak.
  3. Efetue o login informando o usuário ‘admin’ e senha ‘admin’.
  4. Crie um novo Realm e defina um nome. Neste exemplo utilizaremos ‘devprime’.

Welcome to Keycloak

  1. Defina algumas configurações iniciais para permitir o cadastro de usuário e utilização do email no login. Para encontra essa configuração vá ao Realm “Devprime” e localize o menu ‘Realm settings’.

a) Localize o menu “Login” e entre na opção “Login screen customization” e altere.

Welcome Keycloak

b) Localize a opção “Email settings” e altere.

Welcome Keycloak

  1. Nesse momento nós criaremos um “Client” para permitir acesso do microsserviço ao Keycloak. No menu principal localize a o item “Clients” e escolha a opção “Create client”.

Welcome Keycloak

  1. Efetue uma configuração inicial informando o “Client ID” e demais configurações conforme General Settings e Capability config. Em nosso exemplo utilizamos o nome “myapp” para ClientID e alteraremos o Client authentication e Implicit flow.

Primeiro passo da configuração

Welcome Keycloak

Segundo passo da configuração

Welcome Keycloak

  1. Para permitir o redicionamento de url entre o Keycloak e o microsserviço é necessário cadastrar urls validas.

a) Se estiver com a tela aberta do passo anterior localize a opção “Access settings”
b) Adicione a url “https://localhost:5001/signin-oidc” na opção Valid redirect URIs.
c) Essa mesma tela está disponivel no menu principal em “Clients” / “myapp”.

Welcome Keycloak

  1. Para obter as credenciais de integração do microsserviço com o Keycloak vá ao menu “Clients” e depois entre em “myapp” para localizar a aba “Credentials”. Copie a chave secret para uso na sua aplicação.

Welcome Keycloak

Essa configuração inicial irá permitir iniciar os primeiros testes na confguração de seguraça no microsserviços. O Keycloak oferece diversas opções de fluxos de autenticação.

Ao final lembre das parâmetros utilizados e/ou obtidos na configuração do keycloak para utilização no microsserviço. O Logout url abaixo é um exemplo retornando o redirect para localhost

Uma outra opção importante a ser configurada é “Valid redirect URIs” que define as url autorizadas. Em nosso cenário estamos utilizando o localhost no ambiente local. Você deve cadastrar todas urls ou pode utilizar o exemplo “https://localhost:5001/*”.

Item Parâmetro
Domain https://localhost:8080/auth/realms/devprime
ClientID Seu ClientID
ClientSecret Your Secrets
LogoutUri https://localhost:8080/auth/realms/devprime/protocol/openid-connect/logout?redirect_uri=https%3A%2F%2Flocalhost%3A5001
Valid redirect URIs https://localhost:5001/signin-oidc

Erro comun:

  • Verificar o nome do ClientID e a credencial
[ERR][Web]["HTTP"][System.Exception]["Microsoft.AspNetCore.Authentication"]
["An error was encountered while handling the remote login." "An error was encountered while handling the remote login.
Message contains error: 'unauthorized_client', error_description: 'Invalid client or Invalid client credentials', error_uri: 'error_uri is null'."]

Próximos passos:

Última modificação September 2, 2023 (c87f0320)