安全API工具箱(免费版)
概述
安全API工具箱(免费版)通过凭据代理机制解决"Agent调用第三方API时密钥泄露"的核心安全痛点。开发者无需将真实API Key或OAuth Token交给Agent,只需在请求中使用{{占位符}},代理服务在服务端注入真实凭据后转发请求,密钥全程不经过Agent。
本免费版聚焦个人开发者的核心安全调用场景,提供CLI命令行工具与基础占位符模板,支持单次授权后自动复用,适合本地开发与测试环境快速上手。
核心能力
| 能力 | 说明 | 免费版支持 |
|---|---|---|
| 占位符模板 | {{OAUTH2_ACCESS_TOKEN}}等占位符替代真实密钥 | 是 |
| 服务端密钥注入 | 代理在服务端替换占位符为真实凭据 | 是 |
| 生物识别授权 | 首次调用通过FaceID/Passkey授权 | 是 |
| 单提供商验证 | 验证单个API提供商的连通性 | 是 |
| CLI命令行 | secure-curl命令替代curl | 是 |
| 多SDK集成 | Python/TypeScript SDK | 否 |
| 团队凭据金库 | 多人共享凭据 | 否 |
| 审计日志 | 全量请求审计 | 否 |
| 自定义提供商 | 注册私有API提供商 | 否 |
核心功能执行
用input_params参数进行配置。
输入: 用户提供核心功能执行所需的指令和必要参数。 处理: 解析核心功能执行的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回核心功能执行的响应数据,包含状态码、结果和日志。
- 执行此能力时使用
input_params参数,支持创建/查询/导出操作
参数配置与调用
用config_options参数进行配置。
输入: 用户提供参数配置与调用所需的指令和必要参数。 处理: 解析参数配置与调用的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回参数配置与调用的响应数据,包含状态码、结果和日志。
- 执行此能力时使用
config_options参数,支持修改/重置/导入操作
结果处理与输出
用output_format参数进行配置。
输入: 用户提供结果处理与输出所需的指令和必要参数。 处理: 解析结果处理与输出的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回结果处理与输出的响应数据,包含状态码、结果和日志。
- 执行此能力时使用
output_format参数,支持导出/保存/转换操作 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:通过占位符代理安、全调用第三方、密钥不落地、Agent、适合个人开发者试、工具箱、通过凭据代理机制、在调用第三方、时无需接触真实密、从架构层杜绝密钥、泄露风险、核心能力、占位符模板化请求、单提供商连通验证、命令行调用、Use、when、需要代码生成、编程辅助、调试测试、开发部署时使用、不适用于无明确技、术栈的模糊需求等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。
使用场景
场景1:个人开发者安全调用GitHub API
小李编写自动化脚本需要读取GitHub仓库信息。他不愿将GitHub Token硬编码到脚本中(担心提交到版本库泄露)。使用本工具:脚本中使用{{OAUTH2_ACCESS_TOKEN}}占位符,首次运行时在浏览器完成授权,之后脚本自动通过代理调用GitHub API,Token全程不进入脚本。
场景2:本地验证Slack API连通性
开发者需要在本地快速测试Slack API是否可用。使用secure-curl命令携带占位符发起请求,授权后即可验证连通性,无需手动获取并配置Slack Token。
场景3:MCP工具集成前的安全验证
当需要将第三方API能力作为MCP工具接入Agent时,本工具提供安全验证通道:MCP端点通过占位符调用目标API,凭据由代理注入,避免MCP工具直接持有密钥。
使用流程
依赖详情
npm install -g secure-proxy@latest
要求Node.js v16及以上。安装后自动在~/.secure-proxy/生成机器密钥对(Ed25519)。
Step 2:发起首次请求
使用secure-curl替代curl,在凭据位置使用占位符:
secure-curl https://api.user/repos \
-H "Authorization: Bearer {{OAUTH2_ACCESS_TOKEN}}"
Step 3:完成授权
首次调用时,命令返回一个授权链接而非API响应。将链接在浏览器中打开,通过FaceID或Passkey完成授权并连接账户。
Step 4:重放请求
授权完成后,重新运行相同命令即可获得API响应。此后对该提供商的所有请求自动通过,无需再次授权。
示例
占位符类型
| 占位符前缀 | 类型 | 示例 |
|---|---|---|
OAUTH2_ | OAuth 2.0令牌 | {{OAUTH2_ACCESS_TOKEN}}、{{OAUTH2_REFRESH_TOKEN}} |
OAUTH1_ | OAuth 1.0令牌 | {{OAUTH1_ACCESS_TOKEN}} |
| 其他 | API Key | {{STRIPE_SECRET_KEY}}、{{OPENAI_API_KEY}} |
代理根据请求URL自动识别提供商,无需手动指定。
常见调用示例
# 列出GitHub仓库
secure-curl https://api.user/repos \
-H "Authorization: Bearer {{OAUTH2_ACCESS_TOKEN}}"
# ...
# 发送Slack消息
secure-curl https://slack.com/api/chat.postMessage \
-X POST \
-H "Authorization: Bearer {{OAUTH2_ACCESS_TOKEN}}" \
-H "Content-Type: application/json" \
-d '{"channel":"#general","text":"Hello!"}'
# ...
# 查询Stripe客户
secure-curl https://api.stripe.com/v1/customers?limit=5 \
-H "Authorization: Bearer {{STRIPE_SECRET_KEY}}"
等待授权完成
当命令返回授权链接时,可轮询等待用户完成授权:
# 首次调用返回授权链接
secure-curl https://api.user/repos \
-H "Authorization: Bearer {{OAUTH2_ACCESS_TOKEN}}"
# ...
# 等待授权完成(最长800秒)
secure-wait https://secure-proxy.dev/approve/abc123xyz --timeout 800
# ...
# 授权后重放请求
secure-curl https://api.user/repos \
-H "Authorization: Bearer {{OAUTH2_ACCESS_TOKEN}}"
最佳实践
- 始终使用占位符:任何凭据位置都用
{{占位符}}替代,禁止在命令中写入真实密钥 - 环境隔离:开发与生产使用不同代理账户,避免凭据交叉
- 定期检查授权:登录代理控制台查看已授权的提供商与机器列表
- 及时撤销:不再使用的机器或提供商立即撤销授权
- 机器密钥保护:
~/.secure-proxy/目录中的私钥文件权限保持0600,禁止外泄 - 占位符命名规范:使用提供商约定的占位符前缀(如
OAUTH2_、STRIPE_),便于代理自动识别 - 授权链接及时处理:授权链接有时效性(通常15分钟),收到后尽快在浏览器完成授权
- 错误信息观察:代理返回的错误信息包含诊断提示,仔细阅读可快速定位问题
常见问题
Q1:命令返回授权链接而非API响应是正常的吗?
A:正常。首次调用某提供商时,代理需要用户完成生物识别授权并连接账户。将授权链接在浏览器打开,完成授权后重放命令即可。
Q2:占位符没有被替换,仍报401怎么办?
A:检查是否误用了普通curl而非secure-curl。只有secure-curl才会将请求路由到代理并替换占位符。
Q3:授权后多久需要重新授权?
A:默认90天未使用自动清理。活跃使用期间无需重新授权。如需延长保留期,可在控制台调整保留策略(专业版功能)。
Q4:支持哪些API提供商?
A:免费版支持5000+主流提供商,包括GitHub、Slack、Stripe、Google、OpenAI等。完整列表见代理控制台。专业版支持注册自定义私有API。
Q5:机器重装后如何恢复?
A:机器密钥对存储在~/.secure-proxy/。重装前备份该目录,重装后恢复即可。若未备份,需在新机器重新生成密钥并在控制台绑定。
Q6:代理服务本身会看到我的请求数据吗?
A:代理会处理请求的URL、头与体以替换占位符并转发,但不会存储或修改响应体。请求与响应体不写入日志,仅记录URL、方法、提供商、时间与状态码等元数据。
Q7:同一提供商的多个账户如何切换?
A:免费版同一提供商仅支持绑定一个账户。如需多账户切换,建议升级专业版使用团队凭据金库,按账户维度管理凭据。
已知限制
本免费体验版限制以下高级功能:
- 不支持Python/TypeScript SDK集成(仅CLI)
- 不支持团队凭据金库(仅个人使用)
- 不支持审计日志与请求留痕
- 不支持自定义私有API提供商
- 不支持凭据保留期自定义(固定90天)
解锁全部功能请使用专业版:secure-api-toolkit-pro
故障速查
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| 返回授权链接而非响应 | 首次使用需授权 | 在浏览器打开链接完成授权后重放 |
| 占位符未被替换 | 误用普通curl | 改用secure-curl路由到代理 |
| 授权链接已过期 | 超过15分钟未处理 | 重新发起请求获取新链接 |
| 提供商未识别 | URL域名不在支持列表 | 查看控制台支持列表或升级专业版注册 |
依赖说明
运行环境
- Agent平台:支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
- 操作系统:Windows / macOS / Linux
- Node.js:v16及以上(用于CLI安装)
- 网络:可访问代理服务与目标API
第三方依赖
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| 代理服务账户 | 在线服务 | 必需 | 在代理控制台注册 |
| Node.js | 运行时 | 必需 | nodejs.org下载 |
| LLM API | API | 必需 | 由Agent平台内置LLM提供 |
API Key 配置
- 代理机器密钥:首次运行自动生成于
~/.secure-proxy/,权限0600 - 第三方API凭据:存储于代理服务端金库,本地不保存
- 禁止:在命令或脚本中写入真实API密钥
可用性分类
- 分类:MD+EXEC(纯Markdown指令,部分功能需要exec命令行执行能力)
- 说明:基于Markdown的AI Skill,通过自然语言指令驱动Agent完成操作
- API Key通过环境变量配置: export API_KEY=your_key
错误处理
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
评论
加载中…