LAB 09 AZ-500 ~40 phút Chương 02 Conditional Access

Conditional Access theo Device Compliance

Xây dựng CA policy chỉ cho phép truy cập Azure Portal khi thiết bị đạt chuẩn compliance (managed by Intune, enrolled, compliant). Thực hành Report-only mode và What If để phân tích tác động trước khi enforce thật trong môi trường có Intune.

🎯 Mục Tiêu Lab

Hiểu khái niệm Device Compliance trong Microsoft Intune và Entra ID

Tạo CA policy yêu cầu Compliant device hoặc Hybrid Entra ID Joined

Áp dụng cho nhóm lab với target: Azure Portal và Microsoft Admin Portals

Chạy Report-only và phân tích kết quả What If tool

Hiểu các trạng thái device: Compliant, Non-compliant, Registered, Not Registered

Nắm rõ luồng xử lý khi user cố truy cập từ thiết bị chưa enrolled

📋 Chuẩn Bị

Yêu cầu:
  • Quyền Conditional Access Administrator / Global Admin
  • Entra ID P1/P2 license
  • Microsoft Intune license (để có compliant device thật)
  • Break-glass account đã chuẩn bị
  • Ít nhất 1 thiết bị enrolled vào Intune (để test)
Lưu ý thực tế:
  • Nếu không có Intune: dùng Report-only + What If để hiểu concept
  • Device compliance cần thiết bị được managed bởi Intune hoặc joined Hybrid AD
  • BYOD cần enrolled vào Intune mới có trạng thái Compliant
  • Kết hợp MFA + Compliant device = Zero Trust strong authentication

🏗️ Kịch Bản

Sau khi bật MFA và block legacy auth, Security team HoaTranLab Corp muốn tiến thêm một bước: chỉ cho phép truy cập Azure Portal và Microsoft Admin Portals từ thiết bị đã được quản lý (Intune enrolled, compliant). Thiết bị cá nhân chưa enrolled sẽ bị chặn kể cả khi đã qua MFA. Đây là nguyên tắc Zero Trust Device Trust: verify identity + verify device.

Zero Trust Device Check Flow:
User đăng nhập → CA checks: (1) Identity OK? → (2) MFA completed? → (3) Device Compliant? → Grant / Block

Các Trạng Thái Device cần biết

Compliant

Thiết bị enrolled Intune, đáp ứng compliance policy (BitLocker, antivirus, OS version…). Đây là trạng thái CA chấp nhận.

Entra ID Registered

Thiết bị BYOD đăng ký với Entra ID nhưng chưa managed. Không đủ để pass compliance policy.

Hybrid Entra ID Joined

Máy join domain AD on-prem và sync lên Entra ID. Có thể được coi là Compliant nếu cấu hình đúng với Intune co-management.

Not Compliant / Not Enrolled

Thiết bị cá nhân chưa enrolled, hoặc enrolled nhưng vi phạm compliance policy. CA sẽ block.

🧪 Các Bước Thực Hiện

1

Kiểm Tra Thiết Bị Đã Enrolled trong Entra ID

Cách 1 — Portal
  1. 1.1Entra ID → Devices → All devices → xem danh sách thiết bị
  2. 1.2Chú ý cột: Join Type, Compliance, MDM (Intune), Registered
  3. 1.3Nếu có Intune: Intune admin center (intune.microsoft.com) → Devices → All devices → xem Compliance status
Cách 2 — Microsoft Graph PowerShell
Microsoft Graph PowerShell
Connect-MgGraph -Scopes "Device.Read.All"

# Xem tất cả thiết bị và trạng thái compliance
Get-MgDevice -All |
  Select-Object DisplayName,
    @{N="JoinType";E={$_.TrustType}},           # AzureAD, ServerAD, Workplace
    @{N="MDM";E={$_.ManagementType}},            # MDM = Intune managed
    @{N="Compliant";E={$_.IsCompliant}},
    @{N="Enabled";E={$_.AccountEnabled}},
    OperatingSystem, OperatingSystemVersion |
  Format-Table -AutoSize

# Chỉ xem device đang Compliant
Get-MgDevice -Filter "isCompliant eq true" |
  Select-Object DisplayName, TrustType, OperatingSystem |
  Format-Table -AutoSize
2

Tạo CA Policy — Yêu Cầu Compliant Device

Cách 1 — Portal (chính)
  1. 2.1Conditional Access → New policy
  2. 2.2Name: CA-AZ500-RequireCompliantDevice-AdminPortals
  3. 2.3Users: Include → Groups → GRP-AZ500-PrivilegedAdmins → Exclude break-glass
  4. 2.4Target resources: Select apps → Microsoft Azure Management + Microsoft Admin Portals
  5. 2.5Grant: Grant access → tick Require device to be marked as compliant
  6. 2.6Tuỳ chọn thêm: có thể tick thêm Require Hybrid Azure AD joined device → operator: OR (chấp nhận 1 trong 2)
  7. 2.7Enable policy: Report-only → Save
Cách 2 — Microsoft Graph PowerShell
Microsoft Graph PowerShell
Connect-MgGraph -Scopes "Policy.ReadWrite.ConditionalAccess"

$groupId = (Get-MgGroup -Filter "DisplayName eq 'GRP-AZ500-PrivilegedAdmins'").Id
$bgId    = (Get-MgUser  -Filter "UserPrincipalName eq '[email protected]'").Id

$params = @{
    displayName = "CA-AZ500-RequireCompliantDevice-AdminPortals"
    state = "enabledForReportingButNotEnforced"   # Report-only
    conditions = @{
        users = @{
            includeGroups = @($groupId)
            excludeUsers  = @($bgId)
        }
        applications = @{
            includeApplications = @(
                "797f4846-ba00-4fd7-ba43-dac1f8f63013",  # Azure Management
                "adminPortals"                            # Microsoft Admin Portals
            )
        }
    }
    grantControls = @{
        operator = "OR"
        builtInControls = @(
            "compliantDevice",          # Intune compliant
            "domainJoinedDevice"        # Hybrid Entra ID joined
        )
    }
}
New-MgIdentityConditionalAccessPolicy -BodyParameter $params
Write-Host "CA-AZ500-RequireCompliantDevice created (Report-only)"
Grant operator OR: Cho phép user pass nếu device là Compliant HOẶC Hybrid Joined. Dùng AND nếu muốn yêu cầu cả 2 điều kiện cùng lúc (cực kỳ restrictive, ít dùng).
3

Phân Tích bằng What If Tool

Cách 1 — Portal
  1. 3.1Conditional Access → What If
  2. 3.2Test 1 — Thiết bị không compliant: User = az500-admin01, App = Microsoft Azure Management, Device platform = Windows, Device = (không chọn compliant device) → Run → kết quả: Grant = Require compliant device → sẽ bị block nếu On
  3. 3.3Test 2 — Thiết bị compliant: Thêm điều kiện Device state = Compliant → Run → kết quả: Granted
  4. 3.4Test 3 — Break-glass: User = az500-breakglass → Run → Not applied (excluded)
  5. 3.5Chú ý output: What If hiển thị which policies applywhat grant controls are required
Cách 2 — Xem Report-only Results
Microsoft Graph PowerShell
Connect-MgGraph -Scopes "AuditLog.Read.All"

# Xem sign-in log với CA report-only results cho admin user
$userId = (Get-MgUser -Filter "UserPrincipalName eq '[email protected]'").Id
$since  = (Get-Date).AddHours(-24).ToString("yyyy-MM-ddTHH:mm:ssZ")

Get-MgAuditLogSignIn `
  -Filter "userId eq '$userId' and createdDateTime ge $since" `
  -Top 10 |
  Select-Object CreatedDateTime,
    @{N="App";E={$_.AppDisplayName}},
    @{N="Device";E={$_.DeviceDetail.DisplayName}},
    @{N="DeviceCompliant";E={$_.DeviceDetail.IsCompliant}},
    @{N="CAReportOnly";E={
      ($_.AppliedConditionalAccessPolicies |
        Where-Object { $_.DisplayName -like "*CompliantDevice*" }).Result
    }} |
  Format-Table -AutoSize
4

Bật Policy On và Xác Nhận Hành Vi

Cách 1 — Portal
  1. 4.1Sau khi Report-only log xác nhận: thiết bị compliant pass, thiết bị không enrolled bị block → bật On
  2. 4.2Thử đăng nhập từ thiết bị personal chưa enrolled → xem thông báo: "Your device is not compliant. Contact your IT administrator."
  3. 4.3Sign-in log → Event bị block: Conditional Access = Failure, Reason = Device not compliant
  4. 4.4Thử từ thiết bị Intune-enrolled compliant → đăng nhập thành công (chỉ cần pass MFA)
Expected Output — Sign-in log sau khi bật policy
# Thiết bị KHÔNG compliant:
Sign-in Status     : Failure
Error Code         : 530003 hoặc 53003
CA Policy          : CA-AZ500-RequireCompliantDevice-AdminPortals
CA Result          : Failure — Grant control: compliantDevice NOT met
Device Compliant   : False / Not Enrolled

# Thiết bị compliant (Intune managed):
Sign-in Status     : Success
CA Policy          : CA-AZ500-RequireCompliantDevice-AdminPortals
CA Result          : Success — compliantDevice: True
Device Compliant   : True

📊 Kết Quả Đầu Ra

Hiểu được device states

Phân biệt Compliant / Registered / Hybrid Joined / Not Enrolled trong Entra ID Devices

CA Policy tạo thành công

CA-AZ500-RequireCompliantDevice-AdminPortals với Grant = compliantDevice OR domainJoined

What If xác nhận đúng

Non-compliant device → block, Compliant device → grant, Break-glass → not applied

Report-only log phân tích được

Sign-in log hiển thị CA policy report result: Success/Failure/Not applied theo device state

🧹 Dọn Dẹp

Microsoft Graph PowerShell
# Tắt policy sau lab (trong môi trường không có Intune)
$policyId = (Get-MgIdentityConditionalAccessPolicy `
  -Filter "displayName eq 'CA-AZ500-RequireCompliantDevice-AdminPortals'").Id

Update-MgIdentityConditionalAccessPolicy `
  -ConditionalAccessPolicyId $policyId `
  -State "disabled"
Write-Host "Policy disabled — ready for next lab"

# Tóm tắt tất cả CA policies đã tạo trong Lab 05-09:
Get-MgIdentityConditionalAccessPolicy |
  Select-Object DisplayName, State |
  Where-Object { $_.DisplayName -like "CA-AZ500-*" } |
  Format-Table -AutoSize

❓ Câu Hỏi Ôn Tập

1. Sự khác nhau giữa "Entra ID Registered" và "Entra ID Joined" về mặt device compliance?

Gợi ý: Registered = BYOD, chỉ đăng ký nhận email/apps, không đủ để CA compliance check. Joined = corporate device, fully managed, có thể đạt Compliant khi đáp ứng Intune policy

2. Tại sao nên đặt Grant operator là OR (compliantDevice OR domainJoined) thay vì chỉ compliantDevice?

Gợi ý: Tổ chức hybrid có máy join AD on-prem (Hybrid Joined) nhưng chưa fully managed bởi Intune — nếu chỉ require compliantDevice sẽ lock out toàn bộ nhóm này

3. Khi user truy cập từ thiết bị personal chưa enrolled và bị CA block, họ thấy thông báo gì và phải làm gì?

Gợi ý: Thông báo "Your device is not compliant" với hướng dẫn liên hệ IT. User cần enroll thiết bị vào Intune qua Company Portal app, sau đó thiết bị được đánh giá compliance

4. Kết hợp MFA + Compliant Device trong CA policy liên quan đến Zero Trust như thế nào?

Gợi ý: Zero Trust: "Never trust, always verify" — verify identity (MFA) + verify device health (Compliant) = trust signal đủ mạnh để grant access theo principle of least privilege

5. Nếu bật policy compliant device mà không có Intune license, điều gì xảy ra?

Gợi ý: Mọi thiết bị đều sẽ bị block vì không có cơ chế để device đạt trạng thái Compliant (cần Intune để evaluate compliance). Đây là lý do chỉ dùng Report-only nếu chưa có Intune

Tổng Kết Chương 02 — Lab 05-09

Hoàn thành 5 lab về MFA, Authentication Methods và Conditional Access — nền tảng bảo mật identity của AZ-500:

Lab 05: MFA bắt buộc cho admin qua CA + Report-only + break-glass
Lab 06: Authentication Methods — Authenticator, tắt SMS, TAP
Lab 07: Named Location VN + chặn đăng nhập ngoài lãnh thổ
Lab 08: Block toàn bộ legacy authentication protocols
Lab 09: Device Compliance — chỉ cho phép thiết bị managed
Lab 08: Block Legacy Auth Thư viện Labs Lab 10: RBAC Resource Group
Zalo