Active Directory — Quản lý Identity tập trung
Active Directory (AD) là dịch vụ directory của Microsoft — xương sống của hầu hết môi trường Windows enterprise. AD quản lý tập trung users, computers, groups, và policies trong toàn tổ chức.
Kiến trúc Active Directory
Các thành phần cốt lõi
| Thành phần | Ý nghĩa |
|---|---|
| Forest | Tập hợp domain trees, ranh giới bảo mật tối cao |
| Domain | Đơn vị quản lý (company.com), có database AD riêng |
| OU (Organizational Unit) | Container logic để nhóm objects và áp GPO |
| DC (Domain Controller) | Server chứa database AD (NTDS.dit), xác thực users |
| GC (Global Catalog) | DC đặc biệt, chứa thông tin tất cả objects trong forest |
| Site | Nhóm subnet kết nối nhanh — kiểm soát AD replication |
Users, Groups, Computers
Quản lý User bằng PowerShell
# === Xem User ===
Get-ADUser -Identity "sontn" # user cụ thể
Get-ADUser -Filter * | Select-Object Name, SamAccountName, Enabled
Get-ADUser -Filter {Enabled -eq $false} # user bị disable
Get-ADUser -Filter * -SearchBase "OU=IT,DC=company,DC=com"
Get-ADUser -Identity "sontn" -Properties * # tất cả properties
# === Tạo User ===
New-ADUser -Name "Son Nguyen" `
-SamAccountName "sontn" `
-UserPrincipalName "sontn@company.com" `
-Path "OU=IT,DC=company,DC=com" `
-AccountPassword (ConvertTo-SecureString "P@ssw0rd!" -AsPlainText -Force) `
-Enabled $true `
-PasswordNeverExpires $false `
-ChangePasswordAtLogon $true
# === Sửa User ===
Set-ADUser -Identity "sontn" -Department "DevOps" -Title "Senior Engineer"
Set-ADUser -Identity "sontn" -Description "DevOps Team"
# === Disable / Enable / Reset ===
Disable-ADAccount -Identity "sontn"
Enable-ADAccount -Identity "sontn"
Set-ADAccountPassword -Identity "sontn" `
-NewPassword (ConvertTo-SecureString "NewP@ss!" -AsPlainText -Force) -Reset
Unlock-ADAccount -Identity "sontn" # unlock sau khi bị lockout
# === Xoá User ===
Remove-ADUser -Identity "sontn" -Confirm:$false
Quản lý Group
# Xem Group
Get-ADGroup -Filter * | Select-Object Name, GroupScope, GroupCategory
Get-ADGroupMember -Identity "IT-Admins" # thành viên của group
Get-ADPrincipalGroupMembership -Identity "sontn" # user thuộc những group nào
# Tạo Group
New-ADGroup -Name "DevOps-Team" `
-GroupScope Global `
-GroupCategory Security `
-Path "OU=Groups,DC=company,DC=com" `
-Description "DevOps Engineers"
# Thêm/xoá thành viên
Add-ADGroupMember -Identity "DevOps-Team" -Members "sontn","deployer"
Remove-ADGroupMember -Identity "DevOps-Team" -Members "sontn" -Confirm:$false
Group Scope
Best practice AGDLP: Account → Global Group → Domain Local Group → Permission
Group Policy (GPO)
GPO cho phép áp đặt cấu hình (security, software, desktop) cho nhiều users/computers cùng lúc.
Thứ tự áp dụng GPO (LSDOU)
- Local — GPO local trên máy (ưu tiên thấp nhất)
- Site — GPO gán cho AD Site
- Domain — GPO gán cho Domain
- OU — GPO gán cho OU (ưu tiên cao nhất, override các GPO trên)
# Quản lý GPO
Get-GPO -All # liệt kê tất cả GPO
Get-GPO -Name "Default Domain Policy"
New-GPO -Name "DevOps Security Policy"
New-GPLink -Name "DevOps Security Policy" `
-Target "OU=DevOps,DC=company,DC=com"
# Xem GPO đang áp cho máy hiện tại
gpresult /R # CMD
gpresult /H C:\gpresult.html # export HTML report
Invoke-GPUpdate -Force # force apply GPO ngay
Authentication — NTLM vs Kerberos
| NTLM | Kerberos | |
|---|---|---|
| Mô hình | Challenge-Response | Ticket-based |
| Hiệu năng | Thấp hơn (DC verify mỗi lần) | Cao hơn (ticket cached) |
| Bảo mật | Yếu hơn (pass-the-hash attack) | Mạnh hơn |
| Dùng khi | Workgroup, không có DC | Domain-joined machines |
Azure Active Directory (Entra ID)
Azure AD (nay là Microsoft Entra ID) là phiên bản cloud của AD — quản lý identity cho Microsoft 365, Azure, và ứng dụng SaaS.
Khái niệm Azure AD
- Tenant: Tổ chức trên Azure AD — mỗi company có một tenant riêng
- App Registration: Đăng ký ứng dụng để xác thực với Azure AD
- Service Principal: "User" cho ứng dụng hoặc automation
- Managed Identity: Service Principal tự động managed bởi Azure
- Conditional Access: Policy kiểm soát điều kiện được login (location, device, MFA...)