Chào các bạn!
Ở bài trước, mình đã hướng dẫn bật MFA cho toàn bộ user và admin. Đó là nền tảng – nhưng mới chỉ là bước đầu.
Thực tế mình hay gặp: sau khi bật Conditional Access xong, doanh nghiệp bắt đầu thêm policy này, policy kia theo nhu cầu phát sinh. Vài tháng sau nhìn lại có 15-20 policy chồng chéo nhau, không ai hiểu cái nào đang làm gì, và thỉnh thoảng có user bị block mà không rõ lý do.
Bài này mình sẽ chia sẻ cách thiết kế Conditional Access có hệ thống từ đầu – bao gồm tạo named locations, block đăng nhập từ nước ngoài, yêu cầu thiết bị compliant, và dùng What If tool để kiểm tra trước khi enforce.
Vấn đề với cách làm “thêm policy khi cần”
Conditional Access hoạt động theo nguyên tắc: tất cả policy đều được evaluate, kết quả cuối là grant hoặc block dựa trên policy chặt nhất áp dụng.
Ví dụ bạn có 2 policy:
- Policy A: user ở văn phòng → không cần MFA
- Policy B: tất cả user → cần MFA
Kết quả: user ở văn phòng vẫn phải MFA – vì Policy B áp dụng và không có ngoại lệ.
Nếu không hiểu cơ chế này, bạn sẽ liên tục thắc mắc “tại sao user vẫn bị yêu cầu MFA dù mình đã tạo policy miễn trừ rồi?”
Giải pháp: thiết kế policy matrix trên giấy trước, code sau.
Policy matrix – cách tổ chức Conditional Access không bị rối
Trước khi vào Entra portal, hãy vẽ ra một bảng như này:
| Policy ID | Tên | Users | Apps | Điều kiện | Grant/Block |
|---|---|---|---|---|---|
| CA001 | Require MFA – all users | All users (trừ break-glass) | All apps | – | Require MFA |
| CA002 | Require MFA – admin roles | Admin roles | All apps | – | Require phishing-resistant MFA |
| CA003 | Block legacy auth | All users | All apps | Client app: legacy | Block |
| CA004 | Block sign-in from outside Vietnam | All users (trừ exceptions) | All apps | Location: outside Vietnam | Block |
| CA005 | Require compliant device – corp apps | All users | SharePoint, Exchange | Device: unmanaged | Require compliant device |
| CA006 | Session control – unmanaged devices | All users | All apps | Device: unmanaged | Limit session (no download) |
Bảng này là source of truth – mỗi khi cần thêm policy mới, cập nhật bảng trước, review conflict trước, rồi mới tạo trong portal.
Quy tắc đặt tên:
CA[3 chữ số] - [Mô tả ngắn]. Ví dụ:CA001,CA002. Khi đọc sign-in log sẽ thấy rõ ngay policy nào trigger.

Bước 1: Tạo named locations
Named locations là cách khai báo “đây là vị trí tin cậy” hoặc “đây là vùng địa lý muốn xử lý riêng”. Cần tạo trước khi viết policy liên quan đến location.
1a. Tạo trusted location cho văn phòng (IP-based)
- Vào Entra admin center → Protection → Conditional Access → Named locations
- Chọn + IP ranges location
- Đặt tên:
Trusted - Van phong Ha Noi - Tick Mark as trusted location
- Thêm IP public của văn phòng (hỏi bộ phận network hoặc vào whatismyip.com khi đang ở văn phòng)
- Lưu lại

Nếu có nhiều văn phòng, tạo từng named location riêng hoặc gộp nhiều IP range vào cùng một location.
1b. Tạo location cho Việt Nam (country-based)
- Chọn + Countries location
- Đặt tên:
Countries - Vietnam - Tìm và chọn Vietnam
- Lưu

Sau bước này bạn có 2 named locations. Phần tiếp theo sẽ dùng cả hai.
Bước 2: Block legacy authentication
Legacy authentication (SMTP, IMAP, POP3, Office 2010 và cũ hơn) không hỗ trợ MFA. Đây là lỗ hổng phổ biến – bật MFA cho user xong nhưng attacker vẫn vào được qua IMAP vì client cũ.
Theo thống kê của Microsoft, hơn 97% password spray attacks dùng legacy authentication protocols.
Tạo policy CA003:
- Tạo policy mới:
CA003 - Block Legacy Authentication - Users: All users (exclude break-glass)
- Cloud apps: All cloud apps
- Conditions → Client apps:
- Tick Exchange ActiveSync clients
- Tick Other clients
- Bỏ tick Browser và Mobile apps and desktop clients
- Grant: Block access
- Bật policy

Lưu ý trước khi bật: Kiểm tra xem doanh nghiệp có dùng printer/scanner/app cũ gửi email qua SMTP không. Những thiết bị này sẽ bị ảnh hưởng. Nếu có, cần cấu hình service account riêng với SMTP authentication được exempt.
Bước 3: Block đăng nhập từ ngoài Việt Nam
Nếu doanh nghiệp không có nhân viên làm việc ở nước ngoài, đây là một trong những policy có ROI cao nhất – loại bỏ phần lớn các cuộc tấn công brute force và password spray từ nước ngoài.
Tạo policy CA004:
- Tạo policy mới:
CA004 - Block Sign-in Outside Vietnam - Users: All users
- Exclude: break-glass account
- Exclude: [tên user nào thường xuyên đi công tác nước ngoài, nếu có]
- Cloud apps: All cloud apps
- Conditions → Locations:
- Include: Any location
- Exclude:
Countries - Vietnam(named location vừa tạo)
- Grant: Block access
- Bật Report-only trước – không bật On ngay

Tại sao dùng Report-only trước? Vì policy này ảnh hưởng tất cả user. Nếu có ai đang dùng VPN với IP nước ngoài, hoặc Microsoft xác định location sai, họ sẽ bị block ngay lập tức. Để Report-only 3-7 ngày, xem sign-in log xem có ai bị ảnh hưởng không trước khi enforce.
Sau 3-7 ngày theo dõi, xem Sign-in logs → filter theo policy CA004 → xem kết quả “Would block”. Nếu không có case nào bất thường, đổi sang On.
Bước 4: Onboard thiết bị vào Microsoft Intune
Để tạo policy yêu cầu thiết bị compliant, thiết bị phải được quản lý bởi Intune trước.
Bài này giả định bạn đã có Intune license (Microsoft 365 Business Premium hoặc EMS E3 trở lên). Chi tiết onboard Intune sẽ có bài riêng trong series.
Kiểm tra Intune đã được bật chưa:
- Vào https://intune.microsoft.com/
- Devices → Enrollment → kiểm tra các platform đã được enable chưa

Enroll thiết bị Windows nhanh nhất qua Settings:
- Trên máy Windows: Settings → Accounts → Access work or school → Connect
- Đăng nhập bằng tài khoản Microsoft 365
- Chờ device sync vào Intune (~5-10 phút)
Sau khi enroll, thiết bị xuất hiện trong Intune → Devices → All devices.

Bước 5: Tạo device compliance policy
Compliance policy định nghĩa thế nào là “thiết bị đủ điều kiện”. Thiết bị vi phạm sẽ bị đánh dấu Not compliant và Conditional Access sẽ dựa vào đó để block.
Tạo compliance policy cho Windows:
- Vào Intune → Devices → Compliance policies → + Create policy
- Platform: Windows 10 and later
- Đặt tên:
Compliance - Windows Corp Devices - Cấu hình các điều kiện:
| Thuộc tính | Giá trị khuyên dùng |
|---|---|
| Minimum OS version | 10.0.19041 (Windows 10 20H1 trở lên) |
| BitLocker | Required |
| Secure Boot | Required |
| Code integrity | Required |
| Antivirus | Required |
| Antispyware | Required |
| Microsoft Defender Antimalware | Required |
| Real-time protection | Required |

- Actions for noncompliance:
- Immediately: Mark device as noncompliant
- After 1 day: Send email to end user
- After 3 days: Retire device (optional – cân nhắc tùy môi trường)
- Gán policy cho nhóm thiết bị hoặc nhóm user → Save
Bước 6: Tạo Conditional Access policy – yêu cầu thiết bị compliant
Giờ kết nối Intune compliance với Conditional Access.
Tạo policy CA005:
- Tạo policy mới:
CA005 - Require Compliant Device - Corp Apps - Users: All users (exclude break-glass, exclude service accounts)
- Cloud apps: Chọn các app quan trọng:
- Microsoft SharePoint Online
- Exchange Online (email)
- Microsoft Teams
- Conditions → Filter for devices:
- Không cần cấu hình thêm ở đây nếu dùng Grant control
- Grant:
- Require device to be marked as compliant (Intune compliance)
- Hoặc Require Microsoft Entra hybrid joined device (nếu đang hybrid với AD on-prem)
- Nếu muốn linh hoạt: tick cả hai, chọn Require one of the selected controls
- Bật Report-only trước, sau 3-5 ngày kiểm tra log rồi mới enforce

Bước 7: Giới hạn session trên thiết bị không quản lý
Dù bạn có block thiết bị không compliant trên SharePoint/Exchange, vẫn có trường hợp cần cho phép user truy cập từ thiết bị cá nhân (ví dụ: nhân viên dùng điện thoại cá nhân để đọc email). Lúc này cần giới hạn những gì họ có thể làm.
Tạo policy CA006:
- Tạo policy mới:
CA006 - Limit Session - Unmanaged Devices - Users: All users
- Cloud apps: SharePoint Online, Exchange Online
- Conditions → Filter for devices:
- Rule:
device.isCompliant -eq FalseANDdevice.trustType -ne "ServerAD" - (Tức là thiết bị không compliant và không phải hybrid joined)
- Rule:
- Session:
- Tick Use app enforced restrictions

Với policy này, user dùng thiết bị cá nhân truy cập SharePoint qua browser sẽ không thể download file, không thể sync – chỉ xem online.
Tính năng “app enforced restrictions” cần được bật thêm ở phía SharePoint và Exchange. Vào SharePoint admin center → Access control → Unmanaged devices → chọn Allow limited, web-only access.

Bước 8: Dùng What If tool để kiểm tra trước khi enforce
Đây là tính năng rất hay mà ít người biết. What If cho phép bạn simulate một tình huống đăng nhập và xem policy nào sẽ áp dụng – mà không cần đăng nhập thật.
Cách dùng:
- Vào Entra admin center → Conditional Access → What If
- Điền các thông tin:
- User: chọn một user cụ thể
- Cloud apps: SharePoint Online
- IP address: điền IP ở nước ngoài (ví dụ: 8.8.8.8)
- Device platform: Windows
- Client app: Browser
- Bấm What If

Kết quả sẽ hiện:
- Danh sách policies sẽ áp dụng
- Kết quả: Grant với điều kiện gì, hoặc Block
- Policies nào sẽ không áp dụng và lý do
Đây là cách mình test trước mỗi khi tạo policy mới. Không cần dùng tài khoản thật, không sợ tự lock out.
Kiểm tra và xử lý sự cố thường gặp
User bị block không rõ lý do
- Vào Entra admin center → Monitoring → Sign-in logs
- Tìm sign-in của user theo thời gian
- Click vào sign-in event → tab Conditional Access
- Xem policy nào Failed — click vào để xem chi tiết lý do

Xóa policy không cẩn thận gây gián đoạn
Không bao giờ xóa policy đang On mà không test trước. Quy trình đúng:
- Đổi sang Report-only trước
- Theo dõi 24-48 giờ
- Nếu không có vấn đề mới xóa
Tất cả admin bị lock out (trường hợp xấu nhất)
Đây là lúc dùng break-glass account từ bài 1. Đăng nhập bằng break-glass account, vào Conditional Access và tắt policy gây vấn đề.
Tổng kết policy matrix sau bài này
| Policy | Mục đích | Trạng thái khuyên dùng |
|---|---|---|
| CA001 | Require MFA — all users | On |
| CA002 | Require MFA — admin roles (phishing-resistant) | On |
| CA003 | Block legacy authentication | On |
| CA004 | Block sign-in outside Vietnam | On (sau 7 ngày report-only) |
| CA005 | Require compliant device — corp apps | On (sau 5 ngày report-only) |
| CA006 | Limit session — unmanaged devices | On |
6 policy này tạo thành một lớp bảo vệ vững chắc cho phần lớn doanh nghiệp vừa và nhỏ.
Tài liệu tham khảo
- Conditional Access: Common policies
- What If tool
- Block legacy authentication
- Require compliant device
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
