MODULE 01 Identity & Governance 20–25% đề thi ~3 giờ

Cấu hình Microsoft Entra ID

Tổng quan Microsoft Entra ID, so sánh với AD DS on-premises, các edition (Free/P1/P2), lợi ích cloud identity, và cấu hình Self-Service Password Reset (SSPR) — nền tảng quản trị danh tính Azure.

Lý Thuyết Cốt Lõi

1. Tổng Quan & Lợi Ích Microsoft Entra ID

Microsoft Entra ID (tên cũ: Azure Active Directory) là dịch vụ quản lý danh tính và quyền truy cập (Identity & Access Management — IAM) trên cloud của Microsoft. Mọi subscription Azure đều phải gắn với đúng một Entra ID tenant. Entra ID không thay thế AD DS on-premises mà hoạt động song song và tích hợp qua Microsoft Entra Connect.

Cloud-native IAM
  • • Đăng nhập một lần (SSO) vào hàng nghìn SaaS app
  • • Multi-Factor Authentication (MFA) tích hợp sẵn
  • • Conditional Access kiểm soát truy cập theo điều kiện
  • • Identity Protection phát hiện đăng nhập rủi ro
B2B & B2C
  • • B2B: mời đối tác/nhà cung cấp từ domain ngoài vào tenant
  • • B2C: quản lý danh tính khách hàng cho ứng dụng công khai
  • • Guest users hưởng quyền truy cập hạn chế
  • • Cross-tenant collaboration không cần VPN
Tích hợp & Quản trị
  • • Đồng bộ với on-prem AD qua Microsoft Entra Connect
  • • Privileged Identity Management (PIM) — just-in-time
  • • Access reviews kiểm tra định kỳ quyền truy cập
  • • Audit log, sign-in log đầy đủ
Tenant vs Directory: Mỗi tổ chức có một tenant duy nhất (ví dụ: contoso.onmicrosoft.com). Tenant ID là GUID không đổi. Một tenant có thể liên kết nhiều Azure subscriptions, nhưng một subscription chỉ trust một tenant.

2. So Sánh AD DS On-Premises vs Microsoft Entra ID

AD DS (Active Directory Domain Services) và Entra ID đều quản lý danh tính nhưng được thiết kế cho hai môi trường và giao thức hoàn toàn khác nhau. Không nên nhầm lẫn hai hệ thống này.

Tiêu chí AD DS (On-Premises) Microsoft Entra ID (Cloud)
Cấu trúc Hierarchical: Forest → Domain → OU Flat: Tenant → Users/Groups (không có OU)
Giao thức xác thực Kerberos, NTLM, LDAP OAuth 2.0, OpenID Connect, SAML 2.0
Quản lý thiết bị Group Policy (GPO) — domain join Intune MDM/MAM — Entra Join/Register
Hạ tầng Domain Controller on-prem (VM/bare metal) SaaS — Microsoft quản lý hoàn toàn, HA tự động
MFA & Conditional Access Không có sẵn (cần ADFS/MFA Server riêng) Tích hợp sẵn, cấu hình bằng portal/CLI
Phù hợp với Legacy app, domain join, GPO, on-prem file share Cloud app, M365, Azure resources, modern auth
Microsoft Entra Domain Services (AADDS): Nếu cần Kerberos/LDAP trên cloud mà không muốn duy trì DC on-prem, dùng Entra Domain Services — cung cấp domain join, GPO, LDAP dưới dạng managed service.

3. Các Edition Entra ID — Free / P1 / P2

Free
$0
Đi kèm M365 / Azure
  • User & Group management
  • SSO (tối đa 10 enterprise app)
  • B2B collaboration
  • MFA (security defaults)
  • Conditional Access
  • SSPR (cloud only)
  • Identity Protection
PHỔ BIẾN
P1
~$6
user/tháng
  • Tất cả tính năng Free
  • Conditional Access policies
  • SSPR (bao gồm on-prem writeback)
  • Hybrid Entra Join
  • Dynamic groups
  • SSO không giới hạn app
  • Identity Protection / PIM
P2
~$9
user/tháng
  • Tất cả tính năng P1
  • Identity Protection (risk policies)
  • Privileged Identity Management (PIM)
  • Access Reviews
  • Entitlement Management
  • Risky sign-in detection + remediation
Lưu ý cho AZ-104: Đề thi thường hỏi về P1 vs P2 — nhớ rằng Conditional Access cần P1 trở lên, PIM và Identity Protection yêu cầu P2. SSPR cloud-only có ở Free, nhưng on-premises password writeback cần P1.

4. Self-Service Password Reset (SSPR)

SSPR cho phép người dùng tự đặt lại mật khẩu hoặc mở khóa tài khoản mà không cần liên hệ IT Helpdesk — giảm gánh nặng support và tăng năng suất. Quản trị viên bật SSPR từ Entra ID → Password reset.

Phương thức xác thực SSPR
  • • Mobile app notification (Microsoft Authenticator)
  • • Mobile app code (TOTP 6 chữ số)
  • • Email (địa chỉ email thay thế)
  • • Mobile phone (SMS hoặc gọi thoại)
  • • Office phone (gọi thoại)
  • • Security questions (chỉ dùng bổ sung, không đứng một mình)
Cấu hình SSPR quan trọng
  • Enabled: None / Selected (nhóm cụ thể) / All
  • Number of methods required: 1 hoặc 2 (khuyến nghị 2)
  • Registration: bắt buộc đăng ký khi đăng nhập lần đầu
  • Notifications: gửi email khi mật khẩu được đặt lại
  • On-premises writeback: cần P1, Entra Connect, Write-back được bật
Luồng SSPR
User truy cập aka.ms/sspr Xác thực danh tính (≥1 method) Nhập mật khẩu mới Writeback về AD (nếu hybrid)

Bài Tập Thực Hành (Lab)

Lab M01-A: Entra ID Tenant Info Lab M01-B: Custom Domain Lab M01-C: SSPR Configuration Lab M01-D: License Assignment
1

Kiểm tra thông tin Entra ID Tenant và tạo Resource Group

Azure CLI— Chạy được trên PowerShell, CMD, Bash hoặc Azure Cloud Shell
# Đăng nhập Azure
az login

# Xem thông tin Entra ID tenant hiện tại
az account show --query '{tenantId:tenantId, subscriptionId:id, name:name}' -o json

# Xem danh sách tenant (nếu có nhiều)
az account tenant list -o table

# Xem thông tin tổ chức (display name, domain)
az rest --method GET \
  --url 'https://graph.microsoft.com/v1.0/organization' \
  --query 'value[0].{displayName:displayName, domains:verifiedDomains[*].name}' \
  -o json

# Tạo Resource Group cho module 01
az group create \
  --name rg-az104-m01 \
  --location southeastasia \
  --tags Module=01 Course=AZ-104 Environment=Lab
Verify Portal: Azure Portal → Microsoft Entra ID → Overview → ghi nhận Tenant ID, Primary domain (dạng xxx.onmicrosoft.com), và License. Vào Resource Groups → xác nhận rg-az104-m01 tại Southeast Asia.
2

Thêm Custom Domain và xem trạng thái xác minh

Azure CLI— Chạy được trên PowerShell, CMD, Bash hoặc Azure Cloud Shell
# LƯU Ý: Azure CLI KHÔNG có lệnh "az ad domain".
# Custom domain của Entra ID được quản lý qua Microsoft Graph API (az rest) hoặc Portal.
# Cần đăng nhập bằng tài khoản Global Administrator (quyền Domain.ReadWrite.All).

# Xem danh sách domain hiện có trong tenant
az rest --method GET \
  --url "https://graph.microsoft.com/v1.0/domains" \
  --query "value[].{domain:id, verified:isVerified, default:isDefault}" -o table

# Thêm custom domain (thay hoatranlab.vn bằng domain thực sở hữu)
# Bước này chỉ thêm domain, chưa xác minh
az rest --method POST \
  --url "https://graph.microsoft.com/v1.0/domains" \
  --headers "Content-Type=application/json" \
  --body '{"id":"hoatranlab.vn"}'

# Lấy bản ghi xác minh (TXT/MX) để thêm vào DNS provider
az rest --method GET \
  --url "https://graph.microsoft.com/v1.0/domains/hoatranlab.vn/verificationDnsRecords" \
  --query "value[].{type:recordType, label:label, text:text, ttl:ttl}" -o table

# Sau khi đã thêm TXT record vào DNS, xác minh domain
# (Cần chờ DNS propagation 5–60 phút)
az rest --method POST \
  --url "https://graph.microsoft.com/v1.0/domains/hoatranlab.vn/verify" \
  --headers "Content-Type=application/json" \
  --body "{}"

# Kiểm tra trạng thái sau xác minh
az rest --method GET \
  --url "https://graph.microsoft.com/v1.0/domains/hoatranlab.vn" \
  --query "{domain:id, verified:isVerified, default:isDefault}" -o table
Lưu ý cú pháp: các lệnh az rest ở trên dùng --body JSON theo cú pháp Bash / Azure Cloud Shell. Trên PowerShell/CMD cần escape dấu nháy khác đi, nên khuyến nghị chạy trong Azure Cloud Shell (Bash).

Cách nhanh qua Portal: Azure Portal → Microsoft Entra IDCustom domain names+ Add custom domain → nhập domain → copy TXT record vào DNS provider → Verify. Xác nhận domain ở trạng thái Verified. Nếu lab không có domain thực, dùng domain *.onmicrosoft.com mặc định và bỏ qua bước xác minh.
3

Cấu hình Self-Service Password Reset (SSPR) qua Azure CLI & Graph API

Bash— Linux/macOS/Cloud Shell, KHÔNG chạy CMD
# Lấy access token cho Microsoft Graph
TOKEN=$(az account get-access-token \
  --resource https://graph.microsoft.com \
  --query accessToken -o tsv)

# Xem cấu hình SSPR hiện tại (authentication methods policy)
curl -s -H "Authorization: Bearer $TOKEN" \
  "https://graph.microsoft.com/v1.0/policies/authenticationMethodsPolicy" \
  | python3 -m json.tool | grep -E '"id"|"state"|"displayName"'

# Tạo nhóm SSPR-Enabled để kiểm soát ai được dùng SSPR
az ad group create \
  --display-name "SSPR-Enabled-Users" \
  --mail-nickname "sspr-enabled-users" \
  --description "Nhóm người dùng được phép dùng Self-Service Password Reset"

# Xem Group ID
GROUP_SSPR=$(az ad group show \
  --group "SSPR-Enabled-Users" \
  --query id -o tsv)
echo "SSPR Group ID: $GROUP_SSPR"

# Ghi chú: Bật SSPR cho nhóm cụ thể thực hiện qua Portal:
# Entra ID → Password reset → Properties → Selected → chọn nhóm SSPR-Enabled-Users
# Sau đó vào Authentication methods → bật Mobile app notification, Email
# Vào Registration → On (require registration at sign-in)
echo "SSPR group created: $GROUP_SSPR"
echo "Tiếp theo: bật SSPR qua Portal → Entra ID → Password reset"
Verify Portal: Entra ID → Password reset → Properties → xác nhận Self service password reset enabled: Selected. Vào Authentication methods → xác nhận Mobile app notificationEmail được bật. Đăng nhập thử với user trong nhóm → truy cập aka.ms/sspr → xác nhận flow đặt lại mật khẩu hoạt động.
4

Xem và phân tích Audit Log & Sign-in Log của Entra ID

Bash— Linux/macOS/Cloud Shell, KHÔNG chạy CMD
TOKEN=$(az account get-access-token \
  --resource https://graph.microsoft.com \
  --query accessToken -o tsv)

# Xem audit log 10 sự kiện gần nhất (yêu cầu P1/P2 hoặc quyền AuditLog.Read.All)
curl -s -H "Authorization: Bearer $TOKEN" \
  "https://graph.microsoft.com/v1.0/auditLogs/directoryAudits?\$top=10&\$orderby=activityDateTime desc" \
  | python3 -c "
import json,sys
data=json.load(sys.stdin)
for e in data.get('value',[]):
    print(f\"{e['activityDateTime'][:19]} | {e['activityDisplayName']} | {e['result']}\")
"

# Xem sign-in log 10 đăng nhập gần nhất
curl -s -H "Authorization: Bearer $TOKEN" \
  "https://graph.microsoft.com/v1.0/auditLogs/signIns?\$top=10&\$orderby=createdDateTime desc" \
  | python3 -c "
import json,sys
data=json.load(sys.stdin)
for e in data.get('value',[]):
    user=e.get('userDisplayName','N/A')
    status=e.get('status',{}).get('errorCode',0)
    app=e.get('appDisplayName','N/A')
    ts=e['createdDateTime'][:19]
    result='SUCCESS' if status==0 else f'FAIL({status})'
    print(f'{ts} | {user} | {app} | {result}')
"
Verify Portal: Entra ID → Monitoring → Audit logs → lọc theo Service: Core Directory. Vào Sign-in logs → lọc theo user hoặc app. Xem chi tiết: IP address, location, conditional access status, risk level.
5

Cleanup — Dọn dẹp tài nguyên lab

Azure CLI— Chạy được trên PowerShell, CMD, Bash hoặc Azure Cloud Shell
# Xóa nhóm SSPR đã tạo
az ad group delete --group "SSPR-Enabled-Users"

# Xóa Resource Group (kéo theo tất cả resource bên trong)
az group delete --name rg-az104-m01 --yes --no-wait

# Xác nhận RG đã được đánh dấu xóa
az group show --name rg-az104-m01 --query provisioningState -o tsv 2>/dev/null \
  || echo "Resource group rg-az104-m01 đã xóa thành công"
Lưu ý: Custom domain đã thêm vào tenant sẽ tồn tại cho đến khi xóa thủ công từ Entra ID → Custom domain names → chọn domain → Remove. SSPR settings nên để lại hoặc tắt về None sau lab.

Kết Quả Đầu Ra

Hiểu kiến trúc Entra ID

Nắm rõ tenant, directory, subscription relationship; phân biệt Entra ID với AD DS on-premises

So sánh AD DS vs Entra ID

Phân biệt giao thức (Kerberos/LDAP vs OAuth/OIDC), cấu trúc (OU hierarchy vs flat), và use case phù hợp

Chọn đúng License tier

Phân biệt Free / P1 / P2 và biết tính năng nào thuộc tier nào (Conditional Access → P1, PIM → P2)

Cấu hình SSPR hoàn chỉnh

Bật SSPR cho nhóm cụ thể, cấu hình authentication methods, hiểu on-premises writeback

Thêm và xác minh Custom Domain

Thêm domain tùy chỉnh, lấy TXT record, xác minh DNS, đặt làm primary domain

Đọc Audit Log & Sign-in Log

Truy vấn log qua Graph API và Portal, phân tích đăng nhập rủi ro và sự kiện directory

Ứng Dụng Thực Tế

Tình huống 1: Công ty Fintech 500 nhân viên — Chuyển đổi lên Entra ID

Công ty đang dùng AD DS on-prem với 2 Domain Controller, muốn chuyển toàn bộ nhân viên lên M365 và Azure mà vẫn giữ domain nội bộ.

Giải pháp

Triển khai Microsoft Entra Connect để đồng bộ user/group từ AD DS lên Entra ID. Mua P1 license cho toàn bộ nhân viên để có Conditional Access và SSPR với on-prem writeback. Thêm custom domain fintech.vn vào tenant.

Triển khai

Cài Entra Connect trên server on-prem → chọn Password Hash Sync → mapping OU. Bật SSPR Selected cho nhóm IT-Pilot 20 người trước → sau 2 tuần expand All. Cấu hình Conditional Access: yêu cầu MFA nếu đăng nhập từ ngoài VN.

Lợi ích

Giảm 70% ticket đặt lại mật khẩu nhờ SSPR. SSO vào M365, Azure Portal, Salesforce bằng 1 tài khoản. Security posture tăng: phát hiện 15 tài khoản rủi ro qua Identity Protection trong tháng đầu.

Tình huống 2: Trường Đại học — B2B Guest cho đối tác nghiên cứu

Trường cần cộng tác với 3 viện nghiên cứu và 10 trường đối tác quốc tế, mỗi bên có tenant Entra ID riêng.

Giải pháp

Dùng Entra ID B2B Collaboration mời guest user từ các tenant đối tác. Tạo Access Package trong Entitlement Management (P2) để quản lý vòng đời quyền truy cập: tự động hết hạn sau 12 tháng, yêu cầu approval.

Triển khai

Invite guest từ Entra ID → Users → Invite. Cấu hình External collaboration settings: chỉ cho phép invite từ danh sách domain được phép. Gán Reader role cho SharePoint site và Azure storage chứa dữ liệu nghiên cứu chung.

Lợi ích

Nhà nghiên cứu nước ngoài đăng nhập bằng tài khoản trường họ (no new password). Quyền truy cập tự động revoke khi hết hạn dự án. IT department không cần quản lý tài khoản tạm thời thủ công.

Tình huống 3: Startup SaaS — Bảo mật Admin Account bằng PIM

Startup có 5 nhân viên kỹ thuật, tất cả đang dùng Global Administrator — rủi ro cao nếu tài khoản bị compromise.

Giải pháp

Nâng cấp lên P2, bật Privileged Identity Management (PIM). Chuyển 4/5 nhân viên từ Global Admin thường sang Eligible Global Admin — chỉ active quyền khi cần (just-in-time), tối đa 1 giờ, cần MFA + justification.

Triển khai

PIM → Azure AD roles → Global Administrator → Settings: max duration 1h, require MFA, require justification, require approval. Giữ 1 break-glass account (Global Admin thường, không đăng nhập thường ngày, MFA hardware key).

Lợi ích

Attack surface giảm đáng kể: không còn 5 tài khoản Global Admin active 24/7. Alert ngay khi có activation. Đủ điều kiện cho SOC 2 audit. Chi phí chỉ $9 × 5 user = $45/tháng.

Zalo