🎯 Mục Tiêu Lab
Tạo 5 user lab: az500-admin01, az500-secops01, az500-dev01, az500-helpdesk01, az500-auditor01
Tạo 4 security group: GRP-AZ500-SecurityAdmins, GRP-AZ500-SecOps, GRP-AZ500-Developers, GRP-AZ500-Auditors
Gán từng user vào group tương ứng theo vai trò
Kiểm tra group membership qua Portal và Azure CLI
Gán thuộc tính Department, JobTitle cho từng user (chuẩn bị Lab 03 Dynamic Group)
Kiểm tra audit log ghi lại hoạt động tạo user/group
📋 Chuẩn Bị
- Hoàn thành Lab 01 (tenant và resource group đã sẵn sàng)
- Quyền User Administrator hoặc Global Administrator
- Azure CLI đăng nhập thành công (
az login) - Ghi nhớ domain tenant:
*.onmicrosoft.com
- User được tạo với password tạm, yêu cầu đổi lần đăng nhập đầu
- Group type = Security (không phải Microsoft 365)
- Gán Department chính xác vì Lab 03 dùng giá trị này cho dynamic rule
- Thay
DOMAINbằng domain thực của bạn trong các lệnh CLI
🏗️ Kịch bản & Tài Nguyên
Doanh nghiệp cần mô phỏng 5 vai trò IT Security tiêu biểu. Bạn cần tạo đầy đủ danh tính, phân nhóm và gán thuộc tính để các lab RBAC, PIM, Conditional Access và Administrative Unit tiếp theo hoạt động đúng.
| Username | Department | JobTitle | Group |
|---|---|---|---|
| az500-admin01 | Security | Security Administrator | GRP-AZ500-SecurityAdmins |
| az500-secops01 | Security | Security Operations | GRP-AZ500-SecOps |
| az500-dev01 | Engineering | Developer | GRP-AZ500-Developers |
| az500-helpdesk01 | IT Support | Helpdesk Technician | GRP-AZ500-SecurityAdmins |
| az500-auditor01 | Compliance | Security Auditor | GRP-AZ500-Auditors |
🧪 Các Bước Thực Hiện
Tạo 5 User Lab trong Microsoft Entra ID
1. Portal → Microsoft Entra ID → Users → + New user → Create new user 2. Điền thông tin cho từng user: User principal name: [email protected] Display name: AZ500 Admin 01 Password: tích "Auto-generate password" → copy lại 3. Properties tab: Job title: Security Administrator Department: Security 4. Create 5. Lặp lại cho 4 user còn lại theo bảng tài nguyên ở trên
# Lấy domain tenant
DOMAIN=$(az ad signed-in-user show --query userPrincipalName -o tsv | cut -d'@' -f2)
echo "Domain: $DOMAIN"
# Tạo user az500-admin01
az ad user create \
--display-name "AZ500 Admin 01" \
--user-principal-name "az500-admin01@$DOMAIN" \
--password "Az500@Lab2026!" \
--force-change-password-next-sign-in true \
--department "Security" \
--job-title "Security Administrator"
# Tạo user az500-secops01
az ad user create \
--display-name "AZ500 SecOps 01" \
--user-principal-name "az500-secops01@$DOMAIN" \
--password "Az500@Lab2026!" \
--force-change-password-next-sign-in true \
--department "Security" \
--job-title "Security Operations"
# Tạo user az500-dev01
az ad user create \
--display-name "AZ500 Dev 01" \
--user-principal-name "az500-dev01@$DOMAIN" \
--password "Az500@Lab2026!" \
--force-change-password-next-sign-in true \
--department "Engineering" \
--job-title "Developer"
# Tạo user az500-helpdesk01
az ad user create \
--display-name "AZ500 Helpdesk 01" \
--user-principal-name "az500-helpdesk01@$DOMAIN" \
--password "Az500@Lab2026!" \
--force-change-password-next-sign-in true \
--department "IT Support" \
--job-title "Helpdesk Technician"
# Tạo user az500-auditor01
az ad user create \
--display-name "AZ500 Auditor 01" \
--user-principal-name "az500-auditor01@$DOMAIN" \
--password "Az500@Lab2026!" \
--force-change-password-next-sign-in true \
--department "Compliance" \
--job-title "Security Auditor"
# Kiểm tra tất cả user đã tạo
az ad user list \
--filter "startswith(userPrincipalName,'az500-')" \
--query "[].{Name:displayName, UPN:userPrincipalName, Dept:department}" \
--output table
Name UPN Dept ------------------- -------------------------------------- ----------- AZ500 Admin 01 [email protected] Security AZ500 SecOps 01 [email protected] Security AZ500 Dev 01 [email protected] Engineering AZ500 Helpdesk 01 [email protected] IT Support AZ500 Auditor 01 [email protected] Compliance
Tạo 4 Security Group
1. Portal → Microsoft Entra ID → Groups → + New group 2. Group type: Security Group name: GRP-AZ500-SecurityAdmins Description: Security Administrators for AZ-500 lab Membership type: Assigned 3. Members → + Add members → tìm az500-admin01, az500-helpdesk01 → Select 4. Create 5. Lặp lại cho 3 group còn lại: - GRP-AZ500-SecOps → thêm az500-secops01 - GRP-AZ500-Developers → thêm az500-dev01 - GRP-AZ500-Auditors → thêm az500-auditor01
# Tạo 4 Security Groups
az ad group create --display-name "GRP-AZ500-SecurityAdmins" \
--mail-nickname "GRP-AZ500-SecurityAdmins" \
--description "Security Administrators for AZ-500 lab"
az ad group create --display-name "GRP-AZ500-SecOps" \
--mail-nickname "GRP-AZ500-SecOps" \
--description "Security Operations team for AZ-500 lab"
az ad group create --display-name "GRP-AZ500-Developers" \
--mail-nickname "GRP-AZ500-Developers" \
--description "Developer team for AZ-500 lab"
az ad group create --display-name "GRP-AZ500-Auditors" \
--mail-nickname "GRP-AZ500-Auditors" \
--description "Auditors for AZ-500 lab"
# Kiểm tra danh sách group
az ad group list \
--filter "startswith(displayName,'GRP-AZ500')" \
--query "[].{Name:displayName, ID:id}" \
--output table
Gán User vào Group và Kiểm Tra Membership
DOMAIN=$(az ad signed-in-user show --query userPrincipalName -o tsv | cut -d'@' -f2)
# Lấy Object ID của từng group
GRP_SECADMIN=$(az ad group show --group "GRP-AZ500-SecurityAdmins" --query id -o tsv)
GRP_SECOPS=$(az ad group show --group "GRP-AZ500-SecOps" --query id -o tsv)
GRP_DEV=$(az ad group show --group "GRP-AZ500-Developers" --query id -o tsv)
GRP_AUDIT=$(az ad group show --group "GRP-AZ500-Auditors" --query id -o tsv)
# Lấy Object ID của từng user
USER_ADMIN=$(az ad user show --id "az500-admin01@$DOMAIN" --query id -o tsv)
USER_SECOPS=$(az ad user show --id "az500-secops01@$DOMAIN" --query id -o tsv)
USER_DEV=$(az ad user show --id "az500-dev01@$DOMAIN" --query id -o tsv)
USER_HELPDESK=$(az ad user show --id "az500-helpdesk01@$DOMAIN" --query id -o tsv)
USER_AUDIT=$(az ad user show --id "az500-auditor01@$DOMAIN" --query id -o tsv)
# Gán user vào group
az ad group member add --group $GRP_SECADMIN --member-id $USER_ADMIN
az ad group member add --group $GRP_SECADMIN --member-id $USER_HELPDESK
az ad group member add --group $GRP_SECOPS --member-id $USER_SECOPS
az ad group member add --group $GRP_DEV --member-id $USER_DEV
az ad group member add --group $GRP_AUDIT --member-id $USER_AUDIT
# Kiểm tra membership của GRP-AZ500-SecurityAdmins
az ad group member list \
--group "GRP-AZ500-SecurityAdmins" \
--query "[].{Name:displayName, UPN:userPrincipalName}" \
--output table
# Kiểm tra user thuộc những group nào
az ad user get-member-groups \
--id "az500-admin01@$DOMAIN" \
--query "[].displayName" \
--output tsv
Name UPN ------------------- ---------------------------------------- AZ500 Admin 01 [email protected] AZ500 Helpdesk 01 [email protected]
Xác Nhận Audit Log Ghi Nhận Hoạt Động
1. Portal → Microsoft Entra ID → Monitoring → Audit logs 2. Filter: - Date: Last 1 hour - Service: Core Directory - Category: UserManagement / GroupManagement 3. Xem các entry: - "Add user" → az500-admin01 - "Create group" → GRP-AZ500-SecurityAdmins - "Add member to group" → az500-admin01 → GRP-AZ500-SecurityAdmins 4. Click vào một entry → xem chi tiết: Initiated by, Target, Modified properties
# Xem audit log: hoạt động "Add user" gần đây
az rest \
--method GET \
--url "https://graph.microsoft.com/v1.0/auditLogs/directoryAudits?\$filter=activityDisplayName eq 'Add user'&\$top=5&\$orderby=activityDateTime desc" \
--query "value[].{Time:activityDateTime, Activity:activityDisplayName, User:targetResources[0].userPrincipalName, By:initiatedBy.user.userPrincipalName}"
🧹 Dọn Dẹp Tài Nguyên
Giữ lại toàn bộ user và group vì các lab tiếp theo (Lab 03, 04, RBAC, MFA...) đều dùng những danh tính này.
DOMAIN=$(az ad signed-in-user show --query userPrincipalName -o tsv | cut -d'@' -f2) # Xóa user (khi kết thúc khóa học) for u in admin01 secops01 dev01 helpdesk01 auditor01; do az ad user delete --id "az500-$u@$DOMAIN" done # Xóa group (khi kết thúc khóa học) for g in SecurityAdmins SecOps Developers Auditors; do az ad group delete --group "GRP-AZ500-$g" done
📊 Kết Quả Đầu Ra Lab 02
az ad user list --filter startswith... hiển thị đủ 5 user với department và jobTitle
4 group hiển thị trong Portal, type = Security, membership type = Assigned
GRP-AZ500-SecurityAdmins có 2 thành viên (admin01, helpdesk01); 3 group còn lại mỗi group 1 thành viên
Entra ID Audit logs hiển thị "Add user", "Create group", "Add member to group" với timestamp chính xác
az500-admin01 và az500-secops01 có Department = "Security" (cần cho Lab 03 Dynamic Group rule)
❓ Câu Hỏi Ôn Tập
1. Sự khác nhau giữa Security Group và Microsoft 365 Group trong Microsoft Entra ID là gì?
Gợi ý: Security Group = dùng cho phân quyền RBAC, Conditional Access, Azure resource. M365 Group = cộng tác (Teams, SharePoint, Exchange mailbox). AZ-500 chủ yếu dùng Security Group.
2. Tại sao gán thuộc tính Department cho user ngay từ bước tạo?
Gợi ý: Dynamic Group (Lab 03) dùng rule dựa trên Department để tự động thêm/bớt user. Nếu không gán Department, dynamic rule sẽ không khớp.
3. Lệnh Azure CLI nào để kiểm tra một user đang là thành viên của những group nào?
Gợi ý: az ad user get-member-groups --id <UPN>
4. User type "Member" và "Guest" trong Entra ID khác nhau như thế nào về mặt bảo mật?
Gợi ý: Member = user nội bộ, có quyền đọc directory mặc định. Guest (B2B) = user từ tenant khác, quyền bị giới hạn theo External Collaboration settings.
5. Audit log trong Entra ID lưu giữ bao lâu theo license mặc định (Free tier)?
Gợi ý: Free = 7 ngày. P1/P2 = 30 ngày. Để lưu lâu hơn cần xuất ra Log Analytics Workspace hoặc Storage Account.