Skip to content

Connexion sans mot de passe

Activez la connexion par simple nom d'utilisateur dans Potato, sans mot de passe — pratique pour les démonstrations en cours, les études rapides et les tâches dont l'authentification est gérée par une plateforme de crowdsourcing.

Potato prend en charge l'authentification sans mot de passe pour les tâches d'annotation à faible enjeu, où la facilité d'accès prime sur la sécurité. Les annotateurs se connectent alors avec un simple nom d'utilisateur.

Vue d'ensemble

La connexion sans mot de passe est utile pour :

  • Mener des études d'annotation rapides avec des volontaires
  • Organiser des sessions d'annotation en interne
  • Tester des configurations d'annotation
  • Travailler avec des plateformes de crowdsourcing qui gèrent l'authentification de leur côté
  • Faire des exercices en cours ou des démonstrations

Configuration

Activez la connexion sans mot de passe avec require_password: false :

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

Méthodes d'authentification

Potato propose trois backends d'authentification, tous compatibles avec le mode sans mot de passe :

En mémoire (par défaut)

Les utilisateurs ne sont stockés qu'en mémoire. Les données sont perdues au redémarrage du serveur.

yaml
require_password: false
authentication:
  method: in_memory

Base de données

Les utilisateurs sont enregistrés dans une base de données :

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

SSO Clerk

Intégration avec Clerk pour l'authentification unique en entreprise :

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

Fonctionnement

Avec le mode sans mot de passe activé

  1. L'utilisateur arrive sur la page de connexion
  2. Il saisit uniquement son nom d'utilisateur
  3. Le système le crée ou l'authentifie sans vérification de mot de passe
  4. Il passe directement à l'annotation

Inscription des utilisateurs

En mode sans mot de passe :

  • Les nouveaux utilisateurs sont inscrits automatiquement à la première connexion
  • Seul le nom d'utilisateur est requis
  • Les autres données utilisateur (si elles sont configurées) sont toujours collectées

Points de sécurité

Le mode sans mot de passe n'offre qu'une sécurité minimale :

  • Aucune vérification d'identité : n'importe qui peut revendiquer n'importe quel nom d'utilisateur
  • Détournement de session : une session peut facilement être usurpée
  • Journal d'audit non fiable : les actions d'un utilisateur ne peuvent pas être vérifiées cryptographiquement

Usages recommandés :

  • Annotation en interne
  • Exercices en cours
  • Prototypage rapide
  • Plateformes avec authentification externe (Prolific, MTurk)

Déconseillé pour :

  • L'annotation de données sensibles
  • Les tâches d'annotation médicales ou juridiques
  • Les tâches qui exigent une identité d'annotateur vérifiée
  • Les études longues avec rémunération

Fichier de configuration des utilisateurs

Même en mode sans mot de passe, vous pouvez préinscrire des utilisateurs :

yaml
authentication:
  user_config_path: users.jsonl

users.jsonl :

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

Migration

Du mode avec mot de passe vers le mode sans mot de passe

  1. Modifiez la configuration :
    yaml
    require_password: false
  2. Les utilisateurs existants peuvent toujours se connecter, avec ou sans leur mot de passe

Du mode sans mot de passe vers le mode avec mot de passe

  1. Modifiez la configuration :
    yaml
    require_password: true
  2. Les utilisateurs déjà inscrits sans mot de passe devront s'inscrire à nouveau avec un mot de passe

Exemple complet

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"

Dépannage

Les utilisateurs n'arrivent pas à se connecter

Vérifiez que :

  1. require_password: false figure bien dans la configuration
  2. Le backend d'authentification est correctement initialisé
  3. Aucun autre réglage d'authentification n'entre en conflit

Les données utilisateur ne sont pas conservées

Avec le backend in_memory :

  • Les données utilisateur sont perdues au redémarrage du serveur
  • Passez au backend database pour les conserver

Erreurs de nom d'utilisateur en double

En mode sans mot de passe, un utilisateur qui tente de s'inscrire avec un nom déjà pris est simplement connecté en tant que cet utilisateur. C'est voulu, par souci de simplicité.

Pour aller plus loin

Pour les détails d'implémentation, consultez la documentation source.