Autenticação
Autenticação
Entrar no Chinaski, como as sessões funcionam e o que é preciso para invalidar uma. Tudo aqui cobre a aplicação de admin; o acesso de API por máquinas é um mecanismo separado, indicado ao final. (Esta página se atém a login e sessões; o modelo de permissões é coberto por uma página própria.)
Fazendo login
Você entra com um nome de usuário e senha na tela de login. Algumas coisas que vale saber estão trabalhando por trás dos panos:
- Envios vazios são rejeitados antes de qualquer outra coisa acontecer.
- A verificação de senha leva o mesmo tempo quer o nome de usuário exista ou não, então o site nunca sugere quais contas são reais.
- Uma conta suspensa é recusada com a mesma mensagem genérica (a suspensão é imediata; veja abaixo).
- Cada login bem-sucedido cria uma sessão nova do zero (nada é herdado da sessão anterior), e o login é registrado no histórico de logins que os admins podem consultar.
Se você marcar Remember me, a sessão dura 30 dias em vez das 8 horas habituais.
Bloqueios
Falhar repetidamente no login a partir do mesmo endereço IP dispara bloqueios progressivos:
- 5 falhas consecutivas → bloqueio de 60 segundos
- 10 → 5 minutos
- 20 → 30 minutos
Durante o bloqueio, todas as novas tentativas são rejeitadas de imediato e a espera restante é exibida. Os contadores sobrevivem a reinicializações e se zeram após 10 minutos de inatividade. Esses limites são fixos e não podem ser alterados na área de admin. O que os admins podem configurar (Settings → Security, limite de falhas) é um alerta separado: quando as tentativas falhas ou bloqueadas em qualquer janela de 10 minutos atingem esse número, um aviso é gravado no log de eventos.
Sessões
Uma sessão é ancorada em dois lugares ao mesmo tempo: um cookie assinado, seguro e HttpOnly, e um registro de sessão no servidor contendo um token de sessão aleatório com hash, endereço IP, identificador do navegador e expiração.
Como o servidor mantém um registro, as sessões são validadas a cada requisição, não apenas no login:
- Mudanças de papel têm efeito imediato. Seu papel é relido do registro da conta a cada requisição, então um rebaixamento ou promoção não exige novo login.
- Excluir uma conta encerra suas sessões imediatamente.
- Um token expirado ou revogado encerra a sessão na hora, com “Your session has been revoked.”
- As sessões expiram por conta própria após 8 horas (ou 30 dias com Remember me). Sessões SSO duram sempre 8 horas.
- Todos os formulários do admin incluem proteção CSRF, então links ou páginas de terceiros não conseguem enviar ações de conteúdo em seu nome.
Saindo e invalidando sessões
- Sign out encerra a sessão atual: o registro no servidor é excluído e o cookie expira na hora. A página de logout funciona mesmo quando você já saiu, então nunca leva a um beco sem saída.
- Log out everywhere (na página da sua conta) invalida todas as sessões, exceto a que você está usando agora, para que você não seja expulso da sua própria aba atual; os outros dispositivos e navegadores são desconectados.
- Suspension (ação de admin) invalida as sessões desse usuário imediatamente, sem esperar o próximo login.
- Alterar a senha de alguém (ação de admin) também exclui todas as sessões dessa pessoa, então a nova senha vale a partir do próximo login.
Expiração de senha
Se a expiração de senha estiver configurada (Settings → Security), a verificação ocorre no login: quando sua senha é mais antiga que o número de dias configurado, você é levado direto à página de troca de senha com um aviso. Até você trocá-la, toda outra página do admin te devolve para lá; as únicas páginas que continuam acessíveis são a própria troca de senha e o logout.
Papéis e portões de acesso
O que um usuário autenticado pode fazer é governado pelo sistema de permissões; veja a página de Permissões. O mesmo portão que verifica as permissões também revalida a sessão a cada vez, então a revogação de acesso sempre acontece na próxima requisição, e não em algum novo login posterior.
Redefinição de senha
Os tokens de redefinição de senha (onde configurados) expiram todos em no máximo 7 dias; tokens usados ou expirados são limpos automaticamente. Como alternativa, um admin pode definir uma nova senha para você diretamente; isso também invalida suas sessões imediatamente.
Acesso de máquina (API)
Requisições enviadas com um header de chave de API dispensam totalmente a sessão do navegador: elas são autenticadas pela chave, e o header deve apresentar permissão de escrita para qualquer requisição que modifique conteúdo. Chaves somente leitura têm acesso apenas à busca de dados; uma isenção de CSRF se aplica somente a essas requisições com chave de API, nunca a sessões de navegador.
Primeira inicialização
Uma instalação nova cria uma conta de admin com uma senha provisória e redireciona todas as requisições para uma página de configuração inicial até que uma senha real seja definida. Depois que a senha é definida (12+ caracteres com maiúscula, minúscula e dígito), a página de configuração desaparece de vez.