Composio Dashboard 指南:Platform Auth Configs 创建、Playground 测试连接与应用用户连接
【免费下载链接】composioComposio powers 1000+ toolkits, tool search, context management, authentication, and a sandboxed workbench to help you build AI agents that turn intent into action.项目地址: https://gitcode.com/GitHub_Trending/co/composio
本篇技术指南基于 Composio 官方知识库文档《Manage Platform auth configs》(dashboard-auth-configs-navigation.md)展开,聚焦 Platform 控制台中最容易被忽略的三个操作环节:从选定 Platform 项目创建 Auth Config、在 Auth Config 上使用Connect Account建立 Playground 测试连接、以及通过Manage Config理解配置变更对未来认证行为的影响。读完本文,你将掌握在 Composio Dashboard 中正确创建与管理认证配置的完整流程,并清楚区分"测试连接"与"生产应用用户连接"之间的本质差异,避免在集成阶段踩坑。
从选定的 Platform 项目创建 Auth Config
在 Composio Dashboard 中,认证配置(Auth Config)是一切连接的基础。它是一个"蓝图",定义了某个 toolkit 在所有用户之间如何进行认证:包括认证方式(auth_scheme)、工具可请求的 scope,以及 Composio 用于运行 OAuth 或 token 流程的凭据(见 auth-configs.mdx)。
操作路径
创建流程位于 Dashboard 的Platform → Auth Configs → Create Auth Config,具体步骤如下:
- 进入Platform页面,确认当前选中的组织和项目(Auth Config 归属于某个 Platform 项目,跨项目不可复用);
- 打开Auth Configs列表页,点击Create Auth Config;
- 选择目标toolkit,以及该 toolkit 支持的认证方式;
- 当托管认证(managed authentication)可用时,优先选择托管认证;否则输入客户自有凭据(customer-owned credentials)。
认证方式(Auth Scheme)选择
依据 auth-configs.mdx 的说明,Composio 支持四种认证方式,实际可用的方式由所选 toolkit 自身决定:
| 方式 | 含义 | 适用场景 |
|---|---|---|
OAUTH2 | OAuth 2.0 授权码流程:用户通过托管授权页授权,Composio 存储并自动刷新 access/refresh token | 大多数带用户账号的应用(Gmail、GitHub、Slack、Notion 等),默认使用 Composio 托管 OAuth 应用 |
API_KEY | 用户提供静态 API key,无 OAuth 流程,key 随每次请求发送 | 以 key 认证的服务,如 SendGrid、Tavily、PostHog |
BEARER_TOKEN | 直接持有 bearer token,Composio 以Authorization: Bearer <token>发送且不刷新,需自行维护时效 | 将已有 OAuth 或 server-to-server token 带入 Composio,或签发长寿命 token 的应用 |
BASIC | 用户名 + 密码的 HTTP Basic 认证 | 使用 Basic Auth 的服务 |
从源码角度看,SDK 对认证方式的建模同样围绕这四类。在 TypeScript SDK 的 AuthScheme.ts 中定义了方案类型,而 AuthConfigs.ts 中的authConfigs.create('my-toolkit', { authScheme: AuthSchemeTypes.API_KEY, ... })演示了通过 SDK 创建认证配置时如何显式指定authScheme。也就是说,Dashboard 上的选择与 SDK/API 的auth_scheme字段一一对应,你可以先用控制台验证流程,再在代码中复现同样的配置。
自定义 OAuth 的回调 URI
对于自定义 OAuth(custom OAuth),必须使用当前 Dashboard 显示的确切回调 URI(callback URI)在 provider 应用中进行注册。不要从旧示例中复制回调 URI——回调地址可能随项目、环境或版本变化,过期的 URI 会导致 OAuth 授权回调失败,连接无法建立。
项目归属与排障
Auth Config 归属于且仅归属于一个 Platform 项目。如果在操作中发现某个配置或连接"消失",请先核对当前选中的组织(organization)与项目(project),确认无误后再重新创建,而不是盲目重建。组织与项目是 Dashboard 中所有认证资源的顶层归属边界,选错作用域是连接缺失最常见的原因。
Connect Account:它是 Playground 测试连接
在 Auth Config 详情页上,Connect Account按钮看起来像一个通用连接入口,但它的实际语义需要特别注意:这个控件用于认证当前项目的 Playground 用户,仅供测试使用。
关键区别在于:
- Connect Account 不会要求输入应用用户 ID。它把连接绑定到项目自身预置的 Playground 用户身份上,方便你在集成阶段快速验证某个 toolkit 的认证流程是否通畅。
- 要为真实的应用用户建立连接,必须通过 SDK 或 API 创建托管连接链接(hosted connection link),并在其中传入该应用稳定的
user_id以及目标 Auth Config。
为什么测试连接不能替代生产连接
测试连接与生产连接在"身份归属"上完全不同。在 auth-configs.mdx 中说明:当用户针对某个 Auth Config 完成认证时,Composio 会创建一个 connected account 来存储该用户的 token,并将其关联到你的用户 ID。也就是说,连接的核心是"用户身份 + Auth Config"这一对组合——Playground 用户与你的真实应用用户是两个不同的身份,前者测试出来的结果不能代表后者的实际体验(例如 scope 授权、token 刷新、多租户隔离等)。
通过 SDK 为真实用户创建连接
在 TypeScript SDK 的 ConnectedAccounts.ts 中,connectedAccounts.initiate()接收的第一个参数就是userId:
const connectionRequest = await composio.connectedAccounts.initiate( 'user123', // 应用内稳定的用户 ID 'auth_abc123' // 目标 Auth Config 的 nanoid );从 ConnectedAccounts.ts 可以看到,list()支持按userIds过滤,说明一个用户可以在同一 Auth Config 下拥有连接记录;而 ConnectedAccounts.ts 中"镜像 initiate() 的守卫逻辑"表明 SDK 会防止对同一用户静默创建多余连接,除非显式开启allowMultiple选项。
因此生产环境的标准姿势是:在你的后端服务中调用 SDK/API 的 initiate / connection link 流程,携带应用侧稳定user_id与目标 Auth Config,将生成的托管连接链接交给用户完成授权。Dashboard 上的Connect Account仅作为开发期的 Playground 冒烟测试工具。
Manage Config:改变的是"未来的认证行为"
Manage Config是 Auth Config 的管理入口,用于查看并调整当前配置类型的各项属性:
- 启用状态(enabled state):配置当前是启用还是禁用;
- 凭据(credentials):托管应用的凭据或你自己的 OAuth client 与密钥;
- 可用的 scope 或执行设置:该配置类型下工具可请求的权限范围与执行选项。
修改凭据与 scope 的影响
修改凭据或 scope不会追溯性地改变已有连接,而是可能要求用户重新建立连接(fresh connection),变更才会反映到 provider 的授权(grant)中。原因在于:已存储的 token 与 scope 授权是在连接创建时从 provider 获取的,配置层面的改动无法反向改写 provider 侧已签发的授权。
从 SDK 的实现可以印证这一点——AuthConfigs.ts 中的authConfigs.update()用于更新配置本身,而 AuthConfigs.ts 中的updateStatus()、enable()、disable()则独立控制配置的启用/禁用状态,这些操作都作用于"配置"层面,而非已有连接的 token 层面。
禁用或删除前的依赖检查
在禁用(disable)或删除(delete)一个 Auth Config 之前,务必检查依赖它的连接(connections)、会话(sessions)与触发器(triggers):
- 连接:依赖该配置建立的 connected account 将失去凭据来源;
- 会话:正在使用这些连接的 agent 会话可能中断或降级;
- 触发器:基于这些连接运行的 webhook/trigger 事件流可能停止。
这也是为什么 Dashboard 的设计将"启用/禁用"与"删除"分开——禁用可以随时恢复,删除则是不可逆操作。以 AuthConfigs.ts 中的authConfigs.delete('auth_abc123')为例,删除前请确认所有依赖方已被妥善迁移或下线。
关键要点速查
- 创建:在Platform → Auth Configs → Create Auth Config中选择 toolkit 与认证方式;托管认证可用时优先选托管认证;自定义 OAuth 务必注册 Dashboard 当前显示的确切回调 URI。
- 归属:Auth Config 属于单一 Platform 项目;连接缺失时先核对组织与项目,再决定是否重建。
- 测试:Connect Account绑定 Playground 用户,仅用于测试,不要求应用用户 ID。
- 生产:真实用户连接需通过 SDK/API 的 hosted connection link 流程,携带稳定
user_id与目标 Auth Config(参见 ConnectedAccounts.ts)。 - 变更:Manage Config中的凭据/scope 修改影响未来连接,可能要求用户重新连接;禁用/删除前先审查依赖的连接、会话与触发器。
【免费下载链接】composioComposio powers 1000+ toolkits, tool search, context management, authentication, and a sandboxed workbench to help you build AI agents that turn intent into action.项目地址: https://gitcode.com/GitHub_Trending/co/composio
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考