SPA SSO · ELI5

你只说一句话,Agent 帮应用装好公司门禁。

想象你开了一间小店。现在任何人都能推门进来。我们要做的不是让你学习怎么造门锁,而是给 Agent 一本可靠的施工手册:先检查,再安装,再验收。

你

“给这个应用接入公司 SSO 并部署。”

我的小应用
APP
✓
🙂
SSO
一次性票据
PKCE
只有通过公司登录的人,才能推门进入。

一张图看懂

Agent 接到一句话之后,会自动走完四站。

用户发起请求,Agent 检查小应用、安装公司 SSO,并安全部署完成
发起请求 → 检查应用 → 安装登录门禁 → 安全部署完成

先说结论

不是给非技术用户一个新工具,而是给 Agent 一套不能跳步的工作流程。

🗣️用户负责说目标

不需要知道 OAuth2、PKCE、回调地址或 ConfigMap。

🧭Skill 负责做决定

检查和门禁写进 Skill,不能指望 Agent 自己记得。

🤖Agent 负责执行

改代码、注册应用、部署和验证都留下可检查的结果。

一次完整旅程

从一句话,到可以登录的应用

每一步都是门。上一道门没有通过,下一步就不会开始。

01💬

你说一句话

“给这个应用加上公司登录,然后部署。”不用选协议,也不用填写一串技术参数。

02🔎

Skill 先做体检

它找到应用入口、构建方式和最终地址。看不懂或发现旧登录时,会停下来,不会猜着改。

03🧰

Agent 安装门禁

Agent 按固定模板接入登录能力。登录协议不是临时生成的,而是从 Skill 里拿经过验证的版本。

04🎟️

登记公开通行证

gateway-app 为网页登记 public client。它没有可偷走的 client secret,只使用一次性的 PKCE 校验。

05🚀

部署并检查

现有 Git + K8s Skill 完成发布。Agent 会确认应用能打开、登录跳转正确、回调地址不会 404。

PKCE 是什么?

像寄存柜的一次性取物票。

浏览器先生成一张只有自己知道的取物凭证,再把凭证的“指纹”交给公司登录。登录完成后,只有拿着原始凭证的这个浏览器才能换到通行证。

所以网页不需要保存一把长期有效的秘密钥匙。

🧑‍💻
只用一次8472
→
公司登录🔐
✓ 对上了,放行

谁负责什么

五个角色,各做一件事

1

你

只说目标,最后打开应用登录。

2

SSO Skill

像施工手册:检查、下判断、设置停止线。

3

Agent

像施工人员:严格按手册修改仓库并验证。

4

gateway-app

像办证窗口:安全登记应用,不暴露 Kong Admin。

5

部署 Skill

像运输队:把同一份代码和环境配置送上 K8s。

🛡️

四条安全底线

该藏起来的东西,从不交给网页。

没有 client secret
SPA 固定使用 public client。

不碰 Kong Admin
CLI 只调用受控的 gateway-app-service。

看不懂就停
旧认证、多个入口和 SSR 都不会猜着改。

通行证不落盘
access token 默认只存在页面内存。

第一版会做

把常见小网页接起来

  • React、Vue、普通 HTML/JavaScript
  • 整个应用打开即登录
  • 自动恢复登录前页面
  • 查询当前用户并携带 Bearer Token 调 API
  • 复用现有 Git + K8s 部署流程

第一版先不做

复杂应用留给下一站

  • Next.js、Nuxt 等服务端渲染应用
  • 已有复杂登录系统的自动迁移
  • 匿名页面和局部登录
  • 需要服务端保存密钥的 confidential/BFF
  • 修改 Kong Route、Service 或插件

最后,用户看到的只有这个

打开应用 → 公司登录 → 回到原页面 → 开始使用。

技术细节留在 Skill、Agent 和平台服务之间。非技术用户不需要变成 OAuth2 专家。