> For the complete documentation index, see [llms.txt](https://docs.userlane.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.userlane.com/deployment/rollout/roll-out-the-extention.md).

# Roll out the extension

Pushing the browser extension to devices, activating it silently, and troubleshooting activation failures.

This article covers how to install the Userlane browser extension silently on managed devices so that it authenticates end users automatically through single sign-on (SSO) and reports to the correct Userlane environment.

{% hint style="warning" %}
**Prerequisites.**

* An administrator account in the Userlane portal.
* The company ID and hosting region, provided by the Userlane team during onboarding.
* The integrity token[^1], generated by the IT administrator in the Userlane portal.
* Access to the organization's device management tool or the ability to edit browser policies (Windows registry or macOS configuration profiles).
  {% endhint %}

## Gather the configuration values

Every browser policy needs three values. Collect them before you start the installation.

<table><thead><tr><th width="168.88372802734375">Value</th><th>What it is</th><th>Where to get it</th></tr></thead><tbody><tr><td><code>companyId</code></td><td>The unique identifier for the Userlane environment</td><td>Provided by the Userlane team during onboarding</td></tr><tr><td><code>companyIntegrity</code></td><td>The integrity token that secures the extension configuration</td><td>Generated by the IT administrator in the Userlane portal</td></tr><tr><td><code>region</code></td><td>The hosting region for the Userlane environment</td><td><code>eu</code> if hosted in the EU, <code>us</code> if hosted in the US, <code>uk</code> if hosted in the UK. Confirmed by the Userlane team during onboarding.</td></tr></tbody></table>

## Install and configure the extension

Each browser has its own policy system. If the organization uses more than one browser, repeat these steps for each one.

{% tabs %}
{% tab title="Chrome" %}

### Chrome on Windows

{% stepper %}
{% step %}

#### Add the extension to the force-install list

Open the Windows registry editor. Navigate to the following path and create it if it does not exist:

```
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\ExtensionInstallForcelist
```

Add a new string value. Set the value name to `1` and the value data to the Chrome extension ID:

```
"1"="oaienfpdbimabhlgjlbdpocbogaijnam"
```

If other extensions are already force-installed, use the next available number (`2`, `3`, and so on) instead of `1`.

A downloadable `.reg` file is also available at `https://browser-extension.userlane.com/chrome/UserlaneChromeExtension.reg`.
{% endstep %}

{% step %}

#### Set the configuration keys

Navigate to the following registry path and create it if it does not exist:

```
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\3rdparty\extensions\oaienfpdbimabhlgjlbdpocbogaijnam\policy
```

Add three string values (type `REG_SZ`):

```
"companyId"="<the company ID>"
"companyIntegrity"="<the integrity token>"
"region"="eu"
```

Replace the placeholder values with the actual company ID, integrity token, and region.
{% endstep %}

{% step %}

#### Apply the policy

Restart the browser. Alternatively, navigate to `chrome://policy` and select **Reload policies**.
{% endstep %}
{% endstepper %}

### Chrome on macOS

{% stepper %}
{% step %}

#### Create the managed preferences plist

Create a property list file named `com.google.Chrome.extensions.oaienfpdbimabhlgjlbdpocbogaijnam.plist` with the following content:

```xml
<?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>companyId</key>
  <string><!-- the company ID --></string>
  <key>companyIntegrity</key>
  <string><!-- the integrity token --></string>
  <key>region</key>
  <string>eu</string>
</dict>
</plist>
```

Replace the placeholder values with the actual company ID, integrity token, and region.
{% endstep %}

{% step %}

#### Add the extension to the force-install list

Add the Chrome extension ID `oaienfpdbimabhlgjlbdpocbogaijnam` to the `ExtensionInstallForcelist` managed preference for Chrome. Refer to the Chrome Enterprise policy documentation at `https://cloud.google.com/docs/chrome-enterprise/policies/` for the current method.
{% endstep %}

{% step %}

#### Deploy the profile

Deploy the plist and the force-install configuration through the organization's configuration profile tool. Restart the browser or wait for the next policy sync.
{% endstep %}
{% endstepper %}
{% endtab %}

{% tab title="Edge" %}

### Edge on Windows

{% stepper %}
{% step %}

#### Add the extension to the force-install list

Open the Windows registry editor. Navigate to the following path and create it if it does not exist:

```
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\ExtensionInstallForcelist
```

Add a new string value. Set the value name to `1` and the value data to the Edge extension ID:

```
"1"="joephgegnilhnnnocnkigpmmamgghage"
```

If other extensions are already force-installed, use the next available number instead of `1`.
{% endstep %}

{% step %}

#### Set the configuration keys

Navigate to the following registry path and create it if it does not exist:

```
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\3rdparty\extensions\joephgegnilhnnnocnkigpmmamgghage\policy
```

Add three string values (type `REG_SZ`):

```
"companyId"="<the company ID>"
"companyIntegrity"="<the integrity token>"
"region"="eu"
```

Replace the placeholder values with the actual company ID, integrity token, and region.
{% endstep %}

{% step %}

#### Apply the policy

Restart the browser. Alternatively, navigate to `edge://policy` and select **Reload policies**.
{% endstep %}
{% endstepper %}

### Edge on macOS

{% stepper %}
{% step %}

#### Create the managed preferences plist

Create a property list file named `com.Microsoft.Edge.extensions.joephgegnilhnnnocnkigpmmamgghage.plist` with the following content:

```xml
<?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>companyId</key>
  <string><!-- the company ID --></string>
  <key>companyIntegrity</key>
  <string><!-- the integrity token --></string>
  <key>region</key>
  <string>eu</string>
</dict>
</plist>
```

Replace the placeholder values with the actual company ID, integrity token, and region.
{% endstep %}

{% step %}

#### Add the extension to the force-install list

Add the Edge extension ID `joephgegnilhnnnocnkigpmmamgghage` to the `ExtensionInstallForcelist` managed preference for Edge. Refer to the Microsoft Edge enterprise policy documentation at `https://docs.microsoft.com/en-us/deployedge/microsoft-edge-policies` for the current method.
{% endstep %}

{% step %}

#### Deploy the profile

Deploy the plist and the force-install configuration through the organization's configuration profile tool. Restart the browser or wait for the next policy sync.
{% endstep %}
{% endstepper %}
{% endtab %}

{% tab title="Firefox" %}

### Firefox on Windows

Firefox uses a `policies.json` file rather than the Windows registry. The file is located in the Firefox installation directory under `distribution\policies.json`.

{% stepper %}
{% step %}

#### Create or update the policies file

Add the following to the `policies.json` file:

```json
{
  "policies": {
    "ExtensionSettings": {
      "userlane_browser_extension@userlane.com": {
        "installation_mode": "force_installed",
        "install_url": "https://browser-extension.userlane.com/firefox/userlane.xpi"
      }
    },
    "3rdparty": {
      "Extensions": {
        "userlane_browser_extension@userlane.com": {
          "companyId": "<the company ID>",
          "companyIntegrity": "<the integrity token>",
          "region": "eu"
        }
      }
    }
  }
}
```

Replace the placeholder values with the actual company ID, integrity token, and region.
{% endstep %}

{% step %}

#### Deploy the policies file

Distribute the `policies.json` file to each managed device. Place it in the `distribution` folder inside the Firefox installation directory. Restart Firefox.
{% endstep %}
{% endstepper %}

### Firefox on macOS

The same `policies.json` structure applies. Deploy it through the organization's configuration management tool to the Firefox `distribution` directory on each device.

Refer to the Mozilla policy templates documentation at `https://github.com/mozilla/policy-templates` for platform-specific deployment methods.
{% endtab %}
{% endtabs %}

## Verify the rollout

After the policy is applied, confirm the extension is installed and configured correctly on a test device.

{% stepper %}
{% step %}

#### Confirm the extension is installed

Open the browser's extension manager. The Userlane extension should appear in the list and show as managed by the organization.
{% endstep %}

{% step %}

#### Check the configuration values

For Chrome or Edge, right-click the Userlane extension icon, select **Options**, and navigate to **Managed Storage**. Confirm that `companyId`, `companyIntegrity`, and `region` are present and correct.
{% endstep %}

{% step %}

#### Confirm SSO authentication

Open a web application on the test device. The extension should authenticate the user automatically in the background. If SSO is not yet configured, see [End-user single sign-on](/deployment/rollout/end-user-single-sign-on.md).
{% endstep %}
{% endstepper %}

When the rollout works, the extension appears in the browser, **Managed Storage** shows the correct configuration values, and end users are authenticated through SSO without a manual login step. If any check fails, see [Troubleshoot the extension](/deployment/rollout/roll-out-the-extention/troubleshoot-the-extension.md).

## Supported browsers and operating systems

<table><thead><tr><th width="146.14495849609375">Browser</th><th width="109.47265625">Minimum version</th><th>Extension identifier</th></tr></thead><tbody><tr><td>Chrome</td><td>88+</td><td><code>oaienfpdbimabhlgjlbdpocbogaijnam</code></td></tr><tr><td>Edge</td><td>88+</td><td><code>joephgegnilhnnnocnkigpmmamgghage</code></td></tr><tr><td>Firefox</td><td>109+</td><td>Installed via XPI (<a href="https://browser-extension.userlane.com/firefox/userlane.xpi">https://browser-extension.userlane.com/firefox/userlane.xpi</a>)</td></tr></tbody></table>

The minimum versions reflect the Manifest V3 extension platform that the Userlane extension is built on. Earlier browser versions do not support the extension.

## Relevant articles

{% content-ref url="/pages/FRU06enU3lsRJrh5njNu" %}
[Troubleshoot the extension](/deployment/rollout/roll-out-the-extention/troubleshoot-the-extension.md)
{% endcontent-ref %}

{% content-ref url="/pages/fsyxQCU0NHHxdU55aS9u" %}
[How Userlane is deployed](/deployment/rollout/how-userlane-is-deployed.md)
{% endcontent-ref %}

{% content-ref url="/pages/SRW9iMERFNl0SSjAfJnd" %}
[Environment prerequisites](/deployment/rollout/environment-prerequisites.md)
{% endcontent-ref %}

{% content-ref url="/pages/IkbYytjTIP1b0c4ZNCbM" %}
[End-user single sign-on](/deployment/rollout/end-user-single-sign-on.md)
{% endcontent-ref %}

## FAQ

<details>

<summary>Does the extension need to be installed separately for each browser?</summary>

Yes. Chrome, Edge, and Firefox each have their own enterprise policy system. If the organization uses more than one browser, configure the force-install policy for each one separately.

</details>

<details>

<summary>What happens if single sign-on authentication fails after the extension is installed?</summary>

The extension retries authentication on an increasing interval, starting at two minutes and eventually reaching once every 48 hours. End users do not see an error unless the SSO window mode is set to active tab. Configure SSO before rolling out the extension to avoid failed authentication attempts.

</details>

<details>

<summary>Can the extension be deployed without single sign-on?</summary>

The extension can be force-installed without SSO, but end users then need to authenticate manually. SSO is the recommended approach for a silent rollout because it removes the manual step.

</details>

<details>

<summary>Which hosting region value should be used?</summary>

Use `eu` if the Userlane environment is hosted in the European Union, `us` if it is hosted in the United States, and `uk` if it is hosted in the United Kingdom. The Userlane team confirms the region during onboarding.

</details>

<details>

<summary>Is Firefox supported?</summary>

Yes. Chrome, Edge, and Firefox are all supported. Install the Firefox extension using the `policies.json` steps in this article.

</details>

<details>

<summary>What if other extensions are already force-installed?</summary>

The `ExtensionInstallForcelist` policy uses numbered string values. If other extensions already occupy value `1`, use the next available number. The order does not affect functionality.

</details>

[^1]: The integrity token is a secret value that validates the extension configuration. It prevents unauthorized copies of the extension from connecting to the Userlane environment. The IT administrator generates the token in the portal's extension settings.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.userlane.com/deployment/rollout/roll-out-the-extention.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
