本指南将介绍如何为 LangSmith 应用添加自定义身份验证。本页面中的步骤适用于 云端 和 自托管 部署。不适用于在自定义服务器中单独使用 LangGraph 开源库 的场景。

为部署添加自定义身份验证

要在部署中使用自��义身份验证并访问用户级元数据,请设置自定义身份验证,通过自定义身份验证处理程序自动填充 config["configurable"]["langgraph_auth_user"] 对象。然后,你可以在图中通过 langgraph_auth_user 键访问此对象,从而允许代理代表用户执行经过身份验证的操作。
  1. 实现身份验证:
    如果没有自定义的 @auth.authenticate 处理程序,LangGraph 只能识别 API 密钥所有者(通常是开发者),因此请求不会限定到单个最终用户。要传递自定义令牌,必须实现自己的处理程序。
  • 此处理程序接收请求(标头等),验证用户身份,并返回一个至少包含 identity 字段的字典。
  • 你可以添加所需的任何自定义字段(例如 OAuth 令牌、角色、组织 ID 等)。
  1. 在你的 langgraph.json 中添加身份验证文件的路径:
  2. 在服务器中设置身份验证后,请求必须根据你选择的方案包含所需的授权信息。假设你使用的是 JWT 令牌身份验证,可以通过以下任一方式访问部署:
    如需详细了解 RemoteGraph,请参阅使用 RemoteGraph 指南。

启用代理身份验证

在完成身份验证后,平台会创建一个特殊的配置对象(config),并将其传递给 LangSmith 部署。此对象包含当前用户的信息,包括你从 @auth.authenticate 处理程序返回的任何自定义字段。 要允许代理代表用户执行经过身份验证的操作,请在图中通过 langgraph_auth_user 键访问此对象:
请从安全的机密存储中获取用户凭据。不建议将机密信息存储在图状态中。

为 Studio 中的用户授权

默认情况下,如果你在资源上添加自定义授权,该授权也会应用于来自 Studio 的交互。如果需要,可以通过检查 is_studio_user(),以不同方式处理已登录的 Studio 用户。
is_studio_user 在 langgraph-sdk 0.1.73 版本中加入。如果你使用的是较旧版本,仍然可以检查 isinstance(ctx.user, StudioUser)。
仅当你希望允许开发者访问部署在托管 LangSmith SaaS 上的图时,才使用此功能。

了解更多