实验性功能#

身份验证#

AutoGen Studio 提供了一个实验性的身份验证功能,以启用个性化体验(多用户)。 目前,仅支持 GitHub 身份验证。 您可以扩展基本身份验证类以添加对其他身份验证方法的支持。

默认情况下,身份验证被禁用,只有在运行应用程序时传入 --auth-config 参数时才启用。

启用 GitHub 身份验证#

要启用 GitHub 身份验证,请在您的应用程序目录中创建一个 auth.yaml 文件

type: github
jwt_secret: "your-secret-key" # keep secure!
token_expiry_minutes: 60
github:
  client_id: "your-github-client-id"
  client_secret: "your-github-client-secret"
  callback_url: "http://localhost:8081/api/auth/callback"
  scopes: ["user:email"]

注意

JWT 密钥

  • 生成一个强壮且唯一的 JWT 密钥(至少 32 个随机字节)。 您可以运行 openssl rand -hex 32 以生成一个安全的随机密钥。

  • 切勿将您的 JWT 密钥提交到版本控制

  • 在生产环境中,将密钥存储在环境变量或安全密钥管理服务中

  • 定期轮换您的 JWT 密钥,以限制潜在泄露的影响

回调 URL

  • 回调 URL 是用户进行身份验证后 GitHub 将重定向到的 URL。 它应该与您在 GitHub OAuth 应用程序设置中设置的 URL 相匹配。

  • 如果您在远程服务器上运行 AutoGen Studio,请确保可以从 Internet 访问回调 URL。

有关获取 client_idclient_secret 的更多详细信息,请参阅有关 GitHub OAuth 的文档。

要传入此配置,您可以在运行应用程序时使用 --auth-config 参数

autogenstudio ui --auth-config /path/to/auth.yaml

或设置环境变量

export AUTOGENSTUDIO_AUTH_CONFIG="/path/to/auth.yaml"

注意

  • 身份验证目前是实验性的,并且在将来的版本中可能会更改

  • 用户数据存储在您配置的数据库中

  • 启用后,除了身份验证端点之外,所有 API 端点都需要身份验证

  • WebSocket 连接需要将令牌作为查询参数传递 (?token=your-jwt-token)