以编程方式使用文档

本指南介绍如何为您的 LangSmith API 文档自定义 OpenAPI 安全模式。记录良好的安全模式可帮助 API 使用者了解如何向您的 API 进行身份验证,甚至支持自动客户端生成。请参阅 身份验证和访问控制概念指南 了解更多关于 LangGraph 身份验证系统的详细信息。

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

默认模式

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

LangSmith

默认情况下,LangSmith 需要在 x-api-key header:

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

中使用 LangSmith API 密钥。当使用 LangGraph SDK 之一时,可以从环境变量推断。

Self-hosted

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

自定义安全模式

要自定义 OpenAPI 文档中的安全模式,请添加 openapi 字段到您的 auth 配置中 langgraph.json。请记住,这只会更新 API 文档 - 您还必须按照 如何添加自定义身份验证.

中所示实现相应的身份验证逻辑。请注意,LangSmith 不提供身份验证端点 - 您需要在客户端应用程序中处理用户身份验证,并将生成的凭证传递给 LangGraph API。

OAuth2 with Bearer Token

    {
      "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"]}
          ]
        }
      }
    }
    

API Key

    {
      "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. 使用身份验证服务器的凭证测试端点(请确保您已先实现身份验证逻辑)