Olá!

Em ambientes corporativos, muitas vezes surge a necessidade de controlar de forma mais rígida o tempo de sessão dos usuários. No caso do Nextcloud, isso normalmente aparece quando o cliente quer garantir que, após determinado período sem atividade, o usuário seja forçado a se autenticar novamente.

Nos últimos dias, precisei analisar esse comportamento em detalhes e aproveitei para documentar aqui, no estilo direto que sempre publico no blog, como o Nextcloud realmente trata as sessões e quais parâmetros interferem nesse fluxo.


Como o Nextcloud mantém a sessão ativa

A primeira coisa importante: não basta olhar a documentação e assumir que o comportamento será óbvio. Assim como já acontece em outros componentes do Nextcloud, alguns parâmetros interagem entre si e geram efeitos que não são tão evidentes à primeira vista.

Os três principais elementos que controlam o ciclo da sessão são:

1. session_lifetime

É o tempo máximo que a sessão pode permanecer ativa sem atividade do usuário.

Porém, existe um detalhe que costuma confundir administradores:
O Nextcloud envia uma requisição periódica (heartbeat) enquanto a aba do navegador está aberta. Esse heartbeat é considerado atividade, então a sessão não expira enquanto o usuário mantiver o Nextcloud aberto, mesmo sem fazer nada.

Ou seja: deixar a aba parada não equivale a inatividade.


2. session_keepalive

Esse parâmetro controla justamente o heartbeat.

Se estiver como true (padrão), o Nextcloud renova a sessão silenciosamente.

Quando configurado como false, o heartbeat é desativado — e aí sim o session_lifetime passa a valer “na prática”.
Com isso, uma aba parada não renova a sessão e o Nextcloud expira após o tempo configurado.


3. auto_logout

Força o logout mesmo que existam requisições de background acontecendo.

O Nextcloud tenta evitar desconectar usuários que estão apenas lendo algo (há uma verificação simples de interação do mouse), mas se não houver atividade real, o logout acontece.


Configuração para expirar sessão após 30 minutos

Para um comportamento realmente rígido — expirar após 30 minutos sem uso — a combinação recomendada é:

'session_lifetime' => 30 * 60,
'remember_login_cookie_lifetime' => 0,
'session_keepalive' => false,
'auto_logout' => true,

Nesse cenário:

  • o usuário tem 30 minutos de janela;
  • não existe “lembrar login”;
  • a aba parada não renova a sessão;
  • e o logout acontece mesmo com tráfego interno do cliente.

Esse é um comportamento muito mais próximo do esperado em ambientes de segurança reforçada.

Considerações finais

O Nextcloud oferece bastante flexibilidade para controle de sessão, mas é preciso entender como cada parâmetro interfere no comportamento real. O simples ajuste de session_lifetime não garante expiração se o heartbeat continuar ativo.

Documentei aqui porque esse tipo de detalhe costuma passar despercebido e muitas vezes gera a impressão de que “o Nextcloud não respeita o tempo de sessão”. Na prática, ele respeita — mas depende da combinação correta dos ajustes.

Deixe um comentário

Tendência