用途:为一个已经对外提供服务的子域名(如 app.example.com)加上仅限特定邮箱域名登录的访问墙,应用本身无需改代码。适用内部工具、仪表盘、预发布站点或智能体界面;不适用于源站不可公开路由的私有网络访问(应使用 Cloudflare Tunnel),也不适用于把 Cloudflare 作为 IdP 接入 SaaS 的联邦登录、网关/DNS 过滤或应用内自行实现认证。
三个必需环节,缺一即等于公开:1) Cloudflare Access 应用加 Allow 策略,按邮箱域授权,默认拒绝,需先创建可复用策略再按 id 绑定;2) DNS 记录设为代理(橙云),否则 Access 根本不参与请求路径;3) 源站锁定,用 IP 允许列表或校验 CF-Access-Jwt-Assertion,否则直接按源站 IP 加 Host 头即可绕过。源站 IP 并非秘密,会从证书日志、历史 DNS、邮件头等处泄露。
主要步骤:先在 Zero Trust 控制台确定团队域名 https://<team-name>.cloudflareaccess.com(全局唯一,仅能设置一次);再在 Google Cloud Console 创建 OAuth 客户端,重定向 URI 必须精确为 https://<team-name>.cloudflareaccess.com/cdn-cgi/access/callback,随后通过 API 注册为 Cloudflare IdP,并建议额外添加 Email 一次性 PIN 作为备用;接着创建可复用策略并绑定应用;将 DNS 记录改为 proxied;再锁定源站;最后完成四项验证:访问域名应 302 跳转到团队登录域,直连源站 IP 应从 200 变为 403,域内身份可登录,域外身份被拒。
限制与注意:Access 只对经 Cloudflare 的流量生效;策略为独立对象,不要创建应用级 reusable:false 的旧式策略;Google OAuth 客户端密钥与 Cloudflare 服务令牌密钥只显示一次,须即时存入密钥库;不要硬编码 Cloudflare IP 列表,应定期从 API 重新获取;密钥值不得写入命令行、文件、日志或提交记录;API 令牌按最小权限授予 Access 与 DNS 所需权限。部分步骤(Zero Trust 开通与 Google OAuth 客户端创建)仅能在网页控制台完成。缺失事实:未提供具体价格、席位限制细节及官方版本的完整字段说明。