Back to blog
Product

Microsoft integrations: Entra ID, Intune, and the device agent

Speakeasy Team

Speakeasy Team

September 7, 2026 · 6 min read

Microsoft integrations: Entra ID, Intune, and the device agent

Speakeasy now integrates with the Microsoft stack end to end. Every AI agent session authenticates through Microsoft Entra ID, the Speakeasy Device Agent deploys through Microsoft Intune on Windows and macOS, and fleet coverage is verified against your real Intune inventory. Speakeasy is also available on the Microsoft commercial marketplace.

For a Microsoft shop, this means AI governance runs on the infrastructure you already operate. Entra ID stays the source of truth for who people are and what they can touch. Intune stays the way software reaches devices. Speakeasy adds the layer neither was built for: policy, attribution, and an audit trail on what AI agents do.

Identity from Entra ID, on every agent action

Speakeasy federates sign-in to your identity provider. Connect Entra ID over SAML or OIDC and users authenticate on your sign-in screen, under your policies: MFA, device trust, and conditional access all apply, because Entra is doing the authenticating. The whole exchange runs synchronously on every sign-in, typically in about 500ms.

Directory Sync keeps membership current over SCIM. When an admin adds a user, removes one, or changes a group in Entra, the change pushes to Speakeasy and applies within about 30 seconds, with exactly-once semantics: a member’s account exists before their first sign-in, and group membership maps to Control Plane roles so access follows your org chart. When someone leaves, deprovisioning in Entra ends their agent access with their account.

The result for governance is that every session an employee starts in Claude Code, Codex, Cursor, or OpenCode is tied to a directory identity. Policy is evaluated per person on every tool call, every allow-or-deny decision is logged under a real name, and there are no shared service accounts anywhere in the path.

Deploy the device agent through Intune

The Speakeasy Device Agent is the on-device half of governance. It installs your organization’s mandated configuration, which MCP servers, plugins, and telemetry settings each AI tool should have, into each tool’s native settings, re-applies it every 60 seconds so it survives tool updates, settings resets, and account switches, and reports coverage back to the platform. Intune distributes it as a standard app on both desktop platforms.

Windows

The agent ships as a per-machine, Authenticode-signed .msi that installs the daemon, CLI, and UI under C:\Program Files\Speakeasy\ and registers the daemon as a LocalSystem service. Add it as a Win32 app or line-of-business MSI under Devices → Apps, with msiexec /i speakeasy-agent_<version>.msi /qn /norestart as the install command. Detection works from the MSI’s own UpgradeCode, so there is no custom detection rule to maintain.

Running as LocalSystem gives Windows fleets stronger tamper resistance than most endpoint agents, because standard users cannot stop the service. It also means managed-layer enforcement needs nothing extra. When you mark a tool as managed, the agent writes its system-level configuration in-process: %ProgramData%\ClaudeCode\managed-settings.json for Claude Code, %ProgramData%\OpenAI\Codex\requirements.toml for Codex, and %ProgramData%\Cursor\hooks.json for Cursor, each SYSTEM-owned with a protected ACL.

The managed configuration itself is a JSON file at %ProgramData%\Speakeasy\managed.json, delivered by a PowerShell script or a second Win32 payload, with the org token passed as a script parameter rather than a literal in the script body. Version moves are an MSI re-push. The MajorUpgrade stops the service, replaces the files, and starts it again.

macOS

You can also deploy the Speakeasy device agent via Intune to macOS devices.

The agent is a single Developer ID signed, notarized, universal .pkg that installs the daemon, CLI, menu bar app, and privileged helper together and registers its own LaunchAgents. Add it as a macOS line-of-business app; the Intune app model checks the package receipt, so detection again needs no custom rule.

Settings arrive as a configuration profile carrying a Custom Settings payload on the com.speakeasy.agent preferences domain, so every Mac comes up enrolled with zero user interaction and no browser sign-in. Install it once: the agent’s signed, checksum-verified auto-update keeps the daemon, CLI, and app current on its own, with automatic rollback if an update fails to start.

Verify coverage against your Intune inventory

Deploying tells you what Intune pushed. It doesn’t tell you what’s running. The inventory integration closes that gap through Microsoft Graph with a scope-limited app registration: one application permission, DeviceManagementManagedDevices.Read.All, with admin consent, and nothing else. Enter the tenant ID, client ID, and client secret in Device Agent → MDM Integrations; credentials are stored encrypted and never shown again. Connections follow a save, test, then enable flow, and start paused so invalid credentials never generate failed syncs.

Once enabled, Speakeasy pulls the managed-device inventory hourly and joins it against the agent’s own heartbeats. Each device’s Intune-recorded email address (falling back to the user principal name) attributes it to a person, and every managed device lands in exactly one coverage state:

StateMeaning
Agent activeThe assigned user’s device agent reported a heartbeat within the active window.
Agent staleThe agent has gone silent while Intune still sees the device checking in. Worth investigating.
No agentThe assigned user has never reported an agent heartbeat. Your deployment queue.
No email in MDMThe device record has no assigned user, so coverage can’t be attested.

During a rollout, the two lists an admin works are No agent (deploy to these) and Agent stale (the agent was running and stopped; find out why).

The same coverage exports to Drata or Vanta as continuously tested compliance evidence: one record per managed device carrying serial, hostname, assigned user, and agent status, replaced as a complete snapshot on every push so departed devices drop out and retries never duplicate records.

What this looks like for a Microsoft-first organization

  • Rollout is a package push and a configuration profile, with nothing to script and no custom detection rules on either platform.
  • Access control lives where it already lives. Entra groups map to roles, conditional access applies at sign-in, and offboarding is your existing leaver process.
  • Security gets attribution: every AI session and tool call under a directory identity, scanned in flight, with shadow MCP servers surfaced and policy enforced per action.
  • Compliance gets per-device evidence that the control is running, not just that it was deployed.

Speakeasy runs alongside the rest of the Microsoft integration surface: Jamf Pro and Iru (formerly Kandji) are supported the same way for Apple-first fleets, documented in the same MDM installations guide.

Get started

Speakeasy is live on the Microsoft commercial marketplace. The Intune deployment guide covers the MSI, the pkg, the configuration profile, and the Graph inventory connection step by step, and identity setup covers connecting Entra ID for SSO and Directory Sync. The full list of supported AI clients, gateways, MDMs, and compliance platforms lives in the integrations directory.


Rolling out AI governance across a Microsoft shop? Book time with our team and we’ll walk through it with you.

Last updated on

AI everywhere.

Control here.