--- title: 【教程】使用 Cloudflare Zero Trust 限制访问 date: 2023/1/29 20:04 tags: [cloudflare, access, api] categories: 技术 permalink: 373.html index_img: https://i.dawnlab.me/2f2f141df278a55104d74d969487d8e7.png --- # 简介 ## 零信任网络访问(ZTNA) 用户通过客户端或 Web 浏览器连接到企业资源,无需使用 VPN。当请求通过我们的网络进行路由和加速时,它们将被根据 Zero Trust 规则进行评估,这些规则集成了来自身份提供者、设备和其他上下文的信号。 过去,RDP 软件、SMB 文件查看器和其他胖客户端程序需要 VPN 来连接到专用网络连接。如今,团队可以通过 Cloudflare 的网络私密地路由任何 TCP 或 UDP 流量,并一次性对流量进行加速、验证和过滤,获得最佳性能和安全性。。 说人话就是你可以限制用户需要进行登录后才能访问你的业务 # 添加应用(以 web 应用举例) 你需要首先绑定并且解析此域名,例如 `xxx.example.com` ## [官方文档](https://developers.cloudflare.com/cloudflare-one/applications/configure-apps/self-hosted-apps/) ## 提示 应用类型选择 `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 账户邮箱登录即可。 # 使用程序进行访问 ## [官方文档](https://developers.cloudflare.com/cloudflare-one/identity/service-tokens/) ## 提示 ### 创建 Service Token ### 关联 Token 到应用 进入应用访问策略配置页面,添加新策略 策略名随意,`Action` 选择 `Service Auth`。 #### Include 左边选择 `Service Token`,右边选择刚才建立的 Token。 ### 设置请求头 `Client ID` 和 `Client Secret` 创建时已提供。 ``` CF-Access-Client-Id: CF-Access-Client-Secret: ``` ```python from httpx import get headers = { "CF-Access-Client-Id": "", "CF-Access-Client-Secret": "", } get("xxx.example.com", headers=headers) ```