【教程】使用 Cloudflare Zero Trust 限制访问

简介

零信任网络访问（ZTNA）

用户通过客户端或 Web 浏览器连接到企业资源，无需使用 VPN。当请求通过我们的网络进行路由和加速时，它们将被根据 Zero Trust 规则进行评估，这些规则集成了来自身份提供者、设备和其他上下文的信号。

过去，RDP 软件、SMB 文件查看器和其他胖客户端程序需要 VPN 来连接到专用网络连接。如今，团队可以通过 Cloudflare 的网络私密地路由任何 TCP 或 UDP 流量，并一次性对流量进行加速、验证和过滤，获得最佳性能和安全性。。

说人话就是你可以限制用户需要进行登录后才能访问你的业务

添加应用（以 web 应用举例）

你需要首先绑定并且解析此域名，例如 xxx.example.com

官方文档

提示

应用类型选择 Self-hosted

设置 App

session duration 建议选择 24 小时，避免过多重定向

Subdomain

填入 xxx

Domain

选择 example.com

添加策略

名称可随便填写，Action 不变选择 Allow

Include

左边选择 Emails，右边填入 Cloudflare 账户邮箱用于登录。

Require

左边选择 Login Methods，右边选择 One-time PIN

体验

此时，打开 xxx.example.com 将会要求你进行邮件认证，输入 Cloudflare 账户邮箱登录即可。

使用程序进行访问

官方文档

提示

创建 Service Token

关联 Token 到应用

进入应用访问策略配置页面，添加新策略

策略名随意，Action 选择 Service Auth。

Include

左边选择 Service Token，右边选择刚才建立的 Token。

设置请求头

Client ID 和 Client Secret 创建时已提供。

Copy
CF-Access-Client-Id: <Client ID>
CF-Access-Client-Secret: <Client Secret>

Copy
from httpx import get

headers = {
"CF-Access-Client-Id": "",
"CF-Access-Client-Secret": "",
}

get("xxx.example.com", headers=headers)