免密登入
簡化的認證方式,用於快速標註研究和測試。
Potato 支援免密認證,用於安全性不如易用性重要的低風險標註任務。這允許標註者僅使用使用者名稱即可登入,無需密碼。
概述
免密登入適用於以下場景:
- 與志願者進行快速標註研究
- 進行內部團隊標註會議
- 測試標註配置
- 與外部處理認證的眾包平臺配合
- 進行課堂練習或演示
配置
通過設定 require_password: false 啟用免密登入:
yaml
require_password: false
# Optional: Specify authentication method
authentication:
method: in_memory # Default認證方法
Potato 支援三種認證後端,均相容免密模式:
記憶體模式(預設)
使用者僅儲存在記憶體中。伺服器重啟時資料丟失。
yaml
require_password: false
authentication:
method: in_memory資料庫
使用者持久化到資料庫:
bash
export POTATO_DB_CONNECTION="sqlite:///users.db"yaml
require_password: false
authentication:
method: databaseClerk SSO
與 Clerk 整合實現企業單點登入:
bash
export CLERK_API_KEY="your_api_key"
export CLERK_FRONTEND_API="your_frontend_api"yaml
authentication:
method: clerk工作原理
啟用免密後
- 使用者訪問登入頁面
- 使用者只輸入使用者名稱
- 系統建立或認證使用者,無需密碼驗證
- 使用者進入標註
使用者註冊
在免密模式下:
- 新使用者在首次登入時自動註冊
- 只需要使用者名稱
- 額外使用者資料(如果配置了)仍會收集
安全注意事項
免密模式提供最低限度的安全性:
- 無身份驗證:任何人都可以聲稱任何使用者名稱
- 會話劫持:會話可以被輕鬆冒充
- 無審計追蹤完整性:使用者操作無法被加密驗證
推薦用於:
- 內部團隊標註
- 課堂練習
- 快速原型設計
- 有外部認證的平臺(Prolific、MTurk)
不推薦用於:
- 敏感資料標註
- 醫療或法律標註任務
- 需要驗證標註者身份的任務
- 有激勵的長期研究
使用者配置檔案
即使在免密模式下,你也可以預註冊使用者:
yaml
authentication:
user_config_path: users.jsonlusers.jsonl:
json
{"username": "annotator1"}
{"username": "annotator2"}
{"username": "admin", "role": "admin"}遷移
從需要密碼遷移到免密
- 更新配置:
yaml
require_password: false - 現有使用者可以繼續使用或不使用密碼登入
從免密遷移到需要密碼
- 更新配置:
yaml
require_password: true - 現有的免密使用者需要使用密碼重新註冊
完整示例
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"故障排除
使用者無法登入
檢查:
- 配置中是否設定了
require_password: false - 認證後端是否正確初始化
- 是否有衝突的認證設定
使用者資料未持久化
如果使用 in_memory 後端:
- 使用者資料在伺服器重啟時丟失
- 切換到
database後端以實現持久化
重複使用者名稱錯誤
在免密模式下,嘗試使用現有使用者名稱註冊的使用者會直接作為該使用者登入。這是為了易用性而設計的。
延伸閱讀
有關實現細節,請參閱原始碼文件。