MD-102 Giai đoạn 2 – Compliance Module 13
13

Compliance Policies & Conditional Access

Device Compliance • Compliance Policy Settings • Conditional Access • Named Locations • MFA Enforcement

Microsoft Intune Entra ID Conditional Access MD-102

01 · Lý thuyết

Device Compliance – Thiết bị "tuân thủ" nghĩa là gì?

Compliance Policy trong Intune xác định các tiêu chí một thiết bị phải đáp ứng để được coi là Compliant. Nếu không đáp ứng, thiết bị bị đánh dấu Non-compliant và có thể bị chặn truy cập tài nguyên qua Conditional Access.

Nhóm cài đặtVí dụ tiêu chíMục đích bảo mật
Device HealthRequire BitLocker, Require Secure Boot, Require Code IntegrityĐảm bảo thiết bị không bị tamper
Device PropertiesMin OS: Win 10 21H2, Max OS: Win 11 22H2Chỉ cho phép OS đã được test/approve
Configuration ManagerRequire device compliance from ConfigMgrCo-managed devices phải pass cả hai
System SecurityRequire password, Min password length 8, Max inactivity 5 minBảo vệ nếu thiết bị để quên
Microsoft DefenderRequire real-time protection, Require antivirus up-to-dateThiết bị phải có AV đang hoạt động
EncryptionRequire encryption of data storageĐảm bảo ổ đĩa được mã hóa

Compliance Policy Actions – Phản ứng khi Non-compliant

ActionScheduleMô tả
Mark device non-compliantImmediatelyNgay lập tức đánh dấu non-compliant (default)
Send email to end userAfter N daysThông báo user tự fix
Send push notificationAfter N daysNotification qua Company Portal
Retire deviceAfter N daysRemove enrollment (last resort)
Grace periodN daysCho phép X ngày để remediate trước khi block

Conditional Access – Cổng kiểm soát truy cập

Conditional Access (CA) là tính năng của Entra ID (không phải Intune) — hoạt động như một "policy engine" kiểm tra Signals và quyết định có cho phép truy cập hay không.

CA Policy = IF (Conditions) THEN (Access Controls)

SIGNALS (Conditions)

User / Group

Device platform

Location (IP)

Application

Device compliance

Sign-in risk

DECISION

Allow / Block / Grant with controls

ACCESS CONTROLS

Require MFA

Require compliant device

Require Entra Joined

Block access

Require app protection

Require password change

Named Locations – Vị trí tin cậy

LoạiĐịnh nghĩa bằngUse case
IP rangesDanh sách IPv4/IPv6 CIDRĐánh dấu IP văn phòng là "trusted" → không cần MFA
CountriesDanh sách quốc giaBlock truy cập từ các nước không hoạt động
Compliant networkGlobal Secure AccessChỉ cho phép từ mạng đã bảo mật
Cảnh báo quan trọng: Luôn bật CA policy ở chế độ Report-only trước khi Enable. Nếu policy sai có thể khóa toàn bộ admin ra khỏi tenant. Luôn để ít nhất 1 break-glass account không bị CA policy tác động.

02 · Thực hành

Lab A: Tạo Compliance Policy cho Windows

Thực hành tại: intune.microsoft.com → Devices → Compliance → Create policy

  1. Vào DevicesComplianceCreate policy
  2. Platform: Windows 10 and later → Create
  3. Name: Compliance-Windows-Corp-Standard
  4. Tab Compliance settings:
    Device Health:
    • Require BitLocker: Require
    • Require Secure Boot: Require
    System Security:
    • Password required: Require
    • Minimum password length: 8
    • Max minutes of inactivity before password is required: 5
    • Password expiration: 90 days
    Microsoft Defender:
    • Microsoft Defender Antimalware: Require
    • Real-time protection: Require
  5. Tab Actions for noncompliance:
    • Mark device noncompliant: Immediately (Schedule: 0 days)
    • Send email to end user: Schedule: 1 day
    • Send push notification: Schedule: 3 days
  6. Tab Assignments: Assign to All Devices → Create

Lab B: Tạo Conditional Access Policy – Require Compliant Device

Thực hành tại: entra.microsoft.com → Protection → Conditional Access → New policy

  1. Vào entra.microsoft.comProtectionConditional AccessNew policy
  2. Name: CA-Require-Compliant-Device-M365
  3. Users: Include → All users
    Exclude → Break-glass accounts (luôn exclude!)
  4. Target resources: Cloud apps → Include → Office 365
  5. Conditions:
    • Device platforms: Include → Windows, iOS, Android, macOS
    • Locations: (không cần filter nếu muốn áp dụng mọi nơi)
  6. Grant: Grant access → check Require device to be marked as compliant
  7. Enable policy: Report-only (test 1 tuần trước)
    → Sau 1 tuần, kiểm tra Sign-in logs → Enable: On

Lab C: Tạo CA Policy – Block High Risk Sign-in

Connect-MgGraph -Scopes "Policy.ReadWrite.ConditionalAccess","Policy.Read.All" # Tạo CA policy block high-risk sign-in $policy = @{ displayName = "CA-Block-HighRisk-SignIn" state = "enabledForReportingButNotEnforced" # Report-only mode conditions = @{ users = @{ includeUsers = @("All") excludeUsers = @("BREAK-GLASS-ACCOUNT-OBJECT-ID") } applications = @{ includeApplications = @("All") } signInRiskLevels = @("high") # Chỉ trigger khi risk = high } grantControls = @{ operator = "OR" builtInControls = @("block") # Block access } } | ConvertTo-Json -Depth 10 Invoke-MgGraphRequest -Method POST ` -Uri "https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies" ` -Body $policy -ContentType "application/json"
id : ca-policy-abc123-def456 displayName : CA-Block-HighRisk-SignIn state : enabledForReportingButNotEnforced createdDateTime : 2024-03-15T09:00:00Z # Kiểm tra sign-in logs sau 1 tuần (Report-only): # 542 sign-ins would have been blocked by this policy # 0 legitimate users would have been blocked # → Safe to enable!

Lab D: Kiểm tra Compliance Status

Connect-MgGraph -Scopes "DeviceManagementManagedDevices.Read.All" # Xem tất cả non-compliant devices $nonCompliant = Invoke-MgGraphRequest -Method GET ` -Uri "https://graph.microsoft.com/v1.0/deviceManagement/managedDevices?`$filter=complianceState eq 'noncompliant'" $nonCompliant.value | Select-Object deviceName, userDisplayName, complianceState, lastSyncDateTime, osVersion | Format-Table -AutoSize # Xem lý do non-compliant của một device cụ thể $deviceId = "device-id-here" Invoke-MgGraphRequest -Method GET ` -Uri "https://graph.microsoft.com/v1.0/deviceManagement/managedDevices/$deviceId/deviceCompliancePolicyStates"
deviceName userDisplayName complianceState lastSyncDateTime osVersion ---------- --------------- --------------- ---------------- --------- LAPTOP-KT01 Nguyen Van A noncompliant 2024-03-15T08:00:00Z 10.0.19041 PHONE-LE02 Le Thi B noncompliant 2024-03-14T22:00:00Z iOS 15.0 # Device LAPTOP-KT01 non-compliant vì: # - BitLocker: Not configured (Required) # - OS version: 10.0.19041 < minimum 10.0.19042 (Required)

03 · Tình huống thực tế

Công ty Chứng khoán SSI – Bảo vệ hệ thống giao dịch khỏi thiết bị không an toàn

SSI yêu cầu: chỉ thiết bị công ty đã được kiểm tra, mã hóa, và có Defender hoạt động mới được phép truy cập hệ thống giao dịch nội bộ và email. Thiết bị cá nhân hoàn toàn bị chặn.

Giải pháp triển khai:

  • Compliance Policy: BitLocker required, Secure Boot required, Defender required, min OS Win 10 21H2, password required với complexity
  • CA Policy 1: Require compliant device → tất cả M365 apps và Trading System (SAML SSO)
  • CA Policy 2: Block access từ unknown countries (chỉ Vietnam + Singapore DC)
  • CA Policy 3: Require MFA cho admin accounts luôn luôn, kể cả ở văn phòng
  • Grace period: 7 ngày cho phép nhân viên tự khắc phục trước khi bị block

Kết quả:

  • • 3 thiết bị cá nhân của broker bị chặn ngay sau khi enable CA (đúng chủ ý)
  • • 2 sự cố phishing thất bại: CA block do sign-in risk = high từ unfamiliar location
  • • Compliance rate: 97% sau 2 tuần (3% đang xử lý BitLocker setup)
  • • Audit report sạch: chứng minh với cơ quan thanh tra chứng khoán rằng hệ thống được bảo vệ