• 文档 >
  • 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 标志来禁用令牌授权。

  • 配置属性文件:使用 disable_token_authorization 并将其设置为 true 以禁用,设置为 false 以启用令牌授权。

环境变量、cmd 和配置文件之间的优先级遵循以下 TorchServer 标准

  • 示例 1

    • 配置文件: disable_token_authorization=false

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

      结果:通过命令行禁用令牌授权,但通过配置文件启用令牌授权,导致令牌授权被禁用。命令行优先级更高

  • 示例 2

    • 配置文件: disable_token_authorization=true

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

      结果:通过配置文件禁用令牌授权,但未通过命令行配置令牌授权,导致令牌授权被禁用。

配置

  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 http://localhost: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。请查看第 4 节以了解 API 用法。

  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 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源