Chào các bạn Dev và anh em IT Security!
Hôm nay mình sẽ chia sẻ cách triển khai Zero Trust thực tế từ đầu bằng Microsoft Entra ID – không phải lý thuyết suông, mà là từng bước bạn có thể làm ngay trên tenant của mình.
Mình biết “Zero Trust” nghe có vẻ buzzword. Nhưng sau khi chứng kiến vài sự cố ở môi trường khách hàng – tài khoản admin bị compromise vì không có MFA, lateral movement dễ dàng vì quá nhiều người có quyền Global Admin — mình thực sự tin đây là thứ mọi doanh nghiệp cần làm ngay hôm nay, không phải “khi có thời gian”.
Zero Trust là gì – và tại sao Identity là trụ cột đầu tiên
Zero Trust không phải một sản phẩm. Đây là một triết lý bảo mật dựa trên 3 nguyên tắc:
- Verify explicitly – luôn xác thực danh tính, thiết bị, vị trí, trước khi cấp quyền truy cập
- Use least privilege – chỉ cấp đúng quyền cần thiết, đúng thời điểm cần thiết
- Assume breach – thiết kế hệ thống như thể kẻ tấn công đã ở bên trong
Microsoft chia Zero Trust thành 6 trụ cột: Identity, Endpoints, Applications, Data, Infrastructure, Network. Và Identity là nơi bắt đầu – vì 99% các cuộc tấn công thành công đều bắt đầu từ việc chiếm đoạt tài khoản.
Theo báo cáo của Microsoft năm 2024, hơn 99% tài khoản bị compromise không có MFA. Đây không phải vấn đề kỹ thuật phức tạp – đây là vấn đề chưa làm.
Điều kiện cần trước khi bắt đầu
License tối thiểu
| Tính năng | License yêu cầu |
|---|---|
| Multi-Factor Authentication (MFA) | Microsoft 365 Business Basic trở lên |
| Conditional Access | Microsoft Entra ID P1 (có trong M365 Business Premium, E3) |
| Identity Protection (risk-based) | Microsoft Entra ID P2 (có trong M365 E5, EMS E5) |
| Privileged Identity Management | Microsoft Entra ID P2 |
Nếu đang dùng Microsoft 365 Business Premium – bạn đã có đủ P1 để làm hầu hết bài này. Nếu chỉ có E3 thì cũng đủ cho Conditional Access.
Tài khoản cần có
- Tài khoản Global Administrator để cấu hình
- Ít nhất 1 tài khoản break-glass (emergency access account) – quan trọng, mình sẽ giải thích ngay bên dưới
Tạo tài khoản break-glass trước khi làm bất cứ thứ gì
Đây là bước nhiều người bỏ qua và sau đó… tự khóa luôn tenant của mình.
Break-glass account là tài khoản dùng trong tình huống khẩn cấp – khi Conditional Access hoặc MFA bị cấu hình sai và không ai đăng nhập được vào. Tài khoản này cần:
- Tên đăng nhập không theo pattern thông thường (ví dụ:
itadmin@yourdomain.com) - Password dài 20+ ký tự, lưu offline ở nơi an toàn
- Không subject to Conditional Access
- Không dùng MFA dạng phone (dùng FIDO2 key hoặc passphrase dài)
- Là Global Administrator
Cách tạo:
- Vào Entra admin center → Users → New user
- Tạo user với tên
itadmin@yourdomain.com - Gán role Global Administrator
- Lưu password vào két sắt 🙂 hoặc password manager offline

Sau khi làm xong mới bắt đầu các bước tiếp theo.

Bước 1: Kiểm tra trạng thái ban đầu của tenant
Trước khi cấu hình gì, hãy biết mình đang đứng ở đâu.
Vào Entra admin center → Overview → Identity Secure Score.

Microsoft tự động chấm điểm tenant của bạn và liệt kê danh sách việc cần làm theo mức độ ưu tiên. Đây là roadmap miễn phí — đừng bỏ qua.
Thường thấy ở tenant mới hoặc chưa cấu hình:
- Score dưới 30%
- Top issues: “Require MFA for admin roles”, “Enable self-service password reset”, “Don’t expire passwords”
Ghi lại điểm ban đầu. Sau bài này điểm sẽ tăng đáng kể.
Bước 2: Tắt Security Defaults, bật Conditional Access
Microsoft tạo ra Security Defaults cho tenant mới — tự động bật MFA cho tất cả user. Đây là xuất phát điểm tốt nhưng không đủ linh hoạt cho doanh nghiệp:
- Không thể ngoại lệ cho service account
- Không thể điều chỉnh theo vị trí địa lý, thiết bị, mức độ rủi ro
- Không có audit log chi tiết
Nếu tenant đang bật Security Defaults, hãy tắt đi và chuyển sang Conditional Access.
Cách kiểm tra và tắt Security Defaults:
- Vào Entra admin center → Properties
- Cuộn xuống dưới → Manage security defaults
- Chuyển sang Disabled → lý do: “My organization is using Conditional Access”

Lưu ý: Sau khi tắt Security Defaults, tenant của bạn không có bảo vệ gì cho đến khi Conditional Access được bật. Làm bước 3 ngay lập tức, không delay.
Bước 3: Tạo Conditional Access policy – yêu cầu MFA cho tất cả user
Đây là policy quan trọng nhất. Mọi tenant đều cần có cái này.
Cách tạo:
- Vào Entra admin center → Protection → Conditional Access → New policy
- Đặt tên:
CA001 - Require MFA for All Users - Assignments:
- Users: All users
- Exclude: tài khoản break-glass vừa tạo ở trên
- Cloud apps: All cloud apps
- Conditions: để mặc định (chưa cần lọc gì)
- Grant:
- Chọn Grant access
- Tick Require multifactor authentication
- Enable policy: bật sang On (KHÔNG dùng Report-only nếu bạn muốn enforce ngay)

Sau khi lưu, tất cả user khi đăng nhập vào Microsoft 365 lần tới sẽ được yêu cầu đăng ký MFA (nếu chưa có) hoặc xác thực MFA (nếu đã đăng ký rồi).

Bước 4: Tạo Conditional Access policy – bảo vệ riêng cho admin
Admin accounts là mục tiêu số 1 của attacker. Cần policy chặt hơn user thường.
- Tạo policy mới, đặt tên:
CA002 - Require MFA for Admin Roles - Assignments:
- Users: Directory roles → chọn các role nhạy cảm: Global Administrator, Security Administrator, Exchange Administrator, SharePoint Administrator, Conditional Access Administrator
- Exclude: break-glass account
- Cloud apps: All cloud apps
- Grant:
- Require multifactor authentication
- Require authentication strength → chọn Phishing-resistant MFA (nếu có P2 license — yêu cầu FIDO2 key hoặc Windows Hello, không chấp nhận SMS)
- Session:
- Sign-in frequency: 4 hours (admin session không nên tồn tại quá lâu)

Bước 5: Bật Microsoft Authenticator và đăng ký MFA cho user
Sau khi bật Conditional Access, user sẽ được prompt đăng ký MFA lần đăng nhập tiếp theo. Nhưng bạn nên chủ động cấu hình phương thức MFA được phép trước.
Cách cấu hình:
- Vào Entra admin center → Protection → Authentication methods
- Bật Microsoft Authenticator (push notification + passwordless)
- Tắt các phương thức yếu hơn nếu muốn nâng cao bảo mật:
- SMS – dễ bị SIM swap, nên disable nếu doanh nghiệp chấp nhận
- Voice call – tương tự SMS

Từ thực tế: Đừng tắt SMS ngay nếu user chưa chuẩn bị – sẽ có người bị lock out. Mình thường để SMS song song với Authenticator trong 2-4 tuần đầu, sau đó mới tắt dần.
Bước 6: Bật Microsoft Entra ID Protection (nếu có P2)
Nếu bạn có Entra ID P2, đây là tính năng không nên bỏ qua. Identity Protection tự động phát hiện các dấu hiệu tài khoản bị compromise: đăng nhập từ địa điểm bất thường, credential leak, impossible travel, v.v.
Cấu hình Sign-in risk policy:
- Vào Entra admin center → Protection → Identity Protection → Sign-in risk policy
- Users: All users (exclude break-glass)
- Sign-in risk: Medium and above
- Controls: Require MFA
- Bật policy

Cấu hình User risk policy:
- Vào User risk policy
- User risk: High
- Controls: Require password change
- Bật policy
Khi Identity Protection phát hiện tài khoản có dấu hiệu bị compromise (ví dụ: password xuất hiện trong data breach), hệ thống tự động yêu cầu đổi password – không cần admin can thiệp thủ công.
Bước 7: Kiểm tra lại và monitor
Sau khi cấu hình xong, hãy kiểm tra bằng cách:
Test policy hoạt động đúng:
- Mở trình duyệt ẩn danh (InPrivate)
- Đăng nhập bằng một tài khoản user thông thường
- Hệ thống phải yêu cầu MFA → nếu có thì policy đang hoạt động
Kiểm tra Sign-in logs:
- Vào Entra admin center → Monitoring → Sign-in logs
- Lọc theo ngày hôm nay
- Xem cột Conditional Access → các entry phải hiển thị Success hoặc MFA required

Xem lại Identity Secure Score: Quay lại trang Identity Secure Score và kiểm tra điểm đã tăng chưa. Thường sau bài này điểm tăng 15-25 điểm.
Tổng kết những gì đã làm
Sau bài này, tenant của bạn đã có:
- Tài khoản break-glass để dùng trong tình huống khẩn cấp
- MFA bắt buộc cho tất cả user
- MFA chặt hơn (phishing-resistant) cho admin accounts
- Session timeout 4 giờ cho admin
- Risk-based authentication tự động (nếu có P2)
- Baseline để đo lường bằng Identity Secure Score
Đây là nền tảng. Không hoàn hảo – còn nhiều thứ cần làm tiếp – nhưng đã loại bỏ được phần lớn các vector tấn công phổ biến nhất.
Tài liệu tham khảo
Bài viết có gì chưa rõ hoặc bạn gặp lỗi ở bước nào, cứ để lại comment bên dưới – mình sẽ cập nhật bài.
Long Trần | khongkho.com
