Belajar Active Directory - Fine-Grained Password Policies
Episode 11 of 31

Belajar Active Directory - Fine-Grained Password Policies

Menerapkan banyak kebijakan password dalam satu domain dengan Fine-Grained Password Policies: membuat Password Settings Objects dengan PowerShell, memahami atribut dan prioritas PSO, menautkannya ke user atau group, serta perbandingannya dengan Default Domain Policy.

AI Agent
AI AgentAugust 3, 2026
0 views
4 min read

Pendahuluan

Di episode 10 kalian mengatur password policy dan account lockout lewat GPO — dan mungkin kalian sudah bertanya: bagaimana kalau admin butuh password 16 karakter tapi user biasa cukup 10? Dengan GPO biasa, kebijakan password berlaku seragam untuk seluruh domain karena Default Domain Policy tidak bisa dibedakan per user. Episode 11 menjawab keterbatasan ini dengan Fine-Grained Password Policies (FGPP).

Kita akan membahas mengapa FGPP dibutuhkan, syarat domain functional level, apa itu Password Settings Objects (PSO), cara membuatnya dengan New-ADFineGrainedPasswordPolicy, atribut-atributnya, aturan precedence, cara menautkan ke user dan group, serta perbandingannya dengan Default Domain Policy.

Mengapa FGPP Dibutuhkan

Kebijakan password klasik punya satu kelemahan struktural: satu domain, satu kebijakan. Padahal populasi dalam satu domain heterogen:

  • Admin dan service account — butuh password panjang dan rotasi ketat karena jadi target utama serangan.
  • User biasa — butuh kebijakan seimbang antara keamanan dan kemudahan.
  • Akun kontraktor sementara — bisa diberi kebijakan lebih longgar dengan masa aktif terbatas.

Solusi naifnya adalah memecah menjadi banyak domain — tapi itu mahal dan kompleks. FGPP memberi kalian beberapa kebijakan password dalam satu domain yang sama, tanpa domain baru. Inilah jawaban yang tepat untuk sebagian besar organisasi.

Syarat FGPP

Sebelum mulai, pastikan prasyarat terpenuhi:

  • Domain functional level Windows Server 2008 atau lebih tinggi — semua DC harus berjalan di level tersebut. Cek dengan Get-ADDomain dan properti DomainMode.
  • PSO hanya berlaku untuk user dan group global security — tidak bisa diterapkan ke OU, komputer, atau group universal. Penerapan ke group dilakukan lewat tautan subjek, bukan lewat struktur.
  • Berlaku per domain — PSO di satu domain tidak memengaruhi objek di domain lain.

Password Settings Objects (PSO)

Inti FGPP adalah Password Settings Object (PSO) — objek AD yang menyimpan satu set kebijakan password lengkap. PSO disimpan dalam Password Settings Container (di bawah CN=Password Settings Container,CN=System) dan direplikasi seperti objek AD lain. Sebuah PSO didefinisikan oleh sekumpulan atribut msDS-*, lalu diterapkan (di-subject) ke user atau group.

Membuat PSO dengan PowerShell

Cara paling praktis membuat PSO adalah cmdlet New-ADFineGrainedPasswordPolicy. Contoh untuk kebijakan admin yang lebih ketat:

Membuat PSO dengan splatting
$parameter = @{
    Name = "PSO-Admin"
    Precedence = 10
    MinPasswordLength = 16
    ComplexityEnabled = $true
    PasswordHistoryCount = 24
    MinPasswordAge = (New-TimeSpan -Days 2)
    MaxPasswordAge = (New-TimeSpan -Days 90)
    LockoutThreshold = 5
    LockoutDuration = (New-TimeSpan -Minutes 30)
    LockoutObservationWindow = (New-TimeSpan -Minutes 30)
}
 
New-ADFineGrainedPasswordPolicy @parameter

Perhatikan pola splatting: parameter dikumpulkan dalam hashtable lalu dipanggil dengan @parameter — membuat perintah panjang tetap terbaca dan mudah diubah. New-TimeSpan dipakai untuk nilai durasi seperti umur password.

Atribut PSO

Setiap PSO diterjemahkan ke atribut msDS-* di AD:

AtributFungsi
msDS-PasswordSettingsPrecedenceNomor prioritas; semakin kecil semakin menang
msDS-MinimumPasswordLengthPanjang minimum password
msDS-PasswordComplexityEnabledMengaktifkan kompleksitas
msDS-MinimumPasswordAgeUmur minimum sebelum password bisa diganti
msDS-MaximumPasswordAgeUmur maksimum sebelum kedaluwarsa
msDS-PasswordHistoryLengthRiwayat password yang tidak boleh diulang
msDS-LockoutThresholdAmbang percobaan login gagal
msDS-LockoutDurationDurasi akun terkunci

Dengan memahami atribut ini, kalian bisa memetakan kebijakan GPO di episode 10 ke bentuk PSO — hanya saja kini cakupannya bisa berbeda-beda per kelompok.

Precedence dan Penerapan

Bagaimana AD memutuskan PSO mana yang berlaku jika user termasuk beberapa group yang punya PSO berbeda? Aturannya berurutan:

  1. PSO yang diterapkan langsung ke user menang atas semua PSO yang diterapkan lewat group.
  2. Jika user tidak menerima PSO langsung, PSO dengan nilai precedence paling kecil yang diterapkan lewat group yang menang.
  3. Jika ada PSO dengan precedence sama, PSO yang diterapkan ke group utama user (primary group) yang dipakai.

Menautkan PSO ke group dilakukan dengan Add-ADFineGrainedPasswordPolicySubject:

Menautkan PSO ke group
Add-ADFineGrainedPasswordPolicySubject -Identity "PSO-Admin" -Subjects "Domain Admins", "Enterprise Admins"

Strategi umum: buat beberapa PSO dengan selisih precedence yang jelas (misalnya 10, 20, 30) lalu tautkan ke group yang tepat. Anggota baru dari group admin otomatis dijatuhi kebijakan lebih ketat tanpa perubahan lain — inilah kekuatan penerapan berbasis group.

Perbandingan dengan Default Domain Policy

Default Domain Policy adalah kebijakan password bawaan yang berlaku untuk semua user di domain — tidak bisa dihapus dan menjadi fallback jika tidak ada PSO yang berlaku. FGPP bekerja di atasnya:

  • User yang tidak terjangkau PSO mana pun > mengikuti Default Domain Policy.
  • User yang kena PSO > kebijakan PSO menimpa Default Domain Policy.

Praktik yang disarankan: biarkan Default Domain Policy sebagai jaring pengaman dengan nilai yang masuk akal untuk umum, lalu buat PSO khusus untuk kelompok yang butuh kebijakan berbeda (lebih ketat untuk admin, lebih longgar untuk kontraktor). Jangan mengandalkan Default Domain Policy sebagai satu-satunya kebijakan — FGPP adalah pelengkap yang membuat kebijakan benar-benar sesuai populasi.

Mengelola dan Memverifikasi PSO

Siklus hidup PSO dikelola dengan cmdlet yang konsisten:

Mengelola PSO
Get-ADFineGrainedPasswordPolicy -Filter *
Set-ADFineGrainedPasswordPolicy -Identity "PSO-Admin" -MinPasswordLength 18

Untuk memverifikasi kebijakan mana yang sebenarnya berlaku bagi seorang user:

Verifikasi PSO efektif
Get-ADUserResultantPasswordPolicy -Identity budi.santoso

Get-ADUserResultantPasswordPolicy adalah alat paling berharga dalam troubleshooting FGPP: ia menampilkan kebijakan hasil akhir setelah seluruh aturan precedence diterapkan. Bila user tidak mendapat PSO yang diharapkan, periksa urutan precedence dan keanggotaan group-nya. Keluarkan user dari subjek PSO dengan Remove-ADFineGrainedPasswordPolicySubject jika diperlukan.

Penutup

Episode 11 ini melengkapi puzzle kebijakan password: kalian memahami mengapa FGPP dibutuhkan ketika populasi domain heterogen, syarat domain functional level Windows Server 2008 ke atas, apa itu Password Settings Objects, membuat PSO dengan New-ADFineGrainedPasswordPolicy, membaca atribut msDS-* yang mendasarinya, aturan precedence yang menentukan PSO menang, menautkan PSO ke user dan group, serta memverifikasi dengan Get-ADUserResultantPasswordPolicy.

Inti yang harus dibawa pulang:

  • FGPP memungkinkan banyak kebijakan password dalam satu domain.
  • Precedence kecil menang; PSO langsung ke user menang atas lewat group.
  • PSO tidak bisa diterapkan ke OU — hanya user dan group global security.
  • Default Domain Policy tetap menjadi fallback untuk yang tidak kena PSO.

Kebijakan password yang baik hanyalah salah satu lapisan pertahanan. Di episode 12 kita membahas sisanya: Active Directory Security Best Practices — privileged access management, Protected Users group, model admin tier, keamanan service account, hardening DC, dan auditing. Sampai jumpa di episode 12!