(Service Principal Name) הוא השם הייחודי של שירות ב־, למשל MSSQLSvc/sql01.lab.local:1433. משתמש בו כדי לדעת עבור איזה שירות להנפיק כרטיס.
# הצגת SPN של חשבון
setspn -L LAB\svc_sql
# חיפוש חשבונות משתמש עם SPN (יעדי Kerberoasting)
Get-ADUser -Filter {ServicePrincipalName -like "*"} -Properties ServicePrincipalName
# בדיקה ש-LDAPS פעיל (פורט 636)
Test-NetConnection dc01.lab.local -Port 636powershellארכיטקטורה ותיאוריה — מתחת למכסה המנוע
מקשר שם שירות (HTTP/web01.corp.com) לחשבון שמריץ אותו. בלי SPN — אין , נופלים ל־. LDAPS = מעל TLS על פורט 636.
הגדרה מעשית (PowerShell / GUI)
# רישום SPN
setspn -S HTTP/portal.corp.com CORP\svc_web
# בדיקת כפילויות (SPN כפול = Kerberos שבור)
setspn -X
# LDAPS — צריך תעודה ב-Personal store של המחשב עם Server Authentication EKU
# בדיקה
ldp.exe → Connection → Connect → Port 636 → SSLpowershellתרחישי אמת בארגון
- אפליקציית Web שרצה תחת חשבון שירות — חייבים לכל hostname (short + FQDN).
- LDAPS חובה לפני שמפעילים Channel Binding (מגן מ־relay).
אבחון ופתרון תקלות
- klist purge וניסיון חוזר לאחר תיקון .
- Event 4771 עם קוד 0x25 = Clock skew, 0x18 = סיסמה שגויה.
- certutil -store MY — בדיקת תעודות DC ל־LDAPS.
מילון מונחים ושורת פקודות מהירה
- — Service Principal Name.
- LDAPS — over TLS (636).
- setspn -L user — רשימת SPNs של חשבון.