Apicurio-studio: Bug: a configuração do ambiente de desenvolvimento causa um novo login a cada 5 segundos.

Criado em 5 jan. 2021  ·  13Comentários  ·  Fonte: Apicurio/apicurio-studio

Depois de seguir o URL abaixo, o servidor keycloak agora tenta fazer o login novamente uma vez a cada 5 segundos apenas acessando-o.
É muito trabalho de desenvolvimento, então estou resolvendo isso definindo a tentativa de login para 86.400 segundos (leva cerca de 30 segundos para fazer o login novamente). O que posso fazer para resolver o problema subjacente?

https://www.apicur.io/studio/docs/setting-up-a-development-environment

bug

Todos 13 comentários

Isso não é bom. Acho que precisamos de mais informações.

  • Qual sistema operacional e navegador você está usando? Você pode tentar outro (s) navegador (es)?
  • Qual é a saída para o console JS do navegador? Pode haver algumas informações úteis lá.
  • Existe alguma saída útil no console ng start quando isso acontece?

@mikisou Você pode me dar informações adicionais?

@EricWittmann
Obrigado.

Este é o meu ambiente:
SO: MacOS Catalina / Chrome 87.0.4280.88 (Versão oficial)
Firefox 84.0.1: Não reproduziu este bug
Safari 13.1.3: reproduziu este bug

Existem alguns problemas relatados no console do Chrome sobre o atributo SameSite para um cookie.
Parecia não haver saída útil no console para o aplicativo front-end.

OK, então parece que isso é específico do navegador Safari - certo? Eu não tenho um Mac, então não posso testar isso sozinho.

@ Apicurio / developers - alguém tem um Mac e pode tentar reproduzi-lo?

@EricWittmann Acho que esse problema vem da mudança do Chrome em seu comportamento padrão.

A partir da versão 80, o Chrome trata Cookie SameSite = Lax por padrão.
https://web.dev/samesite-cookies-explained/

Como você pode ver na captura a seguir, SameSite atributo KEYCLOAK_SESSION , SameSite = Lax é aplicado por padrão, o que significa que o cookie não pode ser lido no iframe.
Screen Shot 2021-01-15 at 20 14 55

Portanto, o Keycloak não consegue obter o KEYCLOAK_SESSION no cookie.
https://github.com/keycloak/keycloak/blob/3.4.3.Final/adapters/oidc/js/src/main/resources/login-status-iframe.html#L71

Como resultado, changed mensagem é enviada para a janela principal.
https://github.com/keycloak/keycloak/blob/3.4.3.Final/adapters/oidc/js/src/main/resources/login-status-iframe.html#L27

Em seguida, cai no processo de logout na janela principal.
https://github.com/keycloak/keycloak/blob/3.4.3.Final/adapters/oidc/js/src/main/resources/keycloak.js#L863

Enfim, tudo acontece no Keycloak ...

Eu me pergunto se isso seria resolvido simplesmente atualizando o keycloak.js está sendo usado para uma versão mais recente. Você poderia tentar obter uma versão mais recente disso aqui:

https://www.npmjs.com/package/keycloak-js

Acho que as versões mais recentes devem funcionar, apesar da versão mais antiga do Keycloak que temos em execução na nuvem.

Como login-status-iframe.html está hospedado em https://studio-auth.apicur.io/ , acho que substituir apenas keycloak.js não funcionará.

É necessário atualizar Keycloak no servidor para 8.0.2 ou posterior.

Você poderia verificar:
https://www.keycloak.org/2020/02/keycloak-802-released.html

Obrigado por descobrir tudo isso - muito apreciado. Vou ver o que posso fazer para atualizar o servidor de autenticação.

@EricWittmann
Você sabe se o problema ocorre se você usar o keyckloak 8.0.2 ou posterior?
https://github.com/Apicurio/apicurio-studio/blob/master/distro/docker-compose/keycloak/Dockerfile

Droga, perdi a noção dessa atividade. Não acho que haja razão para esperar que uma nova versão do Keycloak seja um problema para nós. Teremos apenas que testá-lo!

@EricWittmann
Eu testei com o keykloak 12.0.4 e parece estar funcionando bem até agora.

Precisarei encontrar tempo para atualizar a autenticação do studio.apicur.io para KC 12. Obrigado pela atualização.

Esta página foi útil?
0 / 5 - 0 avaliações