Skip to content

安全

API服务的默认实现通过HTTP运行,完全开放。如果该服务作为内部网络上的原型运行,这可能是可以接受的。在大多数情况下,连接至少应该是加密的。授权是另一个内置功能,要求每个请求都包含有效的API令牌。更多信息请参见下文。

HTTPS

默认的API服务命令在端口8000上启动一个Uvicorn服务器作为HTTP服务。要运行HTTPS服务,请考虑以下选项。

  • TLS代理服务器推荐选择。在此配置中,txtai API服务作为仅在本地主机/本地网络上可访问的HTTP服务运行。代理服务器处理所有加密并将请求重定向到本地服务。更多信息请参见此示例配置

  • Uvicorn SSL证书。另一个选项是在Uvicorn服务上设置SSL证书。这在简单情况下有效,但在托管多个txtai或其他相关服务时会变得复杂。

授权

授权要求每个API请求都包含有效的API令牌。此令牌作为HTTP Authorization 头发送。

服务器

CONFIG=config.yml TOKEN=<sha256编码的令牌> uvicorn "txtai.api:app"

客户端

curl \
  -X POST "http://localhost:8000/workflow" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <token>" \ 
  -d '{"name":"sumfrench", "elements": ["https://github.com/neuml/txtai"]}'

需要注意的是,必须使用上述方法之一启用HTTPS。否则,令牌将以明文形式交换。

身份验证和授权可以完全自定义。更多信息请参见依赖项部分。