blog/source/_posts/【教程】使用 Cloudflare Zero Trust 限制访问.md
2024-02-01 19:45:45 +08:00

97 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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 流量,并一次性对流量进行加速、验证和过滤,获得最佳性能和安全性。。
<!-- more -->
说人话就是你可以限制用户需要进行登录后才能访问你的业务
# 添加应用(以 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: <Client ID>
CF-Access-Client-Secret: <Client Secret>
```
```python
from httpx import get
headers = {
"CF-Access-Client-Id": "",
"CF-Access-Client-Secret": "",
}
get("xxx.example.com", headers=headers)
```