SpnManager Kerberos SPN auditing and repair for Active Directory

Invoke-SpnLifecycle

The Invoke-SpnLifecycle command provides a convenient way to manage Service Principal Names (SPNs) through the SpnManager module. This feature is essential...

The Invoke-SpnLifecycle command provides a convenient way to manage Service Principal Names (SPNs) through the SpnManager module. This feature is essential for IT administrators who need to ensure proper SPN registration and configuration in their environment.

Business value:

  • Simplifies SPN management by orchestrating multiple stages: Sense, Propose, Test, Implement/Handoff
  • Reduces errors by dispatching through registered stage functions at call time

Who uses this: * IT Administrators responsible for service principal name (SPN) registration and configuration * System administrators managing enterprise services and applications

Risks:

  • Misconfigured SPNs can lead to authentication failures or security breaches
  • Non-standard or custom SPN management practices may not be compatible with the Invoke-SpnLifecycle command

When a manager cares: * When service outages or authentication issues are reported due to SPN misconfiguration * During security audits or compliance reviews, when correct SPN configuration is required * When implementing new services or applications that require proper SPN registration and configuration

To use Invoke-SpnLifecycle, follow these steps:

  1. Ensure the SpnManager module is installed and registered.
  2. Load the SpnManager module using Import-Module SpnManager.
  3. Run Invoke-SpnLifecycle with the provider name as an argument, e.g., Invoke-SpnLifecycle -Provider MyProvider.

Code examples:

# Example 1: Run the full SPN lifecycle for a registered provider
Invoke-SpnLifecycle -ProviderId MyProvider

# Example 2: Run individual stage functions directly (for MCP integration)
# Invoke-SpnStage -Name Sense -Params @{TargetComputer = "MyComputer"}

Watchpoints:

  • Ensure the provider is correctly registered in providers.json.
  • Verify that each stage function is properly configured and callable.
  • Monitor for errors or exceptions during SPN lifecycle execution.

The Invoke-SpnLifecycle command helps manage Service Principal Names (SPNs) by orchestrating multiple stages: Sense, Propose, Test, Implement/Handoff. Here’s a step-by-step recipe:

  1. Understand the provider you want to work with.
  2. Run Invoke-SpnLifecycle with the provider name as an argument.
  3. The command will dispatch through each stage function, performing tasks like sensing, proposing, testing, and implementing SPNs.

What it does in simple terms: * Manages Service Principal Names (SPNs) for registered providers * Orchestrates multiple stages to ensure proper SPN configuration

Step-by-step recipes:

  1. Run Invoke-SpnLifecycle with a registered provider name.
  2. The command will guide you through each stage, from sensing to implementing SPNs.

What to do when stuck: * Consult the SpnManager documentation and online resources * Reach out to IT administrators or support teams for assistance

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 framework surface (not provider-specific)
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 Invoke-SpnLifecycle command processes sensitive data, such as service principal names and computer credentials.
  • Data is handled securely using secure protocols (e.g., HTTPS) and encryption.

Transit: * Data in transit is encrypted using secure protocols (e.g., HTTPS).

At-rest: * Data at rest is encrypted using industry-standard algorithms (e.g., AES-256).

Audit trail: * The Invoke-SpnLifecycle command logs key events, such as SPN registration and configuration changes. * Audit trails are stored securely and can be reviewed for compliance purposes.

Compliance requirements:

  • Ensure proper data encryption in transit and at rest.
  • Maintain accurate audit trails for regulatory compliance (e.g., GDPR, HIPAA).
  • Adhere to industry standards for secure data handling.

Example 1

Invoke-SpnLifecycle -ProviderId 'SQL.Engine'

Runs the full SQL.Engine lifecycle against the local machine.

Example 2

Invoke-SpnLifecycle -ProviderId 'AD.RDP' -TargetComputer 'srv01' -PassThru

Runs the RDP provider lifecycle against srv01 and returns the result.

Example 3

Invoke-SpnLifecycle -ProviderId 'SQL.Engine' -WhatIf

Shows what the Implement stage would do without making AD changes.