Lý thuyết: Quản lý Users & Licenses
Bulk user creation, license assignment và PowerShell automation
Mô hình user trong Microsoft 365
| Loại account | Mô tả | Dùng khi |
|---|---|---|
| Cloud-only user | Chỉ tồn tại trong Entra ID | Tenant không có on-prem AD |
| Synced user (Hybrid) | Tạo từ on-prem AD qua Entra Connect | Hybrid join, Exchange hybrid |
| Guest user (B2B) | External user được mời | Collaboration với đối tác, vendor |
| Service account | No-interactive login, app permissions | Automation, app registration |
Phương pháp tạo user hàng loạt
| Phương pháp | Số lượng | Trường hợp |
|---|---|---|
| Admin Center → Add multiple users (CSV) | <250 users | Onboard đợt nhỏ, không cần kỹ thuật |
| Microsoft Graph PowerShell | Không giới hạn | Automation, định kỳ sync |
| Entra ID Provisioning (SCIM) | Không giới hạn | Sync từ HR system (Workday, SAP) |
| Entra Connect Sync | Không giới hạn | Hybrid — đồng bộ từ on-prem AD |
License service plans quan trọng trong E3
| Service Plan | Tên hiển thị | Ghi chú |
|---|---|---|
| EXCHANGE_S_ENTERPRISE | Exchange Online Plan 2 | Mailbox 100GB + archive |
| TEAMS1 | Microsoft Teams | Chat, meeting, call |
| SHAREPOINTENTERPRISE | SharePoint Online (Plan 2) | Site, đồng bộ OneDrive |
| INTUNE_A | Microsoft Intune | MDM/MAM |
| AAD_PREMIUM_P1 | Entra ID P1 | CA, SSPR, dynamic groups |
| RMS_S_ENTERPRISE | Azure RMS / Purview Information Protection | Mã hóa, label |
Có thể tắt các service plan không cần thiết khi gán license qua group — tiết kiệm chương trình lưu trữ và giảm attack surface.
Lab thực hành: Bulk User Creation và License Assignment
CSV import, PowerShell Graph và group-based licensing
Lab A — Bulk Create Users từ CSV
Thực hành tại: Microsoft 365 Admin Center → Users → Active users → Add multiple users
- Tải file mẫu CSV: Admin Center → Users → Active users → Add multiple users → Download a blank CSV file.
- Mở CSV, điền các cột:
User Name,First Name,Last Name,Display Name,Job Title,Department,Office Phone,Mobile Phone,Address,City,State,Zip,Country,Username. - Upload CSV → chọn license (E3) → Send results in email → Add users.
- Kiểm tra: Users xuất hiện trong Active users với license được gán.
Kết quả đầu ra mọng đợi
Email xác nhận được gửi cho admin. Users có thể đăng nhập ngay bằng mật khẩu tạm thời.
Lab B — Bulk Create và gán license qua Microsoft Graph PowerShell
# Cài đặt module nếu chưa có
Install-Module Microsoft.Graph -Scope CurrentUser -Force
Connect-MgGraph -Scopes "User.ReadWrite.All","Directory.ReadWrite.All"
# Tạo user mới
$passwordProfile = @{ Password = "TempP@ss2024!"; ForceChangePasswordNextSignIn = $true }
New-MgUser -DisplayName "Nguyen Van A" -UserPrincipalName "[email protected]" \
-MailNickname "nguyenvana" -AccountEnabled $true -PasswordProfile $passwordProfile
# Gán license (lấy SkuId trước)
$sku = Get-MgSubscribedSku | Where { $_.SkuPartNumber -eq "SPE_E3" }
$license = @{ SkuId = $sku.SkuId }
Set-MgUserLicense -UserId "[email protected]" -AddLicenses @($license) -RemoveLicenses @()
Install-Module Microsoft.Graph -Scope CurrentUser -Force
Connect-MgGraph -Scopes "User.ReadWrite.All","Directory.ReadWrite.All"
# Tạo user mới
$passwordProfile = @{ Password = "TempP@ss2024!"; ForceChangePasswordNextSignIn = $true }
New-MgUser -DisplayName "Nguyen Van A" -UserPrincipalName "[email protected]" \
-MailNickname "nguyenvana" -AccountEnabled $true -PasswordProfile $passwordProfile
# Gán license (lấy SkuId trước)
$sku = Get-MgSubscribedSku | Where { $_.SkuPartNumber -eq "SPE_E3" }
$license = @{ SkuId = $sku.SkuId }
Set-MgUserLicense -UserId "[email protected]" -AddLicenses @($license) -RemoveLicenses @()
Kết quả đầu ra mọng đợi
Id DisplayName UserPrincipalName
---- ----------- -----------------
a1b2c3d4-... Nguyen Van A [email protected]
---- ----------- -----------------
a1b2c3d4-... Nguyen Van A [email protected]
Lab C — Quản lý Soft-deleted Users
Thực hành tại: Admin Center → Users → Deleted users
- Admin Center → Users → Deleted users — xem danh sách user bị xóa (giữ 30 ngày).
- Chọn user → Restore user nếu cần khôi phục — license cũ được gán lại nếu còn available.
- Sau 30 ngày: user bị xóa vĩnh viễn, không thể khôi phục. License tự động giải phóng.
Tình huống thực tế: Viettel và HR-driven Provisioning
Tự động tạo account từ hệ thống HR
Viettel — 5,000 nhân viên mới mỗi năm
Viettel có quy trình tuyển dụng lớn, trung bình 400 nhân viên mới mỗi tháng. Họ sử dụng SAP SuccessFactors làm hệ thống HR. Giải pháp: tích hợp Entra ID Provisioning với SuccessFactors qua SCIM — khi nhân viên được phê duyệt trong SAP, tài khoản M365 tự động được tạo và license được gán theo phòng ban (group-based). Khi nhân viên nghỉ việc, account tự động disable trong vòng 1 giờ.
Kiến trúc giải pháp
| Thành phần | Mô tả |
|---|---|
| SAP SuccessFactors | Source of truth — dữ liệu nhân sự |
| Entra ID Inbound Provisioning | SCIM connector đọc từ SAP → tạo/cập nhật user trong Entra |
| Dynamic group | Tự động add user vào group theo department/jobTitle |
| Group-based licensing | Gán M365 E3 hoặc F3 theo group |
| Lifecycle Workflows | Tự động gửi email chào mừng, add vào Teams, tạo temp pass |
Entra ID Inbound Provisioning từ SuccessFactors yêu cầu Entra ID P1. Lifecycle Workflows yêu cầu Entra ID Governance (add-on).