mcpField
C
cloudflare-access-app-setup

cloudflare-access-app-setup

github.com/mizchi云与 DevOps41647 次安装1 周前更新
代码仓库

关于 cloudflare-access-app-setup

用于创建或更新可自托管的 Cloudflare Access 应用、邮箱允许列表策略及可选服务令牌,适合一次性配置、CI 测试和凭证轮换,无需管理 Pulumi 状态。

主要功能

  1. 01幂等地配置 Access 应用
  2. 02创建邮箱允许列表策略
  3. 03可选创建服务令牌
  4. 04通过环境变量或命令行配置
  5. 05返回应用 AUD 和令牌凭证

适用场景

  1. 01为新的 Cloudflare Worker 配置 Access
  2. 02为 CI 冒烟测试添加服务令牌
  3. 03轮换服务令牌凭证
  4. 04为拉取请求测试创建临时 Access 应用

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mizchi/skills --skill cloudflare-access-app-setup

安装后在 Claude Code 中输入/cloudflare-access-app-setup确认已加载。

附带文件assets/scripts/setup-access-app.tsREADME.md

详细介绍

Cloudflare Access 应用设置(由 API 驱动)

创建可自托管的 Cloudflare Access 应用、电子邮件允许列表策略和用于无头 CLI / CI 访问的服务令牌。操作具有幂等性:重新运行会更新现有应用,而不会创建重复项。

Pulumi 是推荐的长期方案(声明式 + 漂移检测),但以下情况更适合使用脚本:

  • 一次性设置单个应用,不想维护 Pulumi 状态。
  • CI 需要为每个 PR 创建临时 Access 应用以进行测试。
  • 替换服务令牌(轮换凭据),而无需重新导入其余堆栈。

何时调用

适用于以下情况:

  • 为尚无现有 Pulumi 堆栈的全新 Cloudflare Worker 设置 Access。
  • 为现有 Access 应用添加服务令牌,以便 CI 执行冒烟测试。
  • 轮换服务令牌凭据,而不改动其余基础设施。

包含内容

assets/scripts/setup-access-app.ts

通用脚本。通过环境变量 / CLI 参数读取配置,调用 https://api.cloudflare.com/client/v4/accounts/<id>/access/apps 上的 Cloudflare API。输出应用的 AUD(在 cloudflare.config.ts 中声明为 worker.env.APP_ACCESS_AUD: bindings.text(aud)),如果使用 --create-service-token,还会输出令牌的 client_id + client_secret(粘贴到 .env.cloudflare 中)。

输入(环境变量或 CLI):

变量必填默认值
CLOUDFLARE_API_TOKEN是—
CLOUDFLARE_ACCOUNT_ID是—
--name是—
--domain是—
--allow-emailsallow-emails / service-token 中的一个—
--create-service-token可选false
--session-duration可选24h
--api-base可选https://api.cloudflare.com/client/v4

何时不应调用

  • 你已使用 Pulumi 管理基础设施。请使用 Pulumi 的 ZeroTrustAccessApplication 资源;漂移检测值得多维护一个状态文件。
  • 你需要复杂的策略图(多租户、群组成员身份、基于时间的访问)。该脚本有意保持精简:一个电子邮件允许列表 + 一个可选服务令牌。

源码

mnemo 版本(包含硬编码的 mnemo 域名默认值)位于 mizchi/mnemo/blob/main/mnemo-server/scripts/setup-access-app.mjs。此处提供的版本与该脚本相同,只是将域名默认值改为参数配置。

如需手动执行 Access 操作,请使用 pnpm exec cf cli search "create a self hosted Access application" 查找 cf 命令,然后检查其架构。此处打包的辅助工具直接调用 REST API,无需 Wrangler。请参阅 cf 身份验证。

评论

支持 Markdown