关于 access-protected-vercel-deployment
用于访问受 Deployment Protection 保护的 Vercel 部署的 Skill,使用调用方现有身份验证。内容涵盖 HTTP 请求、浏览器自动化中的短期 OIDC 令牌,以及在不关闭保护的情况下排查访问错误。
主要功能
- 01使用 vercel curl 访问部署
- 02为浏览器请求添加 OIDC 令牌头
- 03检查身份与项目关联
- 04排查 Trusted Sources 错误
- 05保护令牌和部署设置
适用场景
- 01检查受保护部署的健康端点
- 02调用受保护部署上的 API
- 03自动化访问预览环境的浏览器
- 04排查受保护生产环境的访问问题
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ vercel/ vercel-plugin --skill access-protected-vercel-deployment安装后在 Claude Code 中输入/access-protected-vercel-deployment确认已加载。
附带文件.vercel.approvers
详细介绍
访问受保护的 Vercel 部署
使用调用者现有的 Vercel 身份验证。不要禁用 Deployment Protection,也不要首先要求提供长期有效的绕过密钥。
选择访问方式
HTTP 请求:使用 vercel curl
对于响应正文、标头、健康检查和 API 调用,请用 vercel curl(vc curl)替代原始 curl。它接受原生的 curl 选项,并使用 Vercel 身份验证访问受保护的预览版和生产部署。
vc curl https://my-app.vercel.app/api/health
vc curl https://app.example.com/api/health
vc curl my-app.vercel.app/api/users -X POST \
-H "Content-Type: application/json" \
-d '{"name":"Ada"}'
vc curl /api/health
仅指定路径时,目标为已关联项目的生产部署。若需访问特定部署,请传入完整 URL。
如果身份验证失败,请先检查本地身份和项目,再更改保护设置:
vc whoami
检查 .vercel/project.json,确认已关联的项目和团队。仅当目录未关联项目或关联了错误的项目时,才运行 vc link。仅当 CLI 报告没有可用的已验证用户时,才运行 vc login。
浏览器自动化:将开发 OIDC 令牌作为标头附加
浏览器请求必须在请求标头中包含短期有效的本地令牌:
x-vercel-trusted-oidc-idp-token: <VERCEL_OIDC_TOKEN>
使用支持按源设置请求标头的浏览器工具。使用 agent-browser 时,注入开发环境变量,但不要打印或持久化令牌:
vc env run -- sh -c \
'test -n "$VERCEL_OIDC_TOKEN" && agent-browser open "$1" --headers "{\"x-vercel-trusted-oidc-idp-token\":\"$VERCEL_OIDC_TOKEN\"}"' \
sh https://my-app.vercel.app
然后在同一会话中继续正常的浏览器工作流。对于 Playwright 或其他浏览器驱动程序,请在首次导航前,将相同的标头设置为浏览器上下文的额外 HTTP 标头。
如果本地 CLI 版本无法通过 vc env run 提供令牌,请刷新本地开发凭据:
vc env pull .env.local --yes
通过项目现有的 dotenv 机制加载该文件。切勿打印令牌、将其值粘贴到源代码中,或提交 .env.local。
对于 Trusted Sources,请使用 x-vercel-trusted-oidc-idp-token。不要替换为 x-vercel-oidc-token;该标头会将 OIDC 令牌传递给 Vercel Function,作用不同。
Trusted Sources 规则
已关联 Vercel 项目的本地开发令牌默认可以访问同一项目的预览部署,但不会自动访问受保护的生产部署。要访问受保护的生产部署,项目自身的 Trusted Sources 条目必须允许 development → production。
对于通常的同项目预览场景,不要要求用户配置 Trusted Sources。
以下情况需要配置:
- 目标是受保护的生产部署,且调用者使用本地开发令牌;
- 调用者属于另一个 Vercel 项目或团队;
- 目标项目的自访问规则已自定义;或
- 响应为
TRUSTED_SOURCES_ENVIRONMENT_MISMATCH。
在目标项目中,打开 Settings → Deployment Protection → Trusted Sources。添加或编辑调用者,并允许所需的 from → to 环境组合。本地令牌的环境为 development,因此要访问受保护的生产部署,必须允许 development → production。
请将此操作视为访问控制变更:说明所需的确切规则,并在更改前取得授权。不要扩大无关的环境组合范围。
诊断响应
- 如果出现 Vercel 登录、SSO 或 Deployment Protection 页面,说明请求未使用受认可的身份验证方式。
TRUSTED_SOURCES_ENVIRONMENT_MISMATCH表示令牌有效,但不允许其调用者环境访问目标环境。- 绕过 Vercel 保护后,如果出现应用生成的
401或403,则属于应用自身的身份验证问题,必须单独调试。 - 标记为
"target": "production"的部署仍可能受保护。不要假定生产部署是公开的。
避免
- 不要为了让自动化通过而禁用部署保护。
- 收到保护页面后,不要反复发送未经身份验证的原始
curl请求。 - 如果
vc curl或限定来源的 OIDC 标头可以验证请求身份,就不要启动交互式 SSO 浏览器登录。 - 不要在日志、屏幕截图、已提交的文件或面向用户的输出中泄露
VERCEL_OIDC_TOKEN。
相关技能
- Vercel CLI 常规用法:
⤳ skill: vercel-cli - 端到端应用验证:
⤳ skill: verification