What this does
Adds the signed-in user’s directory context (department, office, OU hierarchy, group memberships) to every trace the Velatir browser extension sends. Velatir uses this to route traces to the correct workspace, surface department-level analytics, and apply department-specific policies. Some customers route on office (geographic structure) rather than department; both are sent so either works. Works with three identity setups without configuration:- On-premise Active Directory
- Microsoft Entra ID (Azure AD)
- Hybrid (AD synchronised to Entra)
Step 1 — Grant admin consent in Entra
Open this URL as an Entra administrator in your tenant:- App: Velatir LDAP host
- Publisher: ldap.velatir.com
- Permission: Sign in and read user profile (
User.Readonly)
For pure on-premise Active Directory deployments (no Entra ID), you can skip this step. The host will read from AD directly. For hybrid deployments, do this step anyway so the host has a fallback when users are working off-VPN.
Step 2 — Verify on one machine
Before rolling out to the fleet, confirm the host returns the right data on a representative employee machine. Download the test bundle:velatir-ldap-host-x64.exe— for x64 Windows (most machines)velatir-ldap-host-arm64.exe— for ARM64 Windows
source: "ad"— on-premise Active Directory query succeededsource: "entra"— Microsoft Entra ID query succeededdepartmentshould match the user’s actual department in your directoryofficeshould match the user’s “Office” or “Office location” field. Either field may be empty if your directory doesn’t populate it; the host returns whichever ones are present.
ok is false, the embedded reason and environment fields describe what is missing:
| Reason | Fix |
|---|---|
appearsDomainJoined: false and a WAM error | Run on a machine signed in to your domain or Entra, not a local Windows account |
| ”admin has not consented” | Run step 1 |
| Anything else | Forward the JSON output to Velatir support |
--dry-run. The tool prints to stdout and exits.
Step 3 — Roll out via MSI
The directory-context host ships inside the same MSI you use for the browser extension. AddENABLE_LDAP_HOST=1 to enable it.
Download the installer:
For ARM64 Windows fleets, use
VelatirExtension-arm64.msi instead.The directory-context host is always machine-wide (EXE under
C:\Program Files\Velatir\, native messaging hosts registered in HKLM), so the per-machine MSI runs elevated. If your browser policies are rolled out per-user (HKCU), use the combined rollout: deploy the per-user MSI for the policy keys, then the per-machine MSI with LDAP_ONLY=1 to add just the host without writing any HKLM policy keys.C:\Program Files\Velatir\, registers it with Chrome, Edge, Firefox, Vivaldi and Brave as a native messaging host, and pre-warms it for first use. After deployment, every trace the extension sends from that machine automatically carries the user’s directory context.
See Browser Extension - Enterprise Deployment for the full MDM-specific commands for Intune, SCCM, and Jamf.
What gets sent — and what does not
Four directory attributes, all in derived form:department— the primary grouping field, sent as-is.office— the user’s “Office” / “Office location” field (ADphysicalDeliveryOfficeName, EntraofficeLocation), sent as-is. Useful when organisational structure is geographic rather than functional.ou—OU=components parsed from the user’sdistinguishedName.CN=andDC=are dropped.groups— for each group the user belongs to: the OU path plus an opaque key derived from a SHA-256 hash. GroupCN=values are never sent.
userKey— a stable SHA-256 hash of the signed-in user’s name ("u_…"), so traces can be attributed and correlated per user.machineKey— a stable SHA-256 hash of the computer name ("m_…").
mail, telephoneNumber, mobile, jpegPhoto, thumbnailPhoto, sIDHistory, any msDS-* attribute, any msExch* attribute. The allowlist is enforced both at the directory query (only the four directory attributes above are requested over the wire) and in code. The identity keys come from the OS (Environment.UserName / Environment.MachineName), so adding them does not widen what the host reads from the directory.
When the host cannot return data (machine not joined to any directory, AD unreachable, no Entra account on the box, Conditional Access blocking the app, etc.), it returns an “unavailable” response and the browser extension sends the trace without directory context.
Browser Extension - Enterprise Deployment
Full MDM-specific deployment guides for Intune, SCCM, and Jamf
Browser Extension
General extension features and manual installation