此页面记录了 AutoGPT 平台的 API 密钥管理系统。它解释了 API 密钥的结构、生成、存储以及在其生命周期内的管理方式。该系统为访问平台 API 提供了安全的编程访问认证。
有关用户认证和 JWT 令牌的信息,请参阅相关的认证系统文档。
API 密钥管理系统允许用户创建和管理 API 密钥,以实现安全、编程化的访问 AutoGPT 平台。密钥可以根据特定权限进行范围限定,并通过从创建到吊销的整个生命周期进行管理。
来源
AutoGPT 平台中的 API 密钥遵循特定的格式,以确保安全和便于管理。每个密钥包含多个部分,在认证过程中用于不同的目的。
agpt_ 开头,以识别它们是 AutoGPT API 密钥。agpt_ 前缀。来源
系统在不同上下文中处理 API 密钥时使用了不同的模型
| 模型 | 描述 | 目的 |
|---|---|---|
APIKey | 完整的表示,包括哈希值。 | 内部数据库操作。 |
APIKeyWithoutHash | 排除敏感的哈希值。 | 面向用户的操作。 |
APIKeyContainer | 包含原始密钥、前缀、后缀和哈希值。 | 生成和验证。 |
来源
API 密钥的生成和认证过程在保证安全的同时,力求提供良好的用户体验。
来源
来源
API 密钥管理系统提供了一整套用于创建、列出、更新和吊销 API 密钥的操作。
来源
系统提供了贯穿密钥生命周期进行管理的全套功能
| 操作 | 功能 | 描述 |
|---|---|---|
| 创建 | generate_api_key() | 创建具有指定权限的新 API 密钥。 |
| 验证 | validate_api_key() | 验证提供的密钥并返回其元数据。 |
| 列表 | list_user_api_keys() | 列出用户拥有的所有密钥。 |
| 获取 | get_api_key_by_id() | 通过 ID 检索特定密钥。 |
| 吊销 | revoke_api_key() | 永久禁用密钥。 |
| 暂停 | suspend_api_key() | 暂时禁用密钥。 |
| 更新权限 | update_api_key_permissions() | 更新密钥上的权限。 |
来源
API 密钥可以指定特定的权限来限制其访问范围。这遵循最小权限原则,即密钥只应拥有其预期用途所需的最低权限。
系统支持可分配给 API 密钥的各种权限。每项权限都授予对特定 API 功能的访问权限。
来源
当收到带有 API 密钥的 API 请求时,系统会验证密钥本身以及它是否具有请求操作所需的权限。
来源
API 密钥系统设计了多项安全功能,以防范常见威胁。
不存储明文:原始 API 密钥绝不会存储在数据库中。只存储 SHA-256 哈希值。
基于前缀的查找:使用密钥前缀进行初始查找,平衡了安全性和性能,从而实现了高效的密钥验证。
权限范围限定:密钥可以限制为特定权限,从而减少了密钥泄露的影响。
密钥轮换:用户可以根据需要吊销旧密钥并生成新密钥,以遵循安全最佳实践。
生命周期管理:密钥可以被暂时暂停或永久吊销,以应对安全问题。
来源
API 密钥系统包含强大的错误处理机制,可安全地管理各种失败场景。
来源
API 密钥系统的核心是 APIKeyManager 类,它提供了用于生成和验证 API 密钥的基础功能。
来源
系统提供了各种与数据库交互以进行 API 密钥管理的功能。
来源