实验性功能#

认证机制#

AutoGen Studio 提供实验性的认证功能,以实现个性化体验(多用户支持)。目前仅支持 GitHub 认证。您可以通过扩展基础认证类来添加其他认证方式。

默认情况下认证功能处于禁用状态,只有在运行应用时传入 --auth-config 参数才会启用。

启用 GitHub 认证#

要启用 GitHub 认证,请在应用目录下创建 auth.yaml 文件:

type: github
jwt_secret: "your-secret-key" # 请妥善保管!
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。该URL必须与您在GitHub OAuth应用设置中配置的URL完全匹配。

  • 如果您在远程服务器上运行AutoGen Studio,请确保回调URL可通过互联网访问。


有关获取`client_id`和`client_secret`的更多详情,请参阅[GitHub OAuth文档](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/authenticating-to-the-rest-api-with-an-oauth-app)。

您可以通过以下方式传入此配置:

运行应用时使用`--auth-config`参数:

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

或设置环境变量:

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

备注

  • 认证功能目前处于实验阶段,后续版本可能有所变更

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

  • 启用后,除认证接口外所有API端点均需认证

  • WebSocket连接需通过查询参数传递token(格式为?token=your-jwt-token