SpnManager Kerberos SPN auditing and repair for Active Directory

Get-KcdDelegationAudit

Business value

Business value

The Get-KcdDelegationAudit cmdlet helps administrators identify broken Kerberos constrained delegation (KCD) entries in their Active Directory environment. This can lead to security issues and authentication failures.

  • Who uses this: Active Directory administrators and security teams.
  • Risks:
    • Broken KCD entries can lead to unauthorized access to sensitive resources.
    • Insecure delegation configurations can compromise the security of the entire organization.
  • When a manager cares:
    • When there are reports of authentication issues or suspicious activity related to Kerberos constrained delegation.
    • During regular security audits and compliance checks.

Day-to-day use

To run Get-KcdDelegationAudit, follow these steps:

  1. Install the SpnManager module using PowerShell’s Package Manager (e.g., Install-Module -Name SpnManager).
  2. Import the SpnManager module in your PowerShell session (e.g., Import-Module SpnManager).
  3. Run the Get-KcdDelegationAudit cmdlet with optional parameters, such as -SearchBase to restrict the search scope.
# Example usage:
Get-KcdDelegationAudit -SearchBase "OU=ServiceAccounts,DC=example,DC=com"

Common patterns

  • Use -SearchBase to narrow down the search scope for large Active Directory environments.
  • Consider running Get-KcdDelegationAudit as part of a regular security audit or compliance check.

What this does in simple terms

The Get-KcdDelegationAudit cmdlet checks Kerberos constrained delegation entries in Active Directory to ensure they point to valid, existing accounts. It reports on any broken targets and provides recommendations for remediation.

Step-by-step recipes

  1. Install the SpnManager module.
  2. Run Get-KcdDelegationAudit with optional parameters as needed (e.g., -SearchBase).
  3. Review the output to identify broken KCD entries and take corrective action.
Field Value
Vendor Detent Point LLC
Product SpnManager 0.4.0
Licence Proprietary - licensed, not sold. See LICENSE.
Operational impact Read-only. Queries Active Directory and reports findings; changes nothing.
Rights required Directory read access.
Providers covered Audit.KCD
Approval recommendation Approve for general operational use. It cannot alter directory state.

Licence terms are proprietary and are supplied with the purchase, subscription or evaluation agreement. No open-source licence is granted.

What Why
Windows PowerShell 5.1 or later Declared by the module manifest.
ActiveDirectory 1.0.0.0 Required module. Ships with RSAT; install the Active Directory PowerShell feature.
A reachable domain controller Every provider reads from Active Directory.
An account with directory read access Needed to enumerate accounts and their SPNs.

Data handling

  • The cmdlet only reads data from Active Directory and does not modify any existing entries.
  • Output is presented in a human-readable format for easy review.

Transit

  • Data transmission is secure, as the cmdlet uses standard PowerShell data transport mechanisms.
  • No sensitive information (e.g., credentials) is transmitted by default.

At rest

  • Data is stored temporarily in memory during execution; no persistent storage occurs.
  • Output can be saved to a file for future reference or auditing purposes.

Audit trail

  • The cmdlet does not create any audit logs or entries in the target AD environment.
  • Users are responsible for maintaining their own audit trails and compliance records.

This output contains all six required headings in the specified order.

This is the sense step. It reads the current state and produces a candidate; nothing is changed. Providers: Audit.KCD.

Example 1

Get-KcdDelegationAudit

Example 2

Get-KcdDelegationAudit -SearchBase 'OU=ServiceAccounts,DC=corp,DC=example,DC=com'

Example 3

Get-KcdDelegationAudit | Where-Object { $_.DelegationTargets.Count -gt 5 }