Break Glass Admin - Rocketman-Tech/rcc GitHub Wiki

The Break Glass Admin tool creates or manages a backdoor administrator account with a customizable, secure password. It supports both static and randomized password generation methods and is designed for emergency access to user devices. Passwords can be stored securely in the system keychain (local), in Jamf Pro as an Extension Attribute (remote), or in both locations.

Note

If the specified backdoor admin account already exists on the system, Break Glass Admin will automatically rotate its password using the configured method. It will not delete or recreate the account unless the --force flag is provided and a password change attempt fails. This ensures a safe and non-destructive update flow by default.

Quick Start

To quickly create a backdoor admin account with a randomized password (generated using the NATO phonetic alphabet) that is stored in the local keychain and in Jamf Pro, you will need to deploy the following:

  • Configuration Profile
  • Policy
  • Extension Attribute

Example Configuration Profile

Below is a Managed PLIST that can be deployed through a Configuration Profile to the following domain: tech.rocketman.breakglass

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>passMethod</key>
    <string>nato</string>
    <key>storage</key>
    <string>local</string>
    <key>shortName</key>
    <string>breakglass</string>
    <key>extAttr</key>
    <string>RCC Break Glass Admin Password</string>
    <key>keyChain</key>
    <string>/Library/Keychains/System.keychain</string>
    <key>fullName</key>
    <string>Break Glass Admin</string>
  </dict>
</plist>

Example Extension Attribute

When using the local storage method for the backdoor admin password, you will need to create an Extension Attribute to retrieve the backdoor admin password:

Jamf Extension Attribute Script

See it in this GitHub Gist.

For details on setting up the Jamf Pro Extension Attribute with local keychain storage, visit: Get Backdoor Admin Password From Keychain

Example Policy

When setting up the Launch a Tool Script in Jamf Pro, use the following script parameters:

  • Parameter 4 (Global Options and Tool Name): BreakGlassAdmin

Important

Make sure to check the “Update Inventory” box in the policy's maintenance payload. Without it, extension attributes won’t refresh during recurring check-in.

Tip

Best practice: Run the Break Glass Admin tool on a weekly schedule via a recurring check-in policy to rotate the password regularly. For new devices, consider using a separate one-time onboarding policy to create the account and set the initial password.

Command Options

Primary Parameters

--passMethod [nato | xkcd | names | wopr | pseudoRandom | static | custom]

Specifies the password generation method.

  • Default: nato
  • Options:
    • nato: Uses words from the NATO phonetic alphabet (e.g., “WhiskeyTangoFoxtrot”).
    • xkcd: Generates random words in the style of the XKCD webcomic.
    • names: Similar to xkcd but uses proper names.
    • wopr: Mimics launch codes from the movie WarGames (e.g., “CPE 1704 TKS”).
    • pseudoRandom: Follows University of Nebraska’s LAPS format to generate a pseudorandom password.
    • static: Uses a user-specified password (see --staticPassword).
    • custom: Allows complete customization via additional parameters.
  • Example:
    --passMethod xkcd
    

--storage [local | remote | both]

Specifies where the password will be stored.

Tip

For security and stability, use the local storage method. The both and remote options are advanced storage options provided only for legacy scenarios and migration from older LAPS methods.

  • Default: local
  • Options:
    • local: Stores the password in a hidden, secure file on the system keychain. This file is accessible only by Rocketman Command Center and can (if desired) be synced to Jamf Pro through an Extension Attribute. For details on setting up this Extension Attribute, see Get Backdoor Admin Password From Keychain.
    • remote: Stores the password directly in Jamf Pro via the API as an Extension Attribute. This legacy method is less secure and stable than local storage because it involves sending Jamf Pro API credentials in plain text. It is only required in certain use cases. Requires --clientId and --clientSecret
    • both: Stores the password in both the local system keychain and in the remote Jamf Pro Extension Attribute. This option is useful when migrating from older LAPS methods where the password is only stored within a Jamf Pro Extension Attribute. Once all passwords are stored locally, you can eliminate the API call and use the more secure local method exclusively. Requires --clientId and --clientSecret
  • Example:
    --storage local
    

--shortName [string]

The username for the backdoor admin account.

  • Default: commander
  • Example:
    --shortName emergencyAdmin

--fullName [string]

The full name associated with the backdoor admin account.

  • Default: Breakglass Admin
  • Example:
    --fullName "Emergency Administrator"

--adminVisible

Sets the account to be visible if this flag is enabled.

  • Type: Boolean
  • Default: Hidden
  • Example:
    --adminVisible

--staticPassword [string]

Specifies a static password for the account.

Only applicable when using --passMethod static

  • Example:
    --staticPassword "SuperSecretPassword123!"

--num [integer]

Defines the number of words or characters in the generated password.

  • Type: integer
  • Default: Depends on the chosen --passMethod
  • Example:
    --num 4

--force

Forces account recreation if the password retrieval process fails.

  • Type: boolean
  • Example:
    --force

--defaultPass [string]

A fallback password that will be attempted if the regular password retrieval process fails.

  • Example:
    --defaultPass "BackupPassword123!"

--keyChain [string]

Specifies the path to the keychain file for local password storage.

  • Default: /Library/Keychains/System.keychain
  • Example:
    --keyChain "/Library/Keychains/Custom.keychain"

Custom Method Options

Only applicable when using --passMethod custom

  • --minLower [integer]: Minimum number of lowercase characters. (Default: 1)
  • --minUpper [integer]: Minimum number of uppercase characters. (Default: 1)
  • --minDigit [integer]: Minimum number of digits. (Default: 1)
  • --minSpecial [integer]: Minimum number of special characters. (Default: 1)

Advanced / Legacy Parameters

Note

These parameters are provided only for advanced configurations (typically when migrating from older LAPS methods). It is strongly recommended to use local storage exclusively for improved security and stability.

--clientId [string]

Jamf Pro API Client ID for remote storage configurations.

  • Usage: Required only when --storage is set to remote or both as part of a legacy setup.
  • Example:
    --clientId ABCD1234

--clientSecret [string]

Jamf Pro API Client Secret for remote storage configurations.

  • Usage: Required only when --storage is set to remote or both as part of a legacy setup.
  • Example:
    --clientSecret XYZ7890

--extAttr [string]

Specifies the name of the Jamf Pro Extension Attribute used to store the password when using remote or both storage.

  • Default: RCC: Breakglass Admin Password - Commander
  • Example:
    --extAttr "RCC: Breakglass Admin Password - Commander"

--domain [string]

Specifies the domain for setting options in local or managed plists.

  • Type: string
  • Default: tech.rocketman.breakglass
  • Example:
    --domain "tech.rocketman.customdomain"

Additional Resources

When saving the backdoor admin password locally, it is saved in the keychain defined by the parameter (--keyChain) with the name defined by the parameter (--extAttr) for the Account defined by the parameter (--shortName). These fields must be defined in the plist /Library/Managed Preferences/tech.rocketman.breakglass.plist so that the GetBackdoorAdminPasswordFromKeychain tool can retrieve it and insert it into the Extension Attribute jamf defined in the parameter (--extAttr). By default --keyChain is /Library/Keychains/System.keychain, --extAttr is BreakGlass Admin Password and --shortName is commander

⚠️ **GitHub.com Fallback** ⚠️