网络安全

Cloudflare 通过 Access 一键保护 Workers 应用

Cloudflare 推出了将 Access 策略直接连接到 Workers 应用的新工具,使身份验证在任何请求到达应用代码之前强制执行,无论使用何种域名或 URL。该公司还支持在账户层面应用策略,默认保护现有和未来的应用。

2026-08-14
2 分钟阅读
286 浏览量
certi.news Editorial Team
Cloudflare 通过 Access 一键保护 Workers 应用

Cloudflare 宣布推出 Cloudflare Access for Workers,这是一套可将 Access 策略直接连接到单个 Worker 应用或账户内所有 Workers 应用的工具。通过这种连接,应用默认置于公司登录之后,无需依赖每位开发者分别记住并配置访问控制措施。

此举正值员工借助人工智能工具更快构建和部署应用之际。Cloudflare 认为,这种速度也可能导致内部应用或私人数据意外发布到公共互联网,因此设计了这些新工具,使保护托管在 Workers 上的应用成为部署流程本身的一部分。

无论访问方式如何保护应用

在 Worker 上启用 Access 后,Cloudflare 会在任何请求到达应用代码之前强制执行身份验证。无论用户是通过自定义域名、路径、workers.dev 子域名还是预览 URL 访问应用,都适用这一规则。

过去,Access 是在主机名层面配置的,这意味着需要为用户可以访问 Worker 的每个域名创建单独的策略。添加新的自定义域名时,必须先更新策略,否则该域名就可能无需身份验证即可访问。而现在,策略会与 Worker 本身关联,从而自动保护与其关联的域名和 URL。

可以根据需要选择保护范围:

  • 仅保护预览 URL,包括用于预览的 workers.dev URL 或自定义域名。
  • 保护与应用关联的所有主机名,包括自定义域名、路径、workers.dev 域名和预览 URL。

账户层面的默认策略

管理大量 Workers 应用的团队可以在账户层面一次性配置 Access 策略。这样,所有现有和未来的应用从创建之时起就会成为私有应用,同时可以指定策略覆盖预览流量、生产流量,还是两者都覆盖。

仅保护预览的选项可能适用于希望在生产环境中保持应用公开、同时避免暴露开发中版本的应用。Cloudflare 还支持针对特定 Worker 覆盖账户策略,前提是该 Worker 应当公开。

不需要全面策略的用户,也可以直接将 Access 应用到单个 Worker。Worker 界面中的新 Access 选项卡会显示适用于该应用的策略。当存在多个策略时,更具体的策略优先,顺序如下:主机名策略、Worker 策略,然后是账户策略。

应用代码中的用户身份

Access 还可以识别向应用发送每个请求的用户身份,包括其电子邮件地址、姓名和所属群组。Cloudflare 表示,这些数据可用于定制内容、实施权限或记录每位用户的活动。

身份信息显示在 Worker 的 ctx 上下文对象中,具体通过 ctx.access 提供。应用可以调用 ctx.access.getIdentity() 获取已通过身份验证的用户身份,而无需手动执行 JSON Web Token 验证,例如解析令牌、验证其签名和提取其声明。

Access 支持连接组织现有的身份提供商,也可以根据特定电子邮件地址、电子邮件域名或群组限制访问。对于代理,可以通过服务令牌授予访问权限。

本地测试和内部平台

可以使用 wrangler dev 在本地测试身份行为:在 wrangler.jsonc 文件中添加 Access 配置,以模拟已通过身份验证的用户。这样,开发者可以在配置中切换电子邮件地址,并在部署前验证针对每位用户显示的内容是否正确。

Cloudflare 还提供了一个开源的内部平台示例,支持以拖放方式发布静态网站,并默认将每个已发布的 Worker 设为私有。该架构利用 Workers for Platforms,使命名空间内应用的流量通过一个分发 Worker。将 Access 策略放置在该 Worker 上后,通过它发布的应用默认就会成为私有应用。

可用性和技术架构

该功能现已通过控制面板向所有用户开放,同时提供 Cloudflare Access for Workers 文档以便开始使用。这项新能力基于 FL2。FL2 是一个使用 Rust 构建的模块化中间代理,运行在 Cloudflare 的边缘架构上。

为了能够在 Worker 而非主机名层面启用 Access,Cloudflare 将 Workers 的路由与执行分离,并把路由逻辑移到了 Access 之前的阶段。该公司解释说,具有明确定义模块和有序阶段的 FL2 系统帮助其管理这一变更,因为每个部分都会以固定方式声明其输入和输出,从而使编译器能够在重构期间发现阶段之间不恰当的交互。

新闻来源
Cloudflare Blog
查看原始来源 ↗
c
作者

certi.news Editorial Team

你需要知道的

Cloudflare 推出了 Access for Workers,可在请求到达应用代码之前,强制对 Workers 应用进行身份验证,无论使用何种域名或 URL。该功能现已通过控制面板面向所有用户开放,支持在 Worker 或账户级别配置策略,并允许在应用代码中获取用户身份。

  • 可以将 Cloudflare Access 策略直接关联到单个 Worker,或关联到账户中的所有 Workers 应用。
  • 身份验证会在任何请求到达应用代码之前执行,包括自定义域名、workers.dev 和预览 URL。
  • 账户级策略可以让现有及未来的应用默认设为私有,并可选择覆盖预览环境、生产环境或两者。
  • 应用可以通过 ctx.access.getIdentity() 获取用户身份,无需手动验证 JSON Web Token。
  • 该功能支持通过 wrangler dev 进行本地测试,也可以按电子邮件地址、电子邮件域名、群组或服务令牌限制访问。
  • 该功能现已通过 Cloudflare 控制面板面向所有用户开放,其底层技术基于使用 Rust 构建的 FL2。

常见问题

Access for Workers 是否无论通过何种方式访问应用都能提供保护?

是。当在 Worker 上启用 Access 后,无论通过自定义域名、路径、workers.dev 域名还是预览 URL 访问,都会强制进行身份验证。

是否可以将 Access 策略应用到账户中的所有应用?

可以。通过配置账户级默认策略,现有及未来的应用可在创建时默认设为私有,也可以针对特定应用进行覆盖。

Worker 代码如何获取用户身份?

身份信息会显示在上下文对象 ctx 的 ctx.access 中,可通过 ctx.access.getIdentity() 调用。

该功能目前可用吗?

根据 Cloudflare 的信息,该功能现已通过控制面板面向所有用户开放。

同一分类

你可能还喜欢

查看所有新闻