Skip to content

Login sem senha

Habilite o login apenas com nome de usuário no Potato, sem senhas — ideal para demonstrações em sala de aula, estudos rápidos e tarefas que usam autenticação de plataformas externas de crowdsourcing.

O Potato oferece suporte à autenticação sem senha para tarefas de anotação de baixo risco, em que a segurança é menos crítica do que a facilidade de acesso. Isso permite que os anotadores façam login apenas com um nome de usuário, sem precisar de senha.

Visão geral

O login sem senha é útil quando você está:

  • Conduzindo estudos rápidos de anotação com voluntários
  • Realizando sessões internas de anotação em equipe
  • Testando configurações de anotação
  • Trabalhando com plataformas de crowdsourcing que lidam com a autenticação externamente
  • Executando exercícios ou demonstrações em sala de aula

Configuração

Habilite o login sem senha definindo require_password: false:

yaml
require_password: false
 
# Optional: Specify authentication method
authentication:
  method: in_memory  # Default

Métodos de autenticação

O Potato oferece suporte a três backends de autenticação, todos compatíveis com o modo sem senha:

Em memória (padrão)

Os usuários são armazenados apenas na memória. Os dados são perdidos quando o servidor é reiniciado.

yaml
require_password: false
authentication:
  method: in_memory

Banco de dados

Os usuários são persistidos em um banco de dados:

bash
export POTATO_DB_CONNECTION="sqlite:///users.db"
yaml
require_password: false
authentication:
  method: database

Clerk SSO

Integração com o Clerk para single sign-on empresarial:

bash
export CLERK_API_KEY="your_api_key"
export CLERK_FRONTEND_API="your_frontend_api"
yaml
authentication:
  method: clerk

Como funciona

Com o login sem senha habilitado

  1. O usuário acessa a página de login
  2. O usuário insere apenas seu nome de usuário
  3. O sistema cria ou autentica o usuário sem verificação de senha
  4. O usuário prossegue para a anotação

Registro de usuários

No modo sem senha:

  • Novos usuários são registrados automaticamente no primeiro login
  • Apenas o nome de usuário é obrigatório
  • Dados adicionais do usuário (se configurados) ainda são coletados

Considerações de segurança

O modo sem senha oferece segurança mínima:

  • Sem verificação de identidade: qualquer pessoa pode reivindicar qualquer nome de usuário
  • Sequestro de sessão: as sessões podem ser facilmente personificadas
  • Sem integridade da trilha de auditoria: as ações dos usuários não podem ser verificadas criptograficamente

Usos recomendados:

  • Anotação interna em equipe
  • Exercícios em sala de aula
  • Prototipagem rápida
  • Plataformas com autenticação externa (Prolific, MTurk)

Não recomendado para:

  • Anotação de dados sensíveis
  • Tarefas de anotação médica ou jurídica
  • Tarefas que exigem identidade verificada do anotador
  • Estudos de longa duração com incentivos

Arquivo de configuração de usuários

Mesmo no modo sem senha, você pode pré-registrar usuários:

yaml
authentication:
  user_config_path: users.jsonl

users.jsonl:

json
{"username": "annotator1"}
{"username": "annotator2"}
{"username": "admin", "role": "admin"}

Migração

De senha obrigatória para sem senha

  1. Atualize a configuração:
    yaml
    require_password: false
  2. Os usuários existentes ainda podem fazer login com ou sem a senha

De sem senha para senha obrigatória

  1. Atualize a configuração:
    yaml
    require_password: true
  2. Os usuários existentes sem senha precisarão se registrar com uma senha

Exemplo completo

yaml
annotation_task_name: "Quick Annotation Task"
 
# Enable passwordless login for easy access
require_password: false
 
# Use database backend to persist users
authentication:
  method: database
 
# Task configuration
data_files:
  - data/instances.json
 
item_properties:
  id_key: id
  text_key: text
 
annotation_schemes:
  - name: sentiment
    annotation_type: radio
    labels: [Positive, Negative, Neutral]
    description: "Select the sentiment"

Solução de problemas

Usuários não conseguem fazer login

Verifique se:

  1. require_password: false está definido na configuração
  2. O backend de autenticação foi inicializado corretamente
  3. Não há configurações de autenticação conflitantes

Dados do usuário não persistem

Se estiver usando o backend in_memory:

  • Os dados do usuário são perdidos ao reiniciar o servidor
  • Mude para o backend database para persistência

Erros de nome de usuário duplicado

No modo sem senha, os usuários que tentam se registrar com um nome de usuário existente simplesmente fazem login como esse usuário. Isso é intencional, para facilitar o uso.

Leitura adicional

Para detalhes de implementação, consulte a documentação de origem.