Skip to content

パスワードなしログイン

クイックアノテーション研究やテストのための簡略化された認証。

パスワードなしログイン

Potatoは、セキュリティよりもアクセスの容易さが重要な低リスクのアノテーションタスク向けにパスワードなし認証をサポートしています。これにより、アノテーターはパスワードなしでユーザー名だけでログインできます。

概要

パスワードなしログインは以下の場合に有用です:

  • ボランティアによるクイックアノテーション研究の実施
  • 社内チームのアノテーションセッション
  • アノテーション設定のテスト
  • 外部で認証を処理するクラウドソーシングプラットフォームとの連携
  • 授業演習やデモの実施

設定

require_password: falseを設定してパスワードなしログインを有効にします:

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

認証方式

Potatoは3つの認証バックエンドをサポートしており、すべてパスワードなしモードに対応しています:

インメモリ(デフォルト)

ユーザーはメモリにのみ保存されます。サーバー再起動時にデータは失われます。

yaml
require_password: false
authentication:
  method: in_memory

データベース

ユーザーはデータベースに永続化されます:

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

Clerk SSO

エンタープライズシングルサインオン向けのClerk統合:

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

仕組み

パスワードなしが有効な場合

  1. ユーザーがログインページにアクセスする
  2. ユーザーがユーザー名のみを入力する
  3. システムがパスワード検証なしでユーザーを作成または認証する
  4. ユーザーがアノテーションに進む

ユーザー登録

パスワードなしモードでは:

  • 新しいユーザーは初回ログイン時に自動登録される
  • ユーザー名のみが必要
  • 追加のユーザーデータ(設定されている場合)は引き続き収集される

セキュリティに関する考慮事項

パスワードなしモードは最小限のセキュリティを提供します:

  • 本人確認なし:誰でも任意のユーザー名を使用できる
  • セッションハイジャック:セッションは容易になりすまし可能
  • 監査証跡の完全性なし:ユーザーの操作を暗号学的に検証できない

推奨される用途:

  • 社内チームのアノテーション
  • 授業演習
  • クイックプロトタイピング
  • 外部認証のあるプラットフォーム(Prolific、MTurk)

推奨されない用途:

  • 機密データのアノテーション
  • 医療または法的アノテーションタスク
  • アノテーターの本人確認が必要なタスク
  • インセンティブのある長期研究

ユーザー設定ファイル

パスワードなしモードでも、ユーザーを事前登録できます:

yaml
authentication:
  user_config_path: users.jsonl

users.jsonl:

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

移行

パスワード必須からパスワードなしへ

  1. 設定を更新する:
    yaml
    require_password: false
  2. 既存ユーザーはパスワードありでもなしでもログイン可能

パスワードなしからパスワード必須へ

  1. 設定を更新する:
    yaml
    require_password: true
  2. 既存のパスワードなしユーザーはパスワードを設定して登録し直す必要がある

完全な例

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"

トラブルシューティング

ユーザーがログインできない

以下を確認してください:

  1. 設定にrequire_password: falseが設定されている
  2. 認証バックエンドが適切に初期化されている
  3. 競合する認証設定がない

ユーザーデータが永続化されない

in_memoryバックエンドを使用している場合:

  • サーバー再起動時にユーザーデータは失われる
  • 永続化にはdatabaseバックエンドに切り替える

重複ユーザー名エラー

パスワードなしモードでは、既存のユーザー名で登録しようとするユーザーは単にそのユーザーとしてログインされます。これはアクセスの容易さのための仕様です。

関連情報

実装の詳細については、ソースドキュメントを参照してください。