Documentation

Jamf

Force-install the SURF browser extension on managed macOS devices using Jamf Pro configuration profiles. Chrome, Edge and Firefox are each covered.

Before you start

RequirementDetail
Jamf accessAdministrator on the Jamf Pro console with rights to create and scope configuration profiles
Extension IDThe Chrome Web Store ID for the SURF extension. Replace the example ID below if your tenant uses a dedicated extension.

Google Chrome

  1. In the Jamf Pro console, go to Computers β†’ Configuration Profiles β†’ New.
  2. Under General, name the profile, for example Force Chrome Extension Install.
  3. Add Custom Settings for Chrome: choose External Applications, and set the source to Custom Schema.
  4. In the Preference Domain field, enter com.google.Chrome
  5. Add the following as the custom schema:
<?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>ExtensionInstallForcelist</key>
    <array>
      <string>dpmjncncaehmgjeficalpmlfaenmbeca;https://clients2.google.com/service/update2/crx</string>
    </array>
  </dict>
</plist>
  1. Under Scope, assign the profile to the groups or computers that need the extension.
  2. Click Save. The extension installs in Chrome without user interaction.

Microsoft Edge

Edge supports ExtensionInstallForcelist in the same way as Chrome. Only the preference domain changes.

  1. Go to Computers β†’ Configuration Profiles β†’ New and name the profile, for example Force Edge Extension Install.
  2. Add Custom Settings: External Applications, source Custom Schema.
  3. In Preference Domain, enter com.microsoft.Edge
  4. Use the same plist as the Chrome section above.
  5. Scope the profile to the target devices and click Save.

Firefox

Firefox uses a different policy structure and installs from a signed .xpi rather than a Web Store ID.

Using a configuration profile

  1. Go to Computers β†’ Configuration Profiles β†’ New and name the profile, for example Force Install Firefox Surf Security Extension.
  2. Add Custom Settings: External Applications, source Custom Schema.
  3. In Preference Domain, enter org.mozilla.firefox
  4. Add the following schema:
<?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>policies</key>
    <dict>
      <key>Extensions</key>
      <dict>
        <key>Install</key>
        <array>
          <string>https://addons.mozilla.org/firefox/downloads/file/4323804/surf_security-1.1.95.xpi</string>
        </array>
        <key>Locked</key>
        <array>
          <string>surf_security@extensions.mozilla.org</string>
        </array>
      </dict>
    </dict>
  </dict>
</plist>
  1. Scope the profile and click Save. The extension ID is implied by the .xpi being installed.

Alternative: deploy policies.json

For environments that prefer a file drop over a profile.

  1. Download policies.json from https://packagesharing.s3.eu-west-2.amazonaws.com/policies.json
  2. The file contains:
{
  "policies": {
    "Extensions": {
      "Install": [
        "https://addons.mozilla.org/firefox/downloads/file/4323804/surf_security-1.1.95.xpi"
      ],
      "Locked": [
        "edf765f10958956e44c1bf23065d48f6911de045@surf.security"
      ]
    }
  }
}
  1. Place it at Applications/Firefox.app/Contents/Resources/distribution/policies.json
  2. If the distribution directory does not exist, create it. Firefox reads policies from that folder by default.
  3. Restart Firefox. The extension installs and cannot be removed by the user.

Troubleshooting

SymptomCheck
Extension does not appear in Chrome or EdgePreference domain mistyped, or the extension ID does not match the one in the Web Store
Profile applied but nothing installsThe profile is not scoped to the device. Check the Scope tab.
Firefox ignores the policypolicies.json is in the wrong location, or the distribution directory was not created
Extension installs but users can disable itFor Firefox, the Locked array is missing or holds the wrong extension identifier

For anything not covered here, contact the SURF support team.