惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Spread Privacy
Spread Privacy
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Cyberwarzone
Cyberwarzone
T
Tenable Blog
NISL@THU
NISL@THU
AWS News Blog
AWS News Blog
U
Unit 42
The Hacker News
The Hacker News
V
V2EX
MyScale Blog
MyScale Blog
阮一峰的网络日志
阮一峰的网络日志
L
Lohrmann on Cybersecurity
The GitHub Blog
The GitHub Blog
Vercel News
Vercel News
Y
Y Combinator Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
K
Kaspersky official blog
T
Threat Research - Cisco Blogs
S
Securelist
Simon Willison's Weblog
Simon Willison's Weblog
Jina AI
Jina AI
T
The Exploit Database - CXSecurity.com
B
Blog RSS Feed
WordPress大学
WordPress大学
I
Intezer
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
F
Fortinet All Blogs
W
WeLiveSecurity
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Recorded Future
Recorded Future
小众软件
小众软件
博客园 - Franky
Webroot Blog
Webroot Blog
Microsoft Azure Blog
Microsoft Azure Blog
P
Proofpoint News Feed
P
Privacy & Cybersecurity Law Blog
月光博客
月光博客
爱范儿
爱范儿
The Register - Security
The Register - Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
Application and Cybersecurity Blog
Application and Cybersecurity Blog
H
Hacker News: Front Page
T
The Blog of Author Tim Ferriss
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Threatpost
P
Palo Alto Networks Blog
S
Schneier on Security
Engineering at Meta
Engineering at Meta
J
Java Code Geeks

博客园 - iTech

7万星的AI交易框架:让大模型模拟投行多空辩论,自动做交易决策 71000颗星的AI交易团队:让大模型模拟投行分工,自动做交易决策 13400颗星的开源项目:输入一句话,AI全自动帮你做短视频 102颗星的沙盒:当AI学会自己写代码、跑测试、做部署 AI 技术日报 - 2026-05-08 29k 星的 PageIndex:不用向量数据库,靠推理就能做 RAG 每天花两小时刷信息?这个开源项目帮你全自动搞定 读源码像读小说?试了 DeepWiki 和 Zread,我再也不想裸读 GitHub 了 Matt Pocock 开源的这套 .claude 技能,为什么让工程师集体上头? Cursor Team Kit:Cursor 官方团队在用的 17 个 AI 工作流 AI 技术日报 - 2026-05-07 AI 技术日报 - 2026-05-06 - iTech AI 技术日报 - 2026-05-05 Anthropic CEO 说 12 个月内程序员要失业,我扒完他的底牌,发现事情没那么简单 把工程师的肌肉记忆装进 Claude Code,这个 4300 Star 的项目我后悔没早用 AI 技术日报 - 2026-05-04 AI 技术日报 - 2026-05-03 AI 技术日报 - 2026-05-02 六大 Agent 框架横评:谁支持 Skills?谁能自动创建 Agent?MCP 呢? Wechatsync:一个 Chrome 插件,一键把文章同步到 31 个平台 LangChain 开源了 Open SWE:Stripe、Ramp、Coinbase 内部都在造的编程 Agent Cockpit:把 Claude Code 从终端里搬出来,装进浏览器 Cursor 把自家的 AI Agent 开放了:写几行 TypeScript 就能调 Cursor 干活 AI 技术日报 - 2026-05-01 AI 写代码每次结果都不一样?Archon 用 YAML 工作流把 AI 编程变成流水线 AI 写代码比你快了,但你还是得学编程——只不过学法得换 腾讯的龙虾特工队:4 个 AI Agent 同日更新,全家桶正式成型 Agno 不做更聪明的 Agent,它要把所有 Agent 框架包进同一个操作系统 Hermes Agent 终于有了像样的 Web 界面,而且还支持远程访问 Datawhale 出了一套 29 学科知识地图,把 AI 的底牌全掀了 Hermes Agent 在聊天框里就能用的 20 种高级功能 一份 AGENTS.md 能顶一次模型升级?Augment Code 用数据说了算 NVIDIA 开源了一个「AI 沙箱」,20K Star,让 Agent 跑代码不再裸奔 60ms 冷启动、5MB 内存:腾讯开源的这个沙箱让 Docker 安全隔离像笑话 AI 技术日报 - 2026-04-30 AI 技术日报 - 2026-04-29 AI 技术日报 - 2026-04-28 Goose:Linux 基金会亲儿子,能撼动 Claude Code 和 OpenCode 吗? AI 技术日报 - 2026-04-27 AI 技术日报 - 2026-04-26 Google 把价值20美元/月的东西免费了,102K人已经抢到了 OpenClaw 和 Claude Code 网络搜索配置指南 AI 技术日报 - 2026-04-25 Anthropic 为什么遥遥领先:从 Cat Wu 专访看AI霸主的底层逻辑 Mac 本地跑大模型完全指南:你的苹果电脑就是 AI 工作站 同样 70B 参数,为什么 MoE 只激活 13B 就能打平 Dense? DeepSeek-V4 技术报告里藏着一条线:华为昇腾 NPU 已完成推理验证 DeepSeek-V4 深夜炸场:1M 上下文、384K 输出、双模型,API 定价直接卷到底 MacBook Air 跑大模型实测:Ollama、llama.cpp、LM Studio 谁才是本地推理之王? AI 技术日报 - 2026-04-24 OpenCode:Claude Code 的最佳平替 2026 开源大模型五国杀:Qwen 3.6 vs Gemma 4 vs Llama 4 vs GLM-5.1 vs DeepSeek V4 MCP 与 Skills 的你死我活:Anthropic 的 Agent 生态野心与开发者的站队困境 给 AI Agent 配搜索,国内能用的搜索 API 实测对比 AI 技术日报 - 2026-04-23 CC Switch:49K Star 的 Claude Code 登录绕过神器,还能管 Codex 和 Gemini CLI NVIDIA 开出 32 万美元年薪招 AI Agent 工程师,JD 里藏着这些信号 fast-mirror-skill 技术拆解:一个小而完整的 Claude Skill 是怎么设计的 Cursor 值 600 亿美元?马斯克这次赌的不是技术,是入口 AI 技术日报 - 2026-04-22 别再问 AI 能不能赚钱了:3 个上班族亲测有效的副业方法(2026 最新版) 10 分钟从零搞定 Hermes Agent:飞书微信双通道丝滑上线 AI 技术日报 - 2026-04-21 Anthropic 实战总结:AI Agent 的 3 种工作流模式,选错代价很大 安装 openclaw,hermes 慢的想发疯,fast-mirror-skill 来救了 Claude Routines:你下班睡觉了,Agent 还在为你干活 微信飞书里敲一个斜杠就能干活:Hermes Quick Command 到底多省事 AI 正在疯狂吃电:算力尽头是电力,谁能解这道题? AI 技术日报 - 2026-04-20 3K 行代码造一个越用越聪明的 AI Agent:GenericAgent 登顶 GitHub Trending 高德途途封神机器人半马,背后的 ABot-Claw 到底是什么 人们希望 AI 能干啥?Anthropic 调查:第一名不是赚钱,是变强 AI 时代人们在担心什么?Anthropic 的 13 条焦虑排行榜 OpenAI 官方 Agent SDK 来了:22k Star,支持 100+ 模型,Python 10 行代码上手 AI 技术日报 - 2026-04-19 OpenAgents Workspace:让 Claude Code 和 Codex 在同一个群里干活 Claude 是要干掉整个软件行业吗? Claude 官方推荐多 Agents 设计模式 多 Agent 系统的 5 种协调模式:选错了模式,再强的 Agent 也白搭 AI 技术日报 - 2026-04-18 AI 技术日报 - 2026-04-17 Better-Harness:让AI Agent自己优化自己的革命性框架 OpenClaw Workspace 完全指南:我的AI编程工作流 DeepSeek内蒙草原高薪招聘:AI时代的数字牧民梦,还是营销噱头? 2 核 2G 的阿里云 ECS 能跑 OpenClaw 吗?能,但有点折腾 AI 技术日报 - 2026-04-16 OpenCLI:一个命令行搞定 16+ 内容平台的神器 从零到精通:OpenClaw CLI 命令完全指南 AI 技术日报 - 2026-04-15 AI Agent 如何自我进化?Hermes Agent Self-Evolution 深度解析 AI 技术日报 - 2026-04-14 为什么你的飞书 Bot 总是连不上?OpenClaw Gateway 架构深度解析 OpenClaw 连接飞书的原理:Gateway、Channel 与消息流转 国内安装 Hermes Agent 踩坑全记录:从 GitHub 超时到正常跑起来的每一步 35 万 Star 的 OpenClaw:5 分钟部署你的私人 AI 助手,直连飞书 AI 技术日报 - 2026-04-13 公司用 AI 筛简历,这个开源项目让候选人用 AI 反选公司 为什么 Google ADK 可能是你下一个 Agent 框架——7 个改变游戏规则的特性 Microsoft Agent Framework 深度解析:架构设计与实战落地 AI 技术日报 - 2026-04-11
Agent 调用企业 API 还在用明文 Token?货拉拉这套 CLI/SSO 鉴权方案值得抄
iTech · 2026-06-14 · via 博客园 - iTech

Agent 调用企业 API 还在用明文 Token?货拉拉这套 CLI/SSO 鉴权方案值得抄

你的 Agent 还在裸奔调 API?这篇文章可能会改变你的做法。

2026 年 3 月底,飞书开源了飞书 CLI,一个多月拿了 1 万+ star。这个项目的意义不只是"把飞书功能搬到命令行"——它第一次系统性地展示了企业系统如何以「Agent 友好」的方式开放能力。文档、审批、日历、消息,全变成可组合的命令,大模型直接当函数调用。

但当你真想把企业内部的业务 CLI 接入 Claude Code、OpenClaw 这些 Agent 框架时,第一个撞上的墙不是接口不够用,而是——鉴权

货拉拉技术团队最近公开了他们的解法:一套面向 Agent Skill 的 CLI/SSO 鉴权体系。核心卖点三个:Token 不落盘不暴露、多用户隔离、飞书一键授权无感知。我读完了他们的技术方案,觉得这套架构的设计思路值得每个在做 Agent 集成的人认真看看。

本文提纲

  1. 传统 API Key 为什么在 Agent 场景下翻车
  2. 四层架构:sso-cli、业务 CLI、sso-sdk、SSO 平台
  3. 安全存储:Keychain 主密钥 + 加密文件
  4. 多用户隔离:加密环境变量 + 文件锁
  5. 飞书 Hook 登录:从"生硬"到"无感"
  6. SSO 平台迭代:Poll 授权模式
  7. 业务 CLI 集成:最后一公里的安全闭环
  8. 与传统方案对比:差距在哪

传统 API Key 为什么在 Agent 场景下翻车

在 Web 时代,SSO 鉴权天然是"人在浏览器前"的模式:跳转到 SSO 平台 → 用户手动登录 → 回调拿 Token → 后续请求带着 Token。整个流程依赖人类的交互能力。

Agent 不行。Agent 没有浏览器,不会点按钮,无法完成交互式登录。

早期实践中最常见的做法是"预置 Token":开发者手动完成 SSO 登录,把长期 Token 写进环境变量、配置文件、甚至硬编码到代码里。这在个人玩具项目里没问题,但在企业环境下是灾难:

问题一:Token 大面积暴露。Token 以明文形式存在于 .envconfig.yaml、shell history、/proc/*/environ 等任何你能想到的地方。任何能读取文件系统的攻击者都能拿到。

问题二:多人共享沙箱身份混乱。一个团队的 Agent 沙箱里,产品同事 A 登录后存了 A 的 Token,研发同事 B 紧接着调用——没有用户隔离的话,B 的请求用的是 A 的身份。审计日志显示是 A 在操作,但实际是 B。权限控制形同虚设。

问题三:无法追溯具体 Agent 行为。当 Agent 代替人做了某个操作,审计系统只知道"这个 Token 做了这件事",不知道是哪个用户、在什么对话上下文中、让哪个 Agent 执行的。出了问题,根本没法溯源。

这三个问题指向同一个结论:必须为 Agent 设计一套原生的、脱离浏览器依赖的、多人隔离且防泄露的 SSO 鉴权体系

四层架构:sso-cli、业务 CLI、sso-sdk、SSO 平台

货拉拉的方案把鉴权拆成四个组件,各司其职:

MERMAID_BLOCK_0

sso-cli:独立的命令行工具,负责 SSO 登录编排、凭证安全存储、多用户隔离。不提供 Token 直接读取接口——你没法通过它拿到明文 Token。

业务 CLI:各业务团队开发的命令行工具(abtest-cli、trade-cli 等),Agent 实际调用的就是这些。它们不直接处理 Token,而是依赖 sso-sdk。

sso-sdk:内部私有包(Go),只有授权的模块才能引用。封装了从本地安全存储读取、解密 Token 的逻辑。

SSO 平台:公司统一单点登录服务,新增了 Agent 场景的 poll 授权模式——支持下发一次性 code,客户端轮询换 Token。

一次典型调用流:

  1. Agent 根据用户意图调用业务 CLI
  2. 业务 CLI 通过 sso-sdk 获取当前用户的 SSO Token
  3. Token 不存在或过期 → CLI 报错 → Agent 触发 sso-cli 登录
  4. sso-cli 向 SSO 平台申请一次性 code,通过飞书卡片让用户授权,后台轮询换 Token
  5. Token 加密写入本地,飞书卡片自动删除
  6. Agent 再次调用业务 CLI,正常返回结果

安全存储:Keychain 主密钥 + 加密文件

这是整套方案里我觉得最精巧的部分。

主密钥(Master Key) 存储在操作系统的原生密钥链中:
- macOS → Keychain
- Linux → Secret Service / gnome-keyring
- Windows → Credential Manager / DPAPI

主密钥不落在任何普通文件里,读取受操作系统用户权限保护。sso-cli 只在需要加解密时从 keychain 取出主密钥,用完立即从内存擦除。

Token 存储走的是"密文文件"路线:用户通过 SSO 登录拿到 Token 后,sso-cli 将 user → token 的映射序列化、用主密钥加密、写入本地文件。没有主密钥,拿到密文也解不开。

这个设计的核心假设是:沙箱环境可能被任何人读取文件系统,但攻击者通常无法直接访问运行中进程的操作系统密钥链(除非已经提权)。这就形成了两道防线:

攻击者拿到密文文件 → 没有主密钥 → 无法解密
攻击者拿到主密钥 → 需要操作系统 keychain 权限 → 需要提权
攻击者同时拿到两者 → 文件内多用户 key 粒度隔离 → 只能解密特定用户的 Token

对比传统方案把 Token 塞进 .env 文件或者 export TOKEN=xxx——差距不是一点半点。

多用户隔离:加密环境变量 + 文件锁

这是解决"多人共用沙箱"问题的关键设计。

每一轮 Agent 对话对应一个"当前用户"。Agent 框架启动子进程时,注入一组加密的临时环境变量来标识用户身份——不是明文用户名,而是经过对称加密的 salt。只有持有派生密钥的组件(sso-sdk)才能解密还原。

这组环境变量的安全属性:

  • 生命周期绑定对话:对话结束立即销毁
  • 不进 shell history:进程私有的环境块,不写入 /proc 的全局视图
  • 密文传输:即使被读取,看到的也是密文,无法知道当前用户是谁,更无法篡改为其他用户

并发控制通过文件锁保护:读操作并发(解密幂等),写操作加排他锁(避免登录写入竞态)。

这个设计的巧妙之处在于:它把"用户隔离"和"Token 隔离"合并在了一套机制里——同一个加密文件,通过 key 粒度区分不同用户,而不是每个用户一个文件。简化了并发控制,也减少了密文数量。

飞书 Hook 登录:从"生硬"到"无感"

安全做到位了,但初版的登录体验极其生硬:Agent 提示用户去浏览器登录 → 用户登录后回来说"好了" → Agent 触发轮询 → 拿到 Token 继续。

问题很明显:打断对话流,依赖用户主动告知,经常因为忘记触发轮询而超时。

Hook 模式彻底改变了这个体验:

  1. sso-cli 被调用时,拦截自身的 JSON 输出,生成一张飞书卡片消息
  2. 通过飞书 Bot 发送给当前用户,卡片含 SSO 登录链接,仅本人可见
  3. 用户点击卡片,浏览器完成 SSO 授权
  4. sso-cli 后台自动轮询 SSO 平台,用一次性 code 换 Token
  5. 拿到 Token 后:加密存储 → 通知飞书 Bot 删除卡片(不留聊天记录痕迹)→ 返回成功
  6. Agent 无缝继续执行业务 CLI

用户唯一要做的就是点一下飞书卡片。整个流程对用户来说几乎是透明的。

降级方案也考虑了:飞书卡片不可用时,退化为普通文本消息发登录链接。消息可能留在聊天记录里,但链接本身不包含 Token,风险可控。

SSO 平台迭代:Poll 授权模式

传统 SSO 只支持实时 Web 回调,无法适配 Agent 的异步场景。货拉拉推动了 SSO 平台的关键迭代——Agent Poll 授权模式

流程是这样的:

  1. sso-cli 向 SSO 平台请求一次性登录链接,平台同时返回绑定的短期 code
  2. 链接通过飞书卡片给用户
  3. 用户浏览器打开链接完成登录,链接立即失效
  4. sso-cli 间隔轮询 SSO 平台,用 code 换 Token
  5. 第一次成功换取后 code 标记已用,后续请求被拒绝

安全设计要点:

  • 一次性链接 + 一次性 code:防止链接被重复利用。即使泄露,一旦被正确使用即作废
  • code 定时失效:防止暴力轮询
  • 轮询幂等:第一次成功后,后续请求因 code 失效被拒绝,无副作用
  • 用户校验:授权用户和发起用户不一致时,sso-cli 拒绝并终止

这个 poll 模式的价值不只是服务于 Agent——它让 SSO 平台具备了支撑任何异步授权场景的通用能力。

业务 CLI 集成:最后一公里的安全闭环

业务 CLI 开发者不需要关心主密钥、加密文件、环境变量这些复杂细节。引入 sso-sdk,调用一个方法拿 Token,完事。

import "internal.example.com/sso-sdk"

func main() {
    token, err := sso_sdk.GetToken()
    if err != nil {
        // Token 不存在或过期,返回特定退出码
        // Agent 感知后触发 sso-cli 登录
        os.Exit(42)
    }
    // 用 token 调用业务 API
    callBusinessAPI(token)
}

sso-sdk 的权限控制是编译期的:包托管在内部 Go Module Proxy,仓库权限仅对授权模块开放。未经审查的业务 CLI 连 import 都做不到,编译直接失败。这比运行时控制更前置、更绝对。

存储与获取分离也是有意为之:sso-cli 负责登录(交互重、状态多、易出错),sso-sdk 负责读取(精简、可靠、无 IPC)。读取过程不经过网络,不经过进程间通信,纯本地解密,安全且快速。

逆向防护方面,团队也在考虑把 Token 获取逻辑编译为共享库(.so/.dylib)动态加载,或者用 CGO + 静态库内嵌并剥离符号,提升逆向分析成本。目前主要以私有包权限保证安全边界。

与传统方案对比:差距在哪

维度 传统 API Key / 预置 Token 货拉拉 CLI/SSO 方案
Token 存储 明文 .env / config / 环境变量 Keychain 主密钥 + 加密文件
Token 可见性 任何能读文件的人都能看到 常规途径完全不可见
用户隔离 无(共享同一 Token) 加密环境变量 + key 粒度隔离
审计追溯 只知道"这个 Token"做了什么 每次调用绑定真实用户身份
登录体验 手动登录后复制 Token 飞书卡片一键点击,无感知
Token 过期 手动刷新或等报错 自动检测 + 触发重新登录
权限控制 运行时检查 编译期仓库权限控制
泄露风险 高(多处明文暴露) 低(纵深防御,多层保护)

核心差距在安全模型上:传统方案假设"环境是可信的",货拉拉方案假设"环境是不可信的"——沙箱可能被任何人读取,Token 必须在任何常规载体中都不可见。这是一个根本性的思维转变。

你的 Agent 鉴权还在用 API Key 硬编码?评论区聊聊你踩过的坑。觉得有参考价值就点个赞,让更多人看到这套方案。


参考文档与链接

原始文章
- 货拉拉技术 - 面向 Agent Skill 的 CLI/SSO 鉴权体系 — 掘金原文,完整技术细节

相关项目与背景
- 飞书 CLI 开源项目 — 飞书 CLI 将文档、审批、日历等能力封装为 Agent 友好的命令
- Claude Code — Anthropic 的 Agent CLI 框架,Skill 机制是其核心扩展方式
- OpenClaw — 开源 Agent 框架,支持通过 Skill 调用外部 CLI 工具

安全技术参考
- OAuth 2.0 Device Authorization Grant — IETF RFC 8628,设备授权流程,Poll 模式的理论基础
- OWASP API Security Top 10 — API 安全风险清单,包含 Broken Authentication 等核心威胁
- macOS Keychain Services — Apple 官方密钥链文档
- Linux Secret Service API — Linux 密钥管理标准

Agent 安全相关
- Anthropic: Building effective agents — Agent 架构设计最佳实践
- GitHub: addyosmani/agent-skills — Agent Skill 设计模式和最佳实践集合


作者: itech001
来源: 公众号:AI人工智能时代
网站: https://www.theaiera.cn/
每日分享最前沿的AI新闻资讯和技术研究。

本文首发于 AI人工智能时代,转载请注明出处。