Cloudflare Access 位于您的应用程序前面,并在允许用户通过之前根据您的 Access 策略检查每个请求。它支持几种应用程序类型,每种类型都针对不同的用例而设计。您的选择取决于您的应用程序托管在何处、用户如何连接到它,以及您对会话和授权需要的控制级别。
大多数团队从自托管应用程序开始,并随着时间的推移扩展到 SaaS 应用程序、基础设施目标或两者的结合。
下表总结了每种应用程序类型之间的关键区别。有关详细的设置说明,请参阅每个类型的对应章节。
| 自托管应用程序 | SaaS 应用程序 | 基础设施应用程序 | 书签 | |
|---|---|---|---|---|
| 保护的对象 | 您拥有并管理的资源:公共 Web 应用、私有网络目标以及 Cloudflare Workers | 您团队使用的第三方 SaaS 工具(Salesforce、Atlassian、Workday) | 可通过公共或私有网络访问的单个服务器和基础设施目标 | 显示在应用启动器中的外部 URL(不受 Access 身份验证控制) |
| 需要 Cloudflare One 客户端 | 取决于目标类型和策略要求 | 否 | 是 | 否 |
| 提供无客户端访问 | 是(公共主机名、浏览器隔离、cloudflared access CLI) |
不适用 —— 用户直接访问 SaaS 应用 | 否 | 不适用 |
| 身份验证与授权 | 包含会话管理和为该应用程序签名的应用程序令牌的 Access 策略 | 包含 SAML/OIDC 断言的 Access 策略 | 包含协议感知授权(端口、用户名)的基础设施策略 | 仅针对应用启动器可见性的策略 |
| 需要私有网络路由 | 仅针对私有目标 | 否 | 是 | 否 |
| 会话与令牌管理 | 完全(应用程序令牌、会话时长、强制重新进行身份验证) | 完全 | 完全 | 无 |
| 审计日志记录 | 身份验证事件和针对每个请求的 Access 日志 | 身份验证事件 | 身份验证事件、SSH 命令日志 | 仅限应用启动器身份验证 |
| 适用场景 | 大多数用例 —— Web 应用、私有应用、Zero Trust 网络、Workers | 为 SaaS 应用强制执行合规性,支持多个 SSO 身份提供商 | 具有协议级授权的细粒度服务器访问控制 | 在单个门户中整理链接 |
自托管应用程序是最通用的应用程序类型,占 Access 部署的大多数。自托管应用程序代表您控制流量去向的任何资源 —— 无论是 Cloudflare DNS 上的公共网站,还是使用 Cloudflare Tunnel 连接的私有网络上的非 Web 服务,亦或是在 Cloudflare 上运行的 Worker。
自托管应用程序使用完整的 Access 策略引擎,包括会话管理、应用程序令牌、强制重新进行身份验证、设备状态检查以及身份提供商组。
如果您的应用程序已经位于公共互联网上,且 DNS 通过 Cloudflare 进行管理(或采用部分 CNAME 设置,即您的 DNS 托管在其他地方但由 Cloudflare 代理流量),您可以通过匹配应用程序的主机名来将 Access 置于其前面。Cloudflare 会代理该请求,呈现登录页面,且仅在用户通过您的 Access 策略后才将流量转发到您的源站。
这是最常见的起点。您无需在用户设备上安装任何软件 —— 身份验证完全在浏览器中进行。
有关设置说明,请参阅添加自托管公共应用程序。
您还可以使用自托管应用程序来保护私有网络上的资源,方法是针对特定的私有 IP、主机名或 CIDR 范围(IP 地址块,例如 10.0.0.0/8)以及附加的端口或端口范围。这是在 Cloudflare 上构建 Zero Trust 网络访问的主要方法。
私有网络应用程序要求用户通过 Cloudflare 路由流量 —— 通常是通过在其设备上运行 Cloudflare One 客户端。您还必须使用 Cloudflare Tunnel 或 Cloudflare Mesh 将您的私有网络连接到 Cloudflare。
对于私有网络应用程序,您定义与公共应用程序相同类型的 Access 策略,但将其应用于私有目标。这使您能够对谁可以访问网络上的什么内容进行细粒度的、感知身份的控制 —— 用每个应用程序或每个服务的策略替换广泛的 VPN 级访问。Access 策略是可重用的,因此您可以将相同的策略应用于多个应用程序。
有关设置说明,请参阅添加自托管私有应用程序。
自托管应用程序还可以直接通过名称保护 Cloudflare Worker,而不是通过主机名 or 或 IP。当您选择 Worker 作为目标时,您可以覆盖该 Worker 及其所有预览部署,或者仅覆盖预览部署。
这是在 Worker 前面添加身份验证最安全、最直接的方法。您无需在 Worker 上配置单个路由并在路由级别管理身份验证,而是将整个 Worker(以及可选的预览部署)链接到 Access 应用程序。对任何路由上的 Worker 的任何请求都必须先通过 Access。
自托管应用程序支持客户端 cloudflared 身份验证。用户可以在其设备上安装 cloudflared,并从命令行运行 cloudflared access login <hostname> 来通过您的 Access 策略进行身份验证,而无需安装 Cloudflare One 客户端。这适用于 SSH 会话、API 调用以及其他基于浏览器的登录流程不切实际的命令行工作流。
有关更多信息,请参阅 cloudflared 身份验证。
SaaS 应用程序适用于您组织使用但不托管的第三方工具 —— 如 Salesforce、Atlassian、Slack 或 Workday。对于 SaaS 应用程序,您可以使用 SAML 或 OIDC(两种最常见的身份联合协议)将 Cloudflare Access 配置为第三方服务的单点登录(SSO)提供商。
当用户登录到 SaaS 应用程序时,他们会被重定向到 Cloudflare。Cloudflare 会重定向到您配置的身份提供商进行身份验证,然后根据已验证的用户评估您的 Access 策略。如果用户通过了这两项检查,Cloudflare 会向 SaaS 应用程序签发回一个已签名的凭据(SAML 断言或 OIDC 令牌),以确认用户的身份。
当您想进行以下操作时,请使用 SaaS 应用程序:
- 在第三方工具中强制执行一致的 Access 策略。 将您用于内部应用程序的相同身份、设备状态和位置要求应用于外部 SaaS 工具。
- 聚合多个身份提供商。 Cloudflare 可以跨多个身份提供商(IdP)联合身份验证,这意味着您可以更换或添加身份提供商,而无需单独重新配置每个 SaaS 应用程序。这在直接的 SSO 集成中通常是无法实现的。
- 应用 Cloudflare 特有的控制。 强制执行您的 SaaS 提供商自身无法检查的要求 —— 例如,在授予 SaaS 工具访问权限之前,要求使用 Cloudflare One 客户端或通过设备状态检查。
SaaS 应用程序要求第三方工具支持 SAML 或 OIDC 联合。并非所有 SaaS 工具都提供此功能,且某些工具对 SSO 集成的数量或通过联合身份验证可用的功能施加了限制。请检查您的 SaaS 供应商关于 SSO 兼容性的文档。
有关设置说明,请参阅 SaaS 应用程序。
基础设施应用程序为服务器和基础设施目标(无论通过公共主机名还是私有网络可达)提供协议感知的访问控制。与评估用户是否可以到达目标的自托管应用程序不同,基础设施应用程序还控制用户在连接后可以做什么 —— 他们可以以哪些用户名进行身份验证、他们可以访问哪些端口以及他们可以运行哪些命令。
基础设施应用程序需要 Cloudflare One 客户端。对于您私有网络上的目标,您还必须通过 Cloudflare Tunnel 或 Cloudflare Mesh 将网络连接到 Cloudflare。
当您需要以下内容时,请使用基础设施应用程序:
- 协议级授权。 定义策略,以授予特定用户对目标服务器上特定端口和用户名的访问权限。
- 命令日志记录。 所有 SSH 会话和命令都会被记录以进行合规性和审计。您可以使用 Logpush 将日志导出到存储服务或 SIEM。
- 短期证书。 通过使用快速过期的证书对用户进行身份验证,从而消除长效 SSH 密钥。这消除了因密钥被盗或遗忘而导致对您的服务器拥有永久访问权限的风险。
基础设施应用程序支持 SSH。您仍可以使用自托管应用程序来保护通过其他协议(包括 SSH)对服务器的访问,但基础设施应用程序是补充控制用户授权的唯一方法。
有关设置说明,请参阅添加基础设施应用程序。
书签不受 Access 的保护。书签是指向您希望在应用启动器中与您的其他应用程序一起显示的任何 URL 的链接。您可以为书签分配 Access 策略,但这些策略仅控制书签图块在应用启动器中是否可见 —— 它们并不能保护目标 URL。
使用书签为用户提供单个门户,他们可以在其中找到他们使用的所有工具,包括未与 Cloudflare 集成的外部应用程序。
有关设置说明,请参阅添加书签。
旧版私有网络应用程序类型创建 Gateway 网络策略以控制对私有 IP 地址的访问。当您添加旧版私有网络应用程序时,Cloudflare 会生成两条 Gateway 规则 —— 一条 Allow(允许)规则和一条 Block(阻止)规则 —— 因为 Gateway 网络策略不是默认拒绝的(这与 Access 策略不同,后者需要显式的 Allow 规则,任何用户才能到达受保护的应用程序)。
旧版私有网络应用程序不支持每次会话管理、应用程序令牌或 Access 策略中可用的全套功能。此应用程序类型对新客户已弃用,但对现有客户仍可用。
如果您当前正在使用旧版私有网络应用程序,我们强烈建议迁移到自托管私有网络应用程序,以获得更全面的策略控制和会话管理。
有关更多信息,请参阅私有网络应用程序(旧版)。