# BIORI BIOTECH 客户档案外网访问 · Cloudflare Access 配置手册

## 前置条件

- Cloudflare 账号（已托管域名，如 biori.com）
- 域名的 DNS 在 Cloudflare 管理
- 本地服务器运行中（`http://127.0.0.1:8765`）

---

## 第一步：安装并登录 cloudflared

```bash
# 已安装，直接登录
cloudflared tunnel login
```

浏览器会自动打开 Cloudflare 授权页 → 选择域名 → 授权完成。
证书自动保存到 `~/.cloudflared/cert.pem`。

验证登录成功：
```bash
cloudflared tunnel list
# 应输出连接器列表（可能为空）
```

---

## 第二步：创建命名隧道

```bash
# 创建隧道
cloudflared tunnel create baoyu-archive

# 输出类似：
# Created tunnel baoyu-archive with id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
```

记录隧道 ID：`xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`

---

## 第三步：配置隧道

创建配置文件 `~/.cloudflared/config.yml`：

```yaml
tunnel: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  # 替换为实际隧道ID
credentials-file: /Users/liuxinyuan/.cloudflared/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.json

ingress:
  - hostname: archive.biori.com          # 使用你的子域名
    service: http://127.0.0.1:8765
  - service: http_status:404
```

---

## 第四步：配置DNS

在 Cloudflare Dashboard → DNS 添加 CNAME 记录：

| 类型 | 名称 | 目标 |
|------|------|------|
| CNAME | archive | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.cfargotunnel.com` |

或直接用命令：
```bash
cloudflared tunnel route dns baoyu-archive archive.biori.com
```

---

## 第五步：启动隧道

```bash
# 后台运行
cloudflared tunnel run baoyu-archive &
```

验证：
```bash
curl -s -o /dev/null -w "%{http_code}" https://archive.biori.com/工具/客户档案_自包含.html
# 应返回 200
```

---

## 第六步：配置 Cloudflare Access（零信任认证）

### 6.1 进入 Zero Trust Dashboard

浏览器打开：https://one.dash.cloudflare.com/

选择你的域名 → 进入 **Access** → **Applications**

### 6.2 创建自托管应用

1. 点击 **Add an application** → 选择 **Self-hosted**
2. 配置：
   - **Application name**: `宝锐客户档案`
   - **Session Duration**: `24 hours`
   - **Application domain**: `archive.biori.com`（与DNS一致）
   - **Identity providers**: 勾选 `One-time PIN`（邮件一次性验证码）
3. 点击 **Next**

### 6.3 配置访问策略

1. **Policy name**: `总经理及授权用户`
2. **Action**: `Allow`
3. **Configure rules**:
   - Selector: `Emails`
   - Value: 授权邮箱列表（每行一个）
     ```
     zongjingli@biori.com
     zhangliya@biori.com
     liuxinyuan@biori.com
     ```
4. 点击 **Next** → **Add application**

### 6.4 完成

完成后，访问 `https://archive.biori.com` 会先跳转到 Cloudflare Access 登录页：

1. 输入授权邮箱
2. 收到 6 位验证码邮件
3. 输入验证码 → 进入客户档案页面
4. 24小时免再次登录

---

## 维护操作

### 更新授权邮箱
Cloudflare Zero Trust Dashboard → Access → Applications → 宝锐客户档案 → Edit → Policies → 修改邮箱列表

### 重启隧道
```bash
pkill cloudflared
cloudflared tunnel run baoyu-archive &
```

### 查看日志
```bash
cloudflared tunnel info baoyu-archive
```

### 销毁隧道
```bash
cloudflared tunnel delete baoyu-archive
rm ~/.cloudflared/config.yml
```

---

## 架构图

```
总经理手机/电脑
    ↓ HTTPS
archive.biori.com (Cloudflare DNS)
    ↓
Cloudflare Access (邮箱验证码认证)
    ↓
Cloudflare Tunnel (加密)
    ↓
本地 127.0.0.1:8765 (HTTP服务器)
    ↓
客户档案_自包含.html (164KB)
```

---

## 费用

- Cloudflare Tunnel: **免费**
- Cloudflare Access (OTP): **50个用户以内免费**
- DNS: Cloudflare 免费套餐即可

总成本：**0元**
