Báo cáo thực hành

Cloudflare Zero Trust
Access Control

Triển khai website tĩnh trên Cloudflare Pages và bảo vệ bằng Cloudflare Access — xác thực danh tính qua Google / GitHub trước khi cho phép truy cập.

Môn học An toàn thông tin
Platform Cloudflare Pages + Access
Mã hóa TLS 1.3 / Grade A

Triển khai website tĩnh với Cloudflare Pages

Website tĩnh được triển khai trực tiếp từ GitHub repository lên Cloudflare Pages. Mọi thay đổi được push lên nhánh main sẽ tự động build và deploy.

Cloudflare Pages

Host website tĩnh, tự động deploy từ GitHub, CDN toàn cầu.

🔗

GitHub Repository

Lưu trữ source code. Mỗi commit tới main kích hoạt build mới.

🔒

HTTPS / TLS 1.3

Chứng chỉ SSL tự động, mã hóa toàn bộ kết nối, đánh giá Grade A.

Cấu hình triển khai

# Cloudflare Pages — cài đặt
Repository: github.com/duykhangne/web-demo
Branch: main
Build command: (none — static HTML)
Output directory: /
Domain: web-demo-cloudflare.pages.dev
SSL Mode: Full (strict)
HSTS: enabled — max-age 31536000

Mô hình kiểm soát truy cập Zero Trust

Cloudflare Access đứng trước website — mọi request đều bị chặn và kiểm tra danh tính trước khi được phép chạm đến nội dung. Đây là nguyên tắc cốt lõi của mô hình Zero Trust.

Thành phần 1 — Người dùng
Trình duyệt web (User / Client)
HTTP/HTTPS request
Thành phần 2 — Yêu cầu truy cập
Gửi HTTPS request đến domain
LỚP KIỂM SOÁT — CLOUDFLARE ACCESS / ZERO TRUST
Thành phần 3 — Authentication
Xác thực danh tính
Google / GitHub
Thành phần 4 — Authorization
Kiểm tra quyền
Policy / Email
ĐIỂM QUYẾT ĐỊNH
Cho phép?
Không
Kết quả — Từ chối
403 / Redirect
Thành phần 5 — Website tĩnh
Cloudflare Pages — web-demo-cloudflare.pages.dev
Kết quả — Cho phép
Nội dung website hiển thị bình thường

Vai trò của Cloudflare Access trong mô hình

Thành phần Chức năng Vị trí trong luồng
Người dùng Gửi HTTP/HTTPS request từ trình duyệt Điểm khởi đầu
Cloudflare Edge Nhận request, chặn trước khi đến server Trung gian — Lớp 1
Authentication Yêu cầu đăng nhập Google / GitHub. Xác minh danh tính qua OAuth 2.0 Lớp kiểm soát — Bước 1
Authorization / Policy Kiểm tra email, nhóm, thiết bị theo policy đã cấu hình Lớp kiểm soát — Bước 2
Điểm quyết định Tổng hợp kết quả: Cho phép hoặc Từ chối Access Gate
Cloudflare Pages Phục vụ nội dung tĩnh — chỉ khi vượt qua kiểm tra Backend — được bảo vệ

Nguyên lý Zero Trust

Mô hình Zero Trust không tin tưởng bất kỳ request nào theo mặc định — kể cả từ mạng nội bộ. Mỗi lần truy cập đều phải xác minh danh tínhkiểm tra quyền trước khi cấp phép. Cloudflare Access thực hiện điều này ở lớp edge — hoàn toàn trong suốt với website tĩnh, không cần thay đổi code.


Hành vi xác thực qua Cloudflare Access

Nhóm thực hiện kiểm thử ba trường hợp theo yêu cầu, ghi nhận kết quả quan sát thực tế từ trình duyệt.

🔒

Chưa xác thực

Mở URL trong trình duyệt ẩn danh (Incognito). Không có session hay cookie hợp lệ.

Kết quả quan sát: Cloudflare Access chặn request ngay lập tức, hiển thị trang đăng nhập (Access Login Page) với lựa chọn Google / GitHub. Người dùng không thấy bất kỳ nội dung nào của website.

HTTP 302 → /cdn-cgi/access/login

Xác thực sai / không đủ quyền

Đăng nhập thành công qua Google/GitHub nhưng email không nằm trong danh sách được phép của policy.

Kết quả quan sát: Cloudflare Access xác thực danh tính thành công (biết đây là ai) nhưng policy từ chối vì email không khớp. Hiển thị trang lỗi "Access Denied" — website vẫn hoàn toàn ẩn.

Access Denied — Policy không khớp

Xác thực đúng / đủ quyền

Đăng nhập bằng tài khoản Google/GitHub có email nằm trong policy được phép.

Kết quả quan sát: Cloudflare Access cấp JWT token, tự động chuyển hướng về URL gốc. Nội dung website hiển thị bình thường. Cookie CF_Authorization được ghi vào trình duyệt.

200 OK — Website hiển thị bình thường

Bảng tổng hợp kết quả kiểm thử

Tình huống Bước thất bại tại HTTP Response Người dùng thấy
Chưa xác thực Authentication (chưa đăng nhập) 302 Redirect Trang đăng nhập Cloudflare Access
Xác thực sai email Authorization (policy không khớp) 403 Forbidden Trang "Access Denied"
Xác thực đúng Không có — vượt qua tất cả 200 OK Nội dung website đầy đủ

Kết quả kiểm thử SSL / Bảo mật — Grade A

Kiểm tra tại SSL Labs (ssllabs.com/ssltest/) với các cấu hình Cloudflare sau:

SSL Mode: Full (strict)
TLS Version: 1.2 / 1.3  # TLS 1.0 và 1.1 đã tắt
Always Use HTTPS: Enabled
HSTS: max-age=31536000; includeSubDomains
HTTP/2: Enabled
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Grade: A