Como sincronizar logout com sessão SSO ou do Navegador?

Cenário:

O Usuário 1 inicia um navegador e se conecta ao Fórum usando SSO, trabalha por um tempo e depois fecha o navegador.

O Usuário 2 inicia um navegador na mesma máquina e faz login no Fórum novamente usando SSO. O processo o leva a realizar o login completo com suas credenciais, mas ao entrar no fórum, ele está logado como o Usuário 1.

O Discourse permite definir o tempo limite da sessão para no mínimo uma hora. Isso significa que o usuário pode retornar ao computador dentro de uma hora, simplesmente fazer login e assumir a identidade do usuário anterior por meio de cookies.

Houve uma correção em 2016 para permitir que os cookies expirassem quando o navegador fosse fechado, mas essa alteração foi revertida.

Isso torna o software muito inseguro em um ambiente onde várias pessoas usam a mesma estação de trabalho, caso o navegador não esteja configurado para funcionar no modo privado.

Existe uma correção para isso?

Obrigado,

Peter

Mesma pergunta, mesma resposta:

Você pode verificar o código do commit acima, que foi revertido, e adaptá-lo para um plugin conforme suas necessidades.

Também é possível implementar uma integração de logout no seu sistema SSO, de modo que, quando um usuário fizer logout, ele chame o Discourse para encerrar todas as sessões existentes do mesmo usuário.

E não, isso não é considerado uma falha de segurança.

1 curtida

É triste que o código tenha sido revertido, pois ele tinha considerável valor em situações como esta.

Você poderia, por favor, indicar as chamadas do Discourse necessárias para encerrar as sessões?

Obrigado, Rafael

Há um guia prático sobre isso aqui:

3 curtidas