API密钥和身份验证
切勿在没有适当安全措施的情况下将Langflow端口直接暴露到互联网上。
设置 LANGFLOW_AUTO_LOGIN=False
,使用非默认的 LANGFLOW_SECRET_KEY
,并在启用身份验证的反向代理后部署您的Langflow服务器。
有关更多信息,请参阅 启用身份验证启动Langflow服务器。
身份验证凭证有助于防止未经授权访问您的Langflow服务器、流程以及通过组件连接的服务。
在Langflow中,您使用三种类型的凭证:
- Langflow API密钥:用于与Langflow API进行身份验证,并授权服务器端的Langflow操作,如运行流程和上传文件。
- 组件API密钥:用于Langflow与通过组件连接的服务(如模型提供商或第三方API)之间的身份验证。
- 身份验证环境变量:这些环境变量配置Langflow如何处理用户身份验证和授权。
Langflow API密钥
您可以使用Langflow API密钥以编程方式与Langflow交互。
在Langflow 1.5及更高版本中, 即使 LANGFLOW_AUTO_LOGIN
为 True
,大多数API端点也需要Langflow API密钥。
有关更多信息,请参阅 LANGFLOW_AUTO_LOGIN
。
Langflow API密钥权限
Langflow API密钥采用创建它的用户的权限。 这意味着您创建的API密钥与您拥有相同的权限和访问权限,包括对您的流程、组件和Langflow数据库的访问。 Langflow API密钥不能用于访问您自己的Langflow服务器之外的资源。
在单用户环境中,您始终是超级用户,您的Langflow API密钥始终具有超级用户权限。
在多用户环境中,非超级用户无法使用其API密钥访问其他用户的资源。 您必须 启用身份验证启动Langflow服务器 以允许用户管理和创建非超级用户账户。
创建Langflow API密钥
您可以在Langflow的 设置 中或使用Langflow CLI生成Langflow API密钥。
如果您的Langflow服务器以 --backend-only
模式运行,则需要使用CLI选项。
- Langflow设置
- Langflow CLI
- 在Langflow标题栏中,点击您的个人资料图标,然后选择 设置。
- 点击 Langflow API密钥,然后点击 添加新。
- 为您的密钥命名,然后点击 创建API密钥。
- ReplicateAPI密钥并安全存储。
如果您使用 --backend-only=true
提供您的流程,则无法在Langflow 设置 中创建API密钥,因为前端未运行。
在这种情况下,您必须使用Langflow CLI创建API密钥。
-
出于安全原因推荐此配置,以防止未经授权的API密钥和超级用户创建,特别是在生产环境中。
但是,如果未启用身份验证(
LANGFLOW_AUTO_LOGIN=True
),所有用户实际上都是超级用户,他们可以使用Langflow CLI创建API密钥。 -
使用
langflow api-key
创建API密钥:_10uv run langflow api-key使用Langflow CLI创建的所有API密钥都具有超级用户权限,因为该命令需要超级用户身份验证,而Langflow API密钥采用创建它的用户的权限。
使用Langflow API密钥
要对Langflow API请求进行身份验证,请将您的Langflow API密钥作为 x-api-key
标头或查询参数传递。
- HTTP标头
- 查询参数
_10curl -X POST \_10 "http://$LANGFLOW_SERVER_ADDRESS/api/v1/run/$FLOW_ID?stream=false" \_10 -H "Content-Type: application/json" \_10 -H "x-api-key: $LANGFLOW_API_KEY" \_10 -d '{"inputs": {"text":""}, "tweaks": {}}'
_10curl -X POST \_10 "http://$LANGFLOW_SERVER_ADDRESS/api/v1/run/$FLOW_ID?x-api-key=$LANGFLOW_API_KEY" \_10 -H "Content-Type: application/json" \_10 -d '{"inputs": {"text":""}, "tweaks": {}}'
有关构建Langflow API请求的更多信息,请参阅 开始使用Langflow API 和 使用Langflow API触发流程。
撤销 API 密钥
要撤销并删除 API 密钥,请执行以下操作:
- 在 Langflow 标题栏中,点击您的个人资料图标,然后选择 设置。
- 点击 Langflow API 密钥。
- 选择您要删除的密钥,然后点击 删除。
此操作会立即使密钥失效,并防止其再次被使用。