Introdução
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.
- Inicialize o container do Keycloak utilizando o comando disponibilizado na documentação do Docker.
- Abra a url do Keycloak em http://localhost:8080 e visualize o portal do Keycloak.
- Efetue o login informando o usuário ‘admin’ e senha ‘admin’.
- Crie um novo Realm e defina um nome. Neste exemplo utilizaremos ‘devprime’.
- 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.
b) Localize a opção “Email settings” e altere.
- 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”.
- 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
Segundo passo da configuração
- 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”.
- 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.
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)