🎯 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ị
- 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)
- 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.
Các Trạng Thái Device cần biết
Thiết bị enrolled Intune, đáp ứng compliance policy (BitLocker, antivirus, OS version…). Đây là trạng thái CA chấp nhận.
Thiết bị BYOD đăng ký với Entra ID nhưng chưa managed. Không đủ để pass compliance policy.
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.
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
Kiểm Tra Thiết Bị Đã Enrolled trong Entra ID
- 1.1Entra ID → Devices → All devices → xem danh sách thiết bị
- 1.2Chú ý cột: Join Type, Compliance, MDM (Intune), Registered
- 1.3Nếu có Intune: Intune admin center (intune.microsoft.com) → Devices → All devices → xem Compliance status
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
Tạo CA Policy — Yêu Cầu Compliant Device
- 2.1Conditional Access → New policy
- 2.2Name:
CA-AZ500-RequireCompliantDevice-AdminPortals - 2.3Users: Include → Groups →
GRP-AZ500-PrivilegedAdmins→ Exclude break-glass - 2.4Target resources: Select apps → Microsoft Azure Management + Microsoft Admin Portals
- 2.5Grant: Grant access → tick Require device to be marked as compliant
- 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)
- 2.7Enable policy: Report-only → Save
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)"
Phân Tích bằng What If Tool
- 3.1Conditional Access → What If
- 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.3Test 2 — Thiết bị compliant: Thêm điều kiện Device state = Compliant → Run → kết quả: Granted
- 3.4Test 3 — Break-glass: User = az500-breakglass → Run → Not applied (excluded)
- 3.5Chú ý output: What If hiển thị which policies apply và what grant controls are required
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
Bật Policy On và Xác Nhận Hành Vi
- 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
- 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."
- 4.3Sign-in log → Event bị block: Conditional Access = Failure, Reason = Device not compliant
- 4.4Thử từ thiết bị Intune-enrolled compliant → đăng nhập thành công (chỉ cần pass MFA)
# 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
Phân biệt Compliant / Registered / Hybrid Joined / Not Enrolled trong Entra ID Devices
CA-AZ500-RequireCompliantDevice-AdminPortals với Grant = compliantDevice OR domainJoined
Non-compliant device → block, Compliant device → grant, Break-glass → not applied
Sign-in log hiển thị CA policy report result: Success/Failure/Not applied theo device state
🧹 Dọn Dẹp
# 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: