• 文件 >
  • TorchServe 令牌授權 API
快捷方式

⚠️ 注意:有限維護

本專案不再積極維護。雖然現有版本仍然可用,但沒有計劃進行更新、錯誤修復、新功能或安全補丁。使用者應注意,漏洞可能不會得到解決。

TorchServe 令牌授權 API

TorchServe 現在預設強制執行令牌授權

TorchServe 預設強制執行令牌授權,這要求在呼叫 API 時提供正確的令牌。這是一項安全功能,解決了未經授權的 API 呼叫問題。這適用於未經授權的使用者可能嘗試訪問正在執行的 TorchServe 例項的場景。預設行為是啟用此功能,它會建立一個包含用於 API 呼叫的適當令牌的金鑰檔案。使用者可以停用此功能,以防止 API 呼叫需要令牌授權(如何停用),但警告使用者,這將使 TorchServe 面臨潛在的未經授權的 API 呼叫風險。

如何設定和停用令牌授權

  • 全域性環境變數:使用 TS_DISABLE_TOKEN_AUTHORIZATION 並設定為 true 可停用,設定為 false 可啟用令牌授權。請注意,必須在 config.properties 中設定 enable_envvars_config=true,以便使用全域性環境變數

  • 命令列:命令列只能透過新增 --disable-token-auth 標誌來停用令牌授權。

  • config.properties 檔案:使用 disable_token_authorization 並設定為 true 可停用,設定為 false 可啟用令牌授權。

環境變數、命令列和 config 檔案之間的優先順序遵循以下 TorchServe 標準

  • 示例 1

    • config 檔案:disable_token_authorization=false

      命令列:torchserve --start --ncs --model-store model_store --disable-token-auth

      結果:透過命令列停用令牌授權,但透過 config 檔案啟用,最終結果是令牌授權被停用。命令列具有優先順序

  • 示例 2

    • config 檔案:disable_token_authorization=true

      命令列:torchserve --start --ncs --model-store model_store

      結果:透過 config 檔案停用令牌授權,但命令列未配置,最終結果是令牌授權被停用。

配置

  1. TorchServe 預設會啟用令牌授權。預期的日誌語句是 main org.pytorch.serve.http.TokenAuthorizationHandler - Token Authorization Enabled

  2. 在當前工作目錄下會生成一個檔案 key_file.json

    1. 金鑰檔案示例

  {
  "management": {
    "key": "B-E5KSRM",
    "expiration time": "2024-02-16T21:12:24.801167Z"
  },
  "inference": {
    "key": "gNRuA7dS",
    "expiration time": "2024-02-16T21:12:24.801148Z"
  },
  "API": {
    "key": "yv9uQajP"
  }
}
  1. 有 3 個金鑰,每個都有不同的用途。

    1. 管理金鑰:用於管理 API。示例:curl https://:8081/models/densenet161 -H "Authorization: Bearer I_J_ItMb"

    2. 推理金鑰:用於推理 API。示例:curl http://127.0.0.1:8080/predictions/densenet161 -T examples/image_classifier/kitten.jpg -H "Authorization: Bearer FINhR1fj"

    3. API 金鑰:用於令牌授權 API。有關 API 的使用,請參閱第 4 節。

  2. 該 API 用於生成新的金鑰,以替換管理金鑰或推理金鑰。

    1. 管理金鑰示例:curl localhost:8081/token?type=management -H "Authorization: Bearer m4M-5IBY" 將替換 key_file 中當前的管理金鑰,並更新過期時間。

    2. 推理金鑰示例:curl localhost:8081/token?type=inference -H "Authorization: Bearer m4M-5IBY"

    使用者必須使用上述任一 API。

  3. 當用戶關閉伺服器時,key_file 將被刪除。

注意事項

  1. 不要修改金鑰檔案。修改金鑰檔案可能會影響對檔案的讀寫,從而阻止新金鑰正常顯示在檔案中。

  2. 過期時間預設為 60 分鐘,但可以透過在 config.properties 中新增 token_expiration_min 來更改。例如:token_expiration_min=30

  3. 三個令牌為所有者提供了最大的使用靈活性,並使他們能夠根據需要調整令牌的使用。如果使用者只需要對已載入的模型執行推理,伺服器所有者可以向用戶提供推理令牌。如果所有者希望使用者能夠新增和刪除模型,伺服器所有者還可以向其提供管理金鑰。

文件

訪問 PyTorch 的全面開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源