Conditional Access nâng cao: thiết kế policy matrix, block đăng nhập nước ngoài và yêu cầu thiết bị compliant

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 IDTênUsersAppsĐiều kiệnGrant/Block
CA001Require MFA – all usersAll users (trừ break-glass)All appsRequire MFA
CA002Require MFA – admin rolesAdmin rolesAll appsRequire phishing-resistant MFA
CA003Block legacy authAll usersAll appsClient app: legacyBlock
CA004Block sign-in from outside VietnamAll users (trừ exceptions)All appsLocation: outside VietnamBlock
CA005Require compliant device – corp appsAll usersSharePoint, ExchangeDevice: unmanagedRequire compliant device
CA006Session control – unmanaged devicesAll usersAll appsDevice: unmanagedLimit 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ụ: CA001CA002. 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)

  1. Vào Entra admin center → Protection → Conditional Access → Named locations
  2. Chọn + IP ranges location
  3. Đặt tên: Trusted - Van phong Ha Noi
  4. Tick Mark as trusted location
  5. 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)
  6. 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)

  1. Chọn + Countries location
  2. Đặt tên: Countries - Vietnam
  3. Tìm và chọn Vietnam
  4. 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:

  1. Tạo policy mới: CA003 - Block Legacy Authentication
  2. Users: All users (exclude break-glass)
  3. Cloud apps: All cloud apps
  4. Conditions → Client apps:
    • Tick Exchange ActiveSync clients
    • Tick Other clients
    • Bỏ tick Browser và Mobile apps and desktop clients
  5. Grant: Block access
  6. 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:

  1. Tạo policy mới: CA004 - Block Sign-in Outside Vietnam
  2. 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ó]
  3. Cloud apps: All cloud apps
  4. Conditions → Locations:
    • Include: Any location
    • Exclude: Countries - Vietnam (named location vừa tạo)
  5. Grant: Block access
  6. 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:

  1. Vào https://intune.microsoft.com/
  2. Devices → Enrollment → kiểm tra các platform đã được enable chưa

Enroll thiết bị Windows nhanh nhất qua Settings:

  1. Trên máy Windows: Settings → Accounts → Access work or school → Connect
  2. Đăng nhập bằng tài khoản Microsoft 365
  3. 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:

  1. Vào Intune → Devices → Compliance policies → + Create policy
  2. Platform: Windows 10 and later
  3. Đặt tên: Compliance - Windows Corp Devices
  4. Cấu hình các điều kiện:
Thuộc tínhGiá trị khuyên dùng
Minimum OS version10.0.19041 (Windows 10 20H1 trở lên)
BitLockerRequired
Secure BootRequired
Code integrityRequired
AntivirusRequired
AntispywareRequired
Microsoft Defender AntimalwareRequired
Real-time protectionRequired
  1. 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)
  2. 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:

  1. Tạo policy mới: CA005 - Require Compliant Device - Corp Apps
  2. Users: All users (exclude break-glass, exclude service accounts)
  3. Cloud apps: Chọn các app quan trọng:
    • Microsoft SharePoint Online
    • Exchange Online (email)
    • Microsoft Teams
  4. Conditions → Filter for devices:
    • Không cần cấu hình thêm ở đây nếu dùng Grant control
  5. 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
  6. 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:

  1. Tạo policy mới: CA006 - Limit Session - Unmanaged Devices
  2. Users: All users
  3. Cloud apps: SharePoint Online, Exchange Online
  4. Conditions → Filter for devices:
    • Rule: device.isCompliant -eq False AND device.trustType -ne "ServerAD"
    • (Tức là thiết bị không compliant và không phải hybrid joined)
  5. 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:

  1. Vào Entra admin center → Conditional Access → What If
  2. Đ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
  3. 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

  1. Vào Entra admin center → Monitoring → Sign-in logs
  2. Tìm sign-in của user theo thời gian
  3. Click vào sign-in event → tab Conditional Access
  4. 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:

  1. Đổi sang Report-only trước
  2. Theo dõi 24-48 giờ
  3. 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

PolicyMục đíchTrạng thái khuyên dùng
CA001Require MFA — all usersOn
CA002Require MFA — admin roles (phishing-resistant)On
CA003Block legacy authenticationOn
CA004Block sign-in outside VietnamOn (sau 7 ngày report-only)
CA005Require compliant device — corp appsOn (sau 5 ngày report-only)
CA006Limit session — unmanaged devicesOn

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


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