跳至内容

如何在OpenAPI中记录API认证

本指南展示了如何为您的 LangGraph Platform API 文档自定义 OpenAPI 安全架构。清晰记录的安全架构有助于 API 使用者了解如何使用您的 API 进行认证,甚至可以实现客户端的自动生成。有关 LangGraph 认证系统的更多详细信息,请参阅 认证与访问控制概念指南

实现与文档

本指南仅涵盖如何在 OpenAPI 中记录您的安全要求。要实现实际的认证逻辑,请参阅 如何添加自定义认证

本指南适用于所有 LangGraph Platform 部署(云、BYOC 和自托管)。如果您未使用 LangGraph Platform,本指南不适用于 LangGraph 开源库的使用。

默认架构

默认安全方案因部署类型而异

默认情况下,LangGraph Cloud 要求在 x-api-key 头部中提供 LangSmith API 密钥

components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
security:
  - apiKeyAuth: []

使用 LangGraph SDK 之一时,可以从环境变量中推断出这一点。

默认情况下,自托管部署没有安全方案。这意味着它们只能部署在安全网络上或带有认证。要添加自定义认证,请参阅 如何添加自定义认证

自定义安全架构

要在您的 OpenAPI 文档中自定义安全架构,请在 langgraph.json 中的 auth 配置中添加一个 openapi 字段。请记住,这仅更新 API 文档 - 您还必须实现相应的认证逻辑,如 如何添加自定义认证 中所示。

请注意,LangGraph Platform 不提供认证端点 - 您需要在客户端应用程序中处理用户认证,并将生成的凭据传递给 LangGraph API。

{
  "auth": {
    "path": "./auth.py:my_auth",  // Implement auth logic here
    "openapi": {
      "securitySchemes": {
        "OAuth2": {
          "type": "oauth2",
          "flows": {
            "implicit": {
              "authorizationUrl": "https://your-auth-server.com/oauth/authorize",
              "scopes": {
                "me": "Read information about the current user",
                "threads": "Access to create and manage threads"
              }
            }
          }
        }
      },
      "security": [
        {"OAuth2": ["me", "threads"]}
      ]
    }
  }
}
{
  "auth": {
    "path": "./auth.py:my_auth",  // Implement auth logic here
    "openapi": {
      "securitySchemes": {
        "apiKeyAuth": {
          "type": "apiKey",
          "in": "header",
          "name": "X-API-Key"
        }
      },
      "security": [
        {"apiKeyAuth": []}
      ]
    }
  }
}

测试

更新配置后

  1. 部署您的应用程序
  2. 访问 /docs 查看更新后的 OpenAPI 文档
  3. 使用认证服务器的凭据尝试使用端点(请确保您已首先实现认证逻辑)

评论