SafeToOpen Browser Security
Deployment Overview and Enrolment Key
How Browser Security is installed and registered on a fleet, with nothing for the user to do
SafeToOpen Browser Security is a browser extension. Rolling it out to an organisation is two separate jobs, and each has a zero-touch mechanism on desktop and on iPhone and iPad:
- Install — Getting the extension onto the browser and keeping it there. Every managed browser has a force-install policy: the user cannot skip, disable or remove the extension.
- Register — Tying that install to your organisation so it is licensed, follows your workspace policies and reports incidents to your console. With the enrolment key this happens silently on first run; without it the user has to click an activation link.
This guide explains the pieces that every platform guide relies on. Read it once, then go to the guide for your platform.
1. The two ways to register#
| Unattended enrolment (recommended) | Activation email | |
|---|---|---|
| How it works | Your MDM pushes four policy values with the extension. On first run the extension registers itself with the enrolment key. | You add people on the People page (manually, CSV or Azure AD import). Each receives an email with a link; clicking it registers that browser. |
| User action | None. | One click per browser. Users who ignore the email stay unprotected. |
| Seats | Consumed when the device enrols. The person is added to People automatically. | Consumed when the person is added. |
| Needs | Intune, Group Policy, Jamf, Apple Business Manager or Google Admin. | Nothing beyond a mailbox. |
| Platforms | Windows, macOS, iPhone and iPad. | Everything, including Android and unmanaged devices. |
You can mix them: enrol managed devices and email everyone else. A person who enrolled unattended and later clicks an activation email is the same member; no second seat is used.
2. Platform coverage: what can be enforced, what stays with the user, and why#
The table is the honest map. “Enforced” means the administrator decides and the user cannot change it. “User” means the person must do it, and the reason is the platform, not SafeToOpen.
| Platform / browser | Install | Registration | Can the user remove or disable it? | Why |
|---|---|---|---|---|
| Windows · Edge, Chrome | Enforced (force-install policy) | Unattended (enrolment key via registry) | No. The extension is greyed out on the extensions page. | Chrome and Edge honour machine policy under HKLM and expose managed storage to extensions. |
| Windows · Firefox | Enforced (policies.json / ADMX) | Activation link, until a Firefox build that reads managed storage ships | No, when force-installed. | Firefox has the policy channel; the SafeToOpen Firefox build does not yet read the enrolment values from it. |
| macOS · Chrome, Edge | Enforced (configuration profile) | Unattended (managed preferences) | No. | Managed preferences are root-owned and treated as mandatory policy. |
| macOS · Safari | Enforced (App Store app via ABM); on macOS 15+ the extension is switched on and locked by DDM | Activation link, until the Mac app passes managed app configuration to the extension | No on macOS 15+ with DDM; on older macOS the user can turn it off in Safari settings. | Safari extensions live inside an app and only became MDM-controllable with the declarative Safari extension settings in macOS 15. |
| iPhone, iPad · Safari (supervised) | Enforced (required app) | Activation link, until the iOS app passes managed app configuration to the extension; policy values already arrive via Intune app config | No on iOS 18+ with DDM; below iOS 18 the user must enable it once and can disable it. | Same declarative setting, iOS 18 and later only. |
| iPhone, iPad · Safari (BYOD, MAM only) | User installs from the App Store | Activation link | Yes. | App protection policies manage apps, not device settings or Safari; there is no channel to the extension. |
| Android · Edge | User adds it from Edge’s extension menu (Edge itself can be pushed from managed Google Play) | Activation link | Yes. | Microsoft’s extension policies (force-list, extension settings, third-party policy) are documented as not supported on Android, and Edge’s Intune app configuration has no extension keys. Nothing on the device can install or configure an extension for the user. |
| Android · Chrome, Samsung Internet, others | Not available | Not available | — | These browsers do not run extensions. Protect Android at the network layer (MDM DNS or web filtering) if required. |
| ChromeOS | Enforced (Google Admin force-install) | Activation link | No. | Google Admin sets extension policy per organisational unit, so enrol_key and domain_name can be pushed, but there is no per-device script to supply user_name and asset_name. |
| Linux · Chrome, Edge | Enforced (JSON policy files) | Unattended (JSON policy files) | No. | Root-owned policy files are mandatory policy. |
| Unmanaged laptops (BYOD, contractors) | User installs from the store | Activation link | Yes. | No management agent, no policy. The activation email and the People page’s emailed indicator are the tools you have. |
What the user can and cannot change once enrolled#
- Removal — Uninstall, disable or hide the extension: not on any force-installed platform. Where the platform allows removal (Android, BYOD) the console shows the person’s last heartbeat so you can see who has gone dark.
- Settings — Alert level, automatic scanning, Paste Guard, trusted sites, tracker blocking: each is either locked by the workspace policy or left to the user, per setting. Locked settings are greyed out in the popup with a “managed by your organisation” note.
enforce_alertin the MDM policy pins the alert level regardless of workspace policy. - Overrides — Pausing protection on a site or trusting a domain: allowed only when the workspace policy permits it; otherwise the buttons are absent. Every pause and trust is recorded in the console.
- Identity — Signing out or registering to another organisation: not possible on an enrolled install. The activation page refuses with “already registered with your organisation”.
- Visibility — Seeing what was blocked and why, and reporting a false positive: always available. Users cannot see other people’s events.
3. The enrolment key#
- Sign in to the Business Console as Owner or Co-administrator and open Settings:
https://plus.safetoopen.com/business-console#/settings. - In the card “Unattended enrolment (MDM)”, tick Enabled. The console generates the organisation’s enrolment key.
- Click Show, then Copy. Paste it into your MDM policy as the value of
enrol_key. Treat it like a password: anyone who has it can register a browser against your organisation and consume a seat. - If the key leaks, click Rotate. New enrolments with the old key stop at once; devices already enrolled keep working.
4. The four policy values#
Whatever the delivery channel, the extension reads the same four values from managed storage:
| Key | Value | What it becomes |
|---|---|---|
enrol_key | The organisation’s enrolment key from Settings. | Proves which organisation the browser belongs to. |
user_name | The person’s email or UPN, for example [email protected]. CONTOSO\jdoe or jdoe are accepted; the email domain set in the console (or the owner’s domain) is appended. | The member record on the People page and the seat. |
asset_name | The device name, for example LAPTOP-0421. | The label of the browser session and the row in the enrolled-devices list. Re-enrolling the same device reuses its session. |
domain_name | A workspace name, or blank. | Puts the person in that workspace, so they receive its policies, alert recipients and analysts. Unknown names fall back to the organisation default and are flagged in the console. |
An optional fifth key, enforce_alert, fixes the alert level for the user: 1 malicious only, 2 suspicious and above, 3 everything, 4 silent.
The browser needs the device name and the person’s identity from outside because no browser API exposes either. That is why the delivery mechanism on Windows and macOS is a script rather than a static profile.
5. Extension identifiers#
| Browser | Extension ID | Update URL |
|---|---|---|
| Google Chrome | ekfkopmgnijagfmjgcjkbffcnmggekec | https://clients2.google.com/service/update2/crx |
| Microsoft Edge | bbgoikmidjfiaaadlgkpdlppilhkjfke | https://edge.microsoft.com/extensionwebstorebase/v1/crx |
| Firefox | Shown in about:debugging#/runtime/this-firefox after a manual install | Add-on: https://addons.mozilla.org/addon/safetoopen-online-security/ |
| Safari (macOS) | Bundled in the Mac App Store app “SafeToOpen Online Security” | https://apps.apple.com/us/app/safetoopen-online-security/id1587471170 |
| Safari (iPhone, iPad) | Bundled in the App Store app “SafeToOpen” | https://apps.apple.com/us/app/safetoopen/id1588042602 |
6. Workspaces#
Workspaces let an MSP or a larger organisation split people into sites, departments or client tenants, each with its own policies, alert recipients and analysts. Create them on the Workspaces page first. Then push the workspace name as domain_name to the devices that belong there. Devices with no domain_name land in the organisation default.
7. What the user sees#
Nothing during enrolment. The extension icon appears in the toolbar, its popup shows your organisation name and logo, and the settings that your workspace policy locks are greyed out. The person can still open the popup, see why a page was blocked and report a false positive.
8. Verifying a deployment#
- On the device, open
chrome://policyoredge://policyand click Reload policies. Under the SafeToOpen extension ID you should seeenrol_key,user_name,asset_nameanddomain_name. If they are missing, the policy has not reached the browser yet; that is a policy problem, not a SafeToOpen problem. - Open the extension popup. It should show your organisation name.
- In the console, Settings → Unattended enrolment → Enrolled devices lists the device with the person, workspace and an active session within a minute of the browser starting.
- People shows the person as active. Removing them there revokes the device; the device re-enrols automatically at next start if the policy is still present, so remove the policy first when someone leaves.
9. Troubleshooting#
| Symptom | Cause | Fix |
|---|---|---|
| Device never appears in Enrolled devices | Policy values not on the device, or user_name / asset_name empty | Check the policy page in the browser. Empty values make the extension wait for the policy. |
| Activity log shows “enrol blocked: no_seats” | All seats used | Add seats in Settings; the device retries within 6 hours or at next browser start. |
| “enrol blocked: session_limit” | One person has five active browsers and none of them is an MDM session | Revoke old sessions from the People page, or forget stale devices. |
| Wrong person shown on the device | user_name is the machine or a service account | On Windows, take the UPN from the Intune enrolment (guide 2) rather than from whoami under SYSTEM. |
| Workspace column shows “pushed X is not a workspace” | Typo, or the workspace was renamed | Fix domain_name in the policy. The device re-reads policy changes at once. |
| Enrolment stopped after rotating the key | MDM still pushes the old key | Update the policy value; devices retry immediately when the managed policy changes. |
10. Which guide next#
- Windows with Intune: guide 2. Group Policy, RMM or images: guide 3.
- macOS with Intune or Jamf, including Safari: guide 4.
- iPhone and iPad: guide 5.
- Google Workspace shops and ChromeOS: guide 6.
- Android, BYOD, contractors and activation emails: guide 7.
- Jamf Pro, Kandji, Mosyle, Addigy or SimpleMDM: guide 8.
- NinjaOne, Datto RMM, ConnectWise, Kaseya, Atera, Action1, PDQ Deploy, ManageEngine, MECM or Workspace ONE: guide 9.
- Linux desktops: guide 10.
- ManageEngine Mobile Device Manager Plus, SOTI MobiControl or Hexnode: guide 11.