Skip to main content

Deploy Browser Extensions via Jamf Pro

This guide shows you how to create a Configuration Profile in Jamf Pro to force-install the Anzenna browser extension on managed Mac computers. Jamf Pro uses the same .mobileconfig format as other Apple MDM solutions, so the XML payload structure is identical — only the deployment steps differ.

Prerequisites

  • Jamf Pro administrator access with permission to create Configuration Profiles
  • Target computers enrolled in Jamf Pro
  • Google Chrome or Microsoft Edge installed on target devices
  • Custom installation URL from Anzenna support
Required Step

Before beginning deployment, contact Anzenna support to obtain a custom installation URL for your domain. This link is essential for the configuration process.

Overview

Jamf Pro deploys browser extension policies via Custom Configuration Profiles. You create a .mobileconfig XML file that sets the ExtensionInstallForcelist policy for the target browser, upload it to Jamf, scope it to the right computers or groups, and the MDM framework handles the rest.

  • Works for both Chrome and Edge — use separate profiles for each browser
  • The extension installs silently; users cannot remove it
  • Profiles apply on next MDM check-in, typically within minutes

Step-by-Step Instructions

1. Create the .mobileconfig File

Copy the appropriate XML template below into a text editor, replace the placeholder with the Anzenna-supplied installation link, and save the file with a .mobileconfig extension.

The link format includes:

  • Extension ID
  • Update URL
  • Configuration parameters

Example format (use your actual link from support):

<extension-id>;https://anzenna.ai/update-url

2. XML Template for Google Chrome

Copy the template below into a text editor and save as chrome_extension_policy.mobileconfig.

<?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>PayloadContent</key>
  <array>
      <dict>
          <key>ExtensionInstallForcelist</key>
          <array>
              <string>PASTE_ANZENNA_INSTALLATION_STRING_HERE</string>
          </array>
          <key>PayloadDisplayName</key>
          <string>Google Chrome</string>
          <key>PayloadIdentifier</key>
          <string>com.google.Chrome.GENERATE-UUID-2-HERE</string>
          <key>PayloadType</key>
          <string>com.google.Chrome</string>
          <key>PayloadUUID</key>
          <string>GENERATE-UUID-2-HERE</string>
          <key>PayloadVersion</key>
          <integer>1</integer>
      </dict>
  </array>
  <key>PayloadDisplayName</key>
  <string>Anzenna Extension - Chrome</string>
  <key>PayloadIdentifier</key>
  <string>anzenna.GENERATE-UUID-1-HERE</string>
  <key>PayloadType</key>
  <string>Configuration</string>
  <key>PayloadUUID</key>
  <string>GENERATE-UUID-1-HERE</string>
  <key>PayloadVersion</key>
  <integer>1</integer>
</dict>
</plist>

3. XML Template for Microsoft Edge

Save the file as edge_extension_policy.mobileconfig. Note the PayloadType is set to com.microsoft.Edge.

<?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>PayloadContent</key>
  <array>
      <dict>
          <key>ExtensionInstallForcelist</key>
          <array>
              <string>PASTE_ANZENNA_INSTALLATION_STRING_HERE</string>
          </array>
          <key>PayloadDisplayName</key>
          <string>Microsoft Edge</string>
          <key>PayloadIdentifier</key>
          <string>com.microsoft.Edge.GENERATE-UUID-2-HERE</string>
          <key>PayloadType</key>
          <string>com.microsoft.Edge</string>
          <key>PayloadUUID</key>
          <string>GENERATE-UUID-2-HERE</string>
          <key>PayloadVersion</key>
          <integer>1</integer>
      </dict>
  </array>
  <key>PayloadDisplayName</key>
  <string>Anzenna Extension - Edge</string>
  <key>PayloadIdentifier</key>
  <string>anzenna.GENERATE-UUID-1-HERE</string>
  <key>PayloadType</key>
  <string>Configuration</string>
  <key>PayloadUUID</key>
  <string>GENERATE-UUID-1-HERE</string>
  <key>PayloadVersion</key>
  <integer>1</integer>
</dict>
</plist>

4. Generate UUIDs and Replace Placeholders

Before saving your file, generate unique UUIDs to replace the placeholders:

  • macOS: Run uuidgen in Terminal
  • Windows: Run [guid]::NewGuid().ToString().ToUpper() in PowerShell
  • Online: Visit uuidgenerator.net

Each .mobileconfig file requires two unique UUIDs:

  • UUID-1: Identifies the root Configuration Profile (the PayloadUUID in the outer dict)
  • UUID-2: Identifies the inner browser extension payload (the PayloadUUID in the nested dict)

If you deploy both Chrome and Edge, you need 4 unique UUIDs total — 2 per profile. Never reuse UUIDs across multiple profiles, as this can cause one profile to silently overwrite another.

5. Upload the Profile to Jamf Pro

  1. Log in to your Jamf Pro instance

  2. Navigate to Computers > Configuration Profiles

  3. Click Upload and select your .mobileconfig file — Jamf Pro will parse the file and populate the profile name and payload details automatically

  4. Confirm the Distribution Method is set to Install Automatically in the General payload

Deploying to Both Browsers

If deploying to both Chrome and Edge, repeat steps 5–6 for each .mobileconfig file. Each browser requires its own Configuration Profile.

6. Scope to Target Computers

  1. Click the Scope tab

  2. Set Target to the computers or groups that should receive the extension:

    • All Computers
    • Specific computer groups
    • Individual computers
  3. Click Save to deploy the profile

Deployment Timeline

The profile deploys on the next MDM check-in. You can trigger an immediate check-in from the device via System Settings > Privacy & Security > Profiles, or by running sudo jamf policy in Terminal on the managed Mac.

Verifying Deployment

Check Profile Status in Jamf Pro

  1. Navigate to Computers > Configuration Profiles

  2. Click your Anzenna profile

  3. View the Scope tab and click View Deployments to see deployment status, or navigate to Computers > [device name] > Management > Configuration Profiles to verify installation on a specific device

Verify on End-User Device (macOS)

  1. Go to System Settings > General > Device Management

  2. Locate the profile named after your Jamf configuration (e.g., "Anzenna Chrome Extension Force Install")

  3. Click the profile to confirm the ExtensionInstallForcelist payload is present

Verify in the Browser

For Chrome:

  1. Open Chrome and navigate to:

    chrome://extensions
  2. The Anzenna extension will appear with a briefcase icon, indicating it is managed by your organization. The user cannot toggle it off or remove it.

  3. Navigate to chrome://policy and search for ExtensionInstallForcelist to confirm the extension ID is present

For Edge:

  1. Open Edge and navigate to:

    edge://extensions
  2. The Anzenna extension will appear with a briefcase icon

  3. Navigate to edge://policy to confirm the ExtensionInstallForcelist policy is active

Troubleshooting

Profile Not Applying

The configuration profile is not showing up on the device:

  • Confirm the device is enrolled and checking in to Jamf Pro
  • Verify the device falls within the profile's scope

  • Trigger a manual MDM check-in: run sudo jamf policy in Terminal or navigate to System Settings > Privacy & Security > Profiles

  • Review the Jamf Pro logs for the device under Computers > [device] > History > Management History

Extension Not Installing

Profile is present but the extension does not appear:

  • Verify the installation string format: extension-id;update-url with no extra spaces
  • Confirm the manifest URL is accessible from the device network
  • Check that the PayloadType in your XML matches the target browser — com.google.Chrome for Chrome, com.microsoft.Edge for Edge

  • Restart the browser after the profile applies

Wrong Browser Targeted

The profile applies but affects the wrong browser:

  • Chrome requires PayloadType: com.google.Chrome

  • Edge requires PayloadType: com.microsoft.Edge

  • These values must also match in PayloadIdentifier — update the XML and re-upload the profile

Duplicate or Invalid UUIDs

Profile fails to install or silently overwrites another profile:

  • Each .mobileconfig file requires two unique UUIDs — one for the configuration profile, one for the payload
  • If you copy a template and forget to regenerate UUIDs, the new profile may overwrite the previous one
  • Generate fresh UUIDs for every profile using uuidgen (macOS) or [guid]::NewGuid() (PowerShell)
  • Verify UUIDs are uppercase and properly formatted (e.g., A1B2C3D4-E5F6-7890-ABCD-EF1234567890)

Need help? Contact

Anzenna Support

for assistance.