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
Aqui está o vídeo gravado nesta situação:
Isso não é bom. Acho que precisamos de mais informações.
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.
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.