Microsoft 365 Device Management

Intune App Protection Policies for BYOD: Securing Microsoft 365 Data Without MDM Enrollment

A contractor’s personal iPhone has your CEO’s mailbox in Outlook, three confidential decks in OneDrive, and a Teams channel full of unreleased financials — and your security team has zero control over that device. You can’t enforce a passcode, you can’t see what other apps are installed, and the moment that contract ends you have no way to claw the data back. The instinct is to demand they enroll the phone in Intune MDM. They refuse — it’s their phone, they don’t want IT reading their photos or wiping their device, and frankly they’re right to push back. This is the BYOD standoff that plays out in every organization, and the answer is not “enroll harder.”

The answer is app protection policies (APP), delivered through mobile application management without enrollment (MAM-WE). Instead of managing the device, you manage the corporate data inside specific apps. The Intune App SDK — compiled into Outlook, Teams, Edge, OneDrive, Word, Excel and the rest of the Microsoft 365 mobile apps — creates an encrypted, policy-governed container around org data inside each app. You require a PIN to open the container, you block copy-paste and “Save As” out of it, you force corporate links to open in managed Edge, you gate access behind Conditional Access so an unprotected app can’t even reach Office 365, and when the contractor leaves you issue a selective wipe that removes only the org data and never touches a single personal photo. The user keeps their phone fully private; you keep hard control of the data your apps put on it.

This is the complete MAM-WE architecture, end to end, written for the engineer who has to design it, ship it to thousands of users, and defend it in an audit. You will learn exactly how APP works under the hood (the SDK, managed apps, the broker handshake), every policy setting that matters and what each value actually does, how to wire Require app protection policy in Conditional Access (and migrate off the retiring approved-client-app grant), how iOS and Android genuinely differ, when MAM is the wrong tool and MDM is the right one, and how to diagnose the failure modes that bite in production — chief among them the quiet unmanaged-account leak that defeats a careless deployment. Every claim comes with the real setting name, the exact portal path, and az/Graph/PowerShell where it applies.

What problem this solves

The core problem is data residency on devices you don’t own. Microsoft 365 makes corporate data trivially mobile — a user installs Outlook, signs in, and your entire mail and calendar are now on a personal phone. Without a control layer, that data can be copied into WhatsApp, saved to a personal iCloud, screenshotted into the camera roll, forwarded from a personal Gmail account added into the same Outlook, or simply walk out the door on a phone you can never reach again. For regulated data — PHI, PCI, financial, legal-privilege — that is a reportable exposure, not a hypothetical.

The naive fix is full MDM enrollment: take over the whole device, enforce a passcode and encryption, and reserve a remote wipe. It works for corporate-owned hardware and fails for BYOD on two fronts. First, user revolt — people will not enroll personal phones once they understand IT gains device-level visibility and a wipe button, and many route around the policy or refuse mobile entirely. Second, privacy and liability — enrolling personal devices drags the organization into managing hardware it doesn’t own. For contractors, frontline workers, and any “I’ll use my own phone” population, MDM is a poor fit.

MAM-WE solves it by moving the boundary from the device to the app. The control surface is precisely the corporate data inside the managed apps — nothing more. IT sees no personal apps, no photos, no location; the user sees no device takeover and no risk of a full wipe. Who hits this: essentially every organization with BYOD, contractors, M&A populations on separate tenants, shared frontline devices, and anyone whose compliance team asked “can corporate email leak to a personal cloud from a phone we don’t manage?” The honest answer without APP is yes; with APP, no — and you can prove it.

To frame the whole field before the deep dive, here is what each layer of the MAM-WE stack contributes and what breaks if you skip it:

Layer What it does What breaks without it Where you configure it
App protection policy (APP) Containerizes org data inside managed apps; sets PIN, encryption, data-relocation Data freely copies/saves out of managed apps; no PIN, no encryption Intune admin center → Apps → App protection policies
App configuration policy (managed apps) Pre-sets app behaviour (allowed-accounts-only, Outlook profile, Edge homepage) Personal accounts can be added into managed apps and leak silently Intune admin center → Apps → App configuration policies
Conditional Access Forces traffic through approved, policy-protected apps only Native Mail / unmanaged browser reach Office 365 with no protection Entra admin center → Protection → Conditional Access
Broker app Authenticates the user and delivers/enforces the policy without enrollment Policy never applies; check-in never happens Authenticator (iOS) / Company Portal (Android) on the device
Selective wipe Removes only corporate data from the managed apps on demand No way to revoke data when a user leaves or loses the phone Intune admin center → Apps → App selective wipe

Learning objectives

By the end of this article you can:

Prerequisites & where this fits

You should already understand the basics of Microsoft Intune and Microsoft Entra ID: that Intune is the cloud endpoint-management service, that users and security groups live in Entra, and that MDM enrollment brings an entire device under management with a device object you can target. You should be comfortable with Conditional Access at a conceptual level — that it evaluates sign-ins against conditions and applies grant controls — and able to run az/Microsoft Graph in Cloud Shell or PowerShell. Familiarity with the Microsoft 365 mobile apps (Outlook, Teams, Edge, OneDrive) helps, since they are the subjects of every policy here.

This sits in the Endpoint Management / BYOD security track. It is the app-layer counterpart to device management: where Intune Android Enterprise enrollment and configuration profiles and Intune Autopilot zero-touch provisioning cover managed devices, this covers unmanaged devices with managed data. It depends heavily on the gating mechanics from Conditional Access with device compliance and filters, because Conditional Access is what turns an app protection policy from a suggestion into an enforced boundary. It complements data-classification controls from Purview sensitivity labels, auto-labeling and encryption and Purview DLP across endpoint and Exchange — APP controls movement of data out of apps, while labels and DLP control classification and content.

A quick map of who owns what during a MAM-WE rollout, so you pull in the right people:

Layer What lives here Who usually owns it Failure classes it can cause
Licensing Intune Plan 1 / EMS / M365 E3-E5 entitlement Licensing / procurement Policy never applies (unlicensed user)
Entra groups BYOD user groups (assignment targets) Identity team Wrong users targeted; policy missing for some
App protection policy PIN, encryption, data-relocation, conditional launch Endpoint / MAM admin Data leaks; PIN not enforced; users locked out
App configuration policy Allowed-accounts-only, Outlook/Edge config Endpoint / MAM admin Personal-account leak; misrouted links
Conditional Access Require app protection policy grant Identity / security team Unprotected apps still reach data; lockouts
Broker apps Authenticator (iOS), Company Portal (Android) Endpoint admin / helpdesk Policy never delivered; sign-in loops
Selective wipe Per-app data removal on offboarding Helpdesk / SecOps Data not revoked; wipe targets wrong identity

Core concepts

Five mental models make every later decision obvious. Internalize these and the settings stop being a checklist and start being a system.

APP manages the data, not the device. This is the whole thing. An app protection policy is a set of rules the Intune App SDK enforces inside a participating app at runtime. The policy has no device object, no enrollment, no view of the OS — it governs exactly what the managed app does with org data: whether it can save it, where it can paste it, whether it requires a PIN, whether it encrypts it. The device is never touched. This is why MAM-WE is the low-friction BYOD answer — you are not asking to manage someone’s phone, only to govern the corporate data your apps deposit on it.

The boundary is “policy-managed apps.” The SDK draws an invisible perimeter around the set of apps under an APP policy for this user’s corporate identity. Inside that perimeter, org data can flow (Outlook → OneDrive → Word, if you allow it). At the perimeter, the controls bite: data leaving for a non-managed app (WhatsApp, native Notes, personal Gmail) is blocked or redirected. The same app can hold both a corporate identity (governed) and a personal identity (not governed) — which is the origin of the unmanaged-account leak, the failure that defeats careless deployments. The policy follows the corporate identity, not the app or the device.

The Intune App SDK is what makes an app “managed.” A policy can only apply to an app that has integrated the Intune App SDK (or, historically, the App Wrapping Tool). The SDK is compiled into the app and intercepts data operations — copy, save, open-in, backup, screenshot (Android) — to enforce policy. The Microsoft 365 apps ship with it built in; a random third-party app does not qualify unless its vendor integrated the SDK and Microsoft published it as a managed app. You cannot “MAM” an app that wasn’t built for it — only SDK-enabled apps can be targeted.

Enrollment is not required, but a broker and (for CA) registration are. MAM-WE means no MDM enrollment — true. But the policy still has to reach the app, and that happens through an authentication broker the user installs: Microsoft Authenticator on iOS, Company Portal on Android. The broker brokers the sign-in and the SDK pulls the policy down on first app launch — this is check-in, the moment a policy goes from “targeted” to “applied.” Separately, the moment you enforce APP via Conditional Access, the device must be registered in Entra ID — a lightweight identity registration that happens silently during sign-in, not MDM enrollment. Registration gives Entra a device identity for CA evaluation; it grants IT no device-level visibility or control.

Wipe is selective and pull-based. Because the SDK owns the org-data container, removing org data is surgical: a selective wipe deletes only the managed app’s corporate data and leaves the app, the device, and all personal content intact. It is pull-based — the wipe executes the next time the user opens the affected app with network connectivity, not instantly pushed. Each protected app reports its own wipe status. The same mechanism powers automatic wipes via conditional launch: jailbreak, offline-grace expiry, or too many PIN failures all trigger a corporate-data wipe with no admin action.

The vocabulary in one table

Before the deep sections, pin down every moving part. The glossary at the end repeats these for lookup; this table is the mental model side by side:

Term One-line definition Where it lives Why it matters
MAM-WE Mobile Application Management Without Enrollment The deployment model Governs app data on unenrolled BYOD devices
APP App Protection Policy — the runtime rule set Intune → App protection policies The actual data-control mechanism
Intune App SDK Code compiled into apps to enforce APP Inside the app binary Only SDK apps can be managed
Policy-managed app An app under an APP policy for this user The SDK perimeter Defines the data boundary
Broker app Authenticator (iOS) / Company Portal (Android) On the device Delivers and enforces policy without enrollment
Check-in First policy download on app launch Per app, per user “Targeted → applied” transition
Conditional launch Runtime gates that block/wipe on posture Within the APP policy Enforces jailbreak/version/PIN/offline rules
Registration Lightweight Entra device identity Entra ID Required by CA; not MDM enrollment
Selective wipe Removes only corporate data from an app Intune → App selective wipe Offboarding without touching personal data
IntuneMAMAllowedAccountsOnly Restricts a managed app to corporate accounts App config policy Closes the unmanaged-account leak
App type targeting Managed devices vs unmanaged devices vs all APP/config assignment Keeps MAM and MDM config from colliding

MAM-WE versus MDM: the decision

The first architectural call is whether the BYOD requirement is a data problem or a device problem. MAM-WE answers the data problem at the app layer; MDM answers the device problem by taking over the whole device. Getting this fork right saves you a year of fighting users — or a reportable breach.

MAM-WE protects data at the app layer with no enrollment and minimal user-privacy footprint. MDM enrolls the device and enforces OS-level policy (passcode, encryption, restrictions, app inventory) with a full remote-wipe reserve. They are not mutually exclusive — a corporate-owned, enrolled device can also carry APP for defence-in-depth — but for personal phones, MAM-WE is almost always the correct, lower-friction answer. Here is the decision side by side:

Dimension MDM enrollment MAM-WE (app protection)
Unit of control The entire device Corporate data inside specific apps
Device hardware / OS policy Yes (passcode, encryption, restrictions) No
Inventory of all installed apps Yes No (IT sees nothing personal)
Remote wipe scope Full device or work profile Corporate data inside managed apps only
User privacy footprint High (IT has a device view) Low (IT sees only managed-app posture)
PIN enforcement Device passcode (OS) App-layer PIN (SDK)
Encryption Whole-device (OS) Per-app org data (SDK)
Conditional launch (jailbreak, version) Compliance policy Conditional launch in APP
Enrollment friction High (user must enroll) Low (install broker, sign in)
Best fit Corporate-owned; Android Enterprise work profile Personal phones, contractors, frontline
Platform maturity iOS, Android, Windows, macOS iOS and Android (Windows = Edge-only preview)

Read the decision as a flow: is the device corporate-owned? If yes, enroll it (MDM) and optionally layer APP. If no — it’s personal — do you need OS-level control (passcode, encryption, device restrictions) or only data control? If only data control, MAM-WE is the answer. If you genuinely need OS control on a personal device, the least-bad option is Android Enterprise BYOD work profile (a managed work partition, personal side untouched) rather than full MDM. The matrix that drives the call:

If the requirement is… And the device is… Choose Why
“Don’t let corporate email leak from the app” Personal MAM-WE App-layer data control, no enrollment
“Enforce passcode + encryption + restrictions” Corporate-owned MDM OS-level policy needs enrollment
“Separate work and personal cleanly” Personal Android Android Enterprise work profile Managed work partition, personal untouched
“Wipe the whole device if lost” Corporate-owned MDM (full wipe) Only enrollment grants device wipe
“Contractors, can’t enroll their phones” Personal MAM-WE Zero-enrollment, low privacy footprint
“Defence-in-depth on managed devices” Corporate-owned (enrolled) MDM + APP App container on top of device management
“Shared frontline devices” Corporate-owned, shared MDM (shared/kiosk) + APP Device + per-session data control

Three hard constraints to internalize before you commit to MAM-WE:

Constraint Detail Implication
Platform support iOS/iPadOS and Android are mature; Windows APP is preview, Edge-only; macOS is not an APP target Do not plan a Windows/macOS BYOD strategy on APP
Registration for CA Enforcing APP via Conditional Access requires the device to be registered (not enrolled) in Entra Users get a silent registration + broker prompt on first sign-in
SDK-only apps Policies apply only to apps with the Intune App SDK M365 apps qualify; arbitrary third-party apps do not

How app protection policies actually work

To configure APP well you have to know what the SDK does at runtime. When a user signs a corporate identity into a managed app through the broker, the SDK contacts the Intune service, downloads the APP policy that targets that user, caches it, and from then on intercepts every data operation the app attempts. The flow has distinct phases, and knowing them tells you exactly where each failure can occur:

Phase What happens Trigger Where it can fail
Sign-in via broker User authenticates the corporate identity App launch / account add Broker (Authenticator/Company Portal) missing
Policy retrieval SDK downloads the targeted APP policy After successful sign-in User unlicensed; not targeted; no network
Check-in Policy applied; status flips to “checked in” First launch with policy App below min SDK version
Runtime enforcement SDK intercepts save/copy/open-in/PIN/encrypt Every data operation Misconfigured policy; conflicting config
Conditional launch evaluation SDK checks posture (OS, jailbreak, PIN, offline) App launch / resume Posture out of bounds → block/wipe
Periodic re-check SDK re-validates access after timeout Recheck interval / offline grace Offline beyond grace → org data wiped

The data boundary the SDK enforces is the set of policy-managed apps for that identity. Picture three concentric zones: the corporate identity’s data inside managed apps (fully governed); other managed apps the user can move data into if you allow it; and outside, every unmanaged app and OS surface (camera roll, personal cloud, native share sheet) where the controls block or redirect. The crucial subtlety is that the boundary is per-identity — a personal Microsoft account in the same Outlook is outside the corporate boundary and your policy does nothing to its data, which is exactly why allowed-accounts-only matters.

A few mechanics that surprise people and that you must design around:

Mechanic Behaviour Design consequence
Identity-scoped policy Policy follows the corporate identity, not the app A personal account in the same app is ungoverned → lock it out
Pull-based delivery & wipe Policy and wipe apply on app launch with network, not push “Not checked in” until the user opens the app; wipe isn’t instant
Encryption is app-data only SDK encrypts the managed app’s org data at rest No device-wide encryption guarantee; that’s an MDM thing
Multi-identity apps Office apps can hold corporate + personal identities Data is tagged per identity; managed-paste rules apply per identity
Broker dependency No broker → no policy enforcement Company Portal on Android is mandatory even unenrolled
Offline grace Org data wiped if offline beyond the grace period Set grace generously enough to avoid wiping travelers

Prerequisites for the deployment

Three things must be true before any policy applies: the user is licensed, the broker is on the device, and you have target groups. Each trips people up in a specific way.

Licensing. Every targeted user needs an Intune entitlement. The SKUs that include it:

License Includes Intune Notes
Microsoft 365 E3 / E5 Yes (Intune Plan 1) Most common enterprise path
Enterprise Mobility + Security E3 / E5 Yes (Intune Plan 1) Standalone EMS bundle
Microsoft Intune Plan 1 (standalone) Yes Minimum standalone SKU
Microsoft 365 Business Premium Yes SMB path; includes Intune Plan 1
Microsoft 365 F1 / F3 Yes Frontline; F3 includes Intune
Office 365 E3 / E5 (only) No Office licenses alone do not include Intune

A user with Office but no Intune entitlement is the number-one “policy never applies” cause. Confirm the assignment, not just the tenant license count.

Broker apps. The authentication broker must be installed even though the device is never enrolled. This differs by platform and is the second-biggest non-delivery cause:

Platform Broker app Required? When it’s mandatory
Android Company Portal Yes, always MAM-WE enforcement depends on it even unenrolled
iOS/iPadOS Microsoft Authenticator Strongly recommended Mandatory the moment app-based Conditional Access is enforced

On Android, no Company Portal means no policy enforcement — full stop, even though the device is never enrolled. On iOS, APP can apply without Authenticator in a pure-MAM scenario, but Conditional Access (which you will use) makes Authenticator mandatory, so install it everywhere.

Targeting groups. APP has no device object to target, so you assign policies to users (groups), not devices. Create Entra security groups for your BYOD populations and assign per platform:

# Create BYOD targeting groups via Microsoft Graph (az rest)
az rest --method POST \
  --uri "https://graph.microsoft.com/v1.0/groups" \
  --headers "Content-Type=application/json" \
  --body '{
    "displayName": "KV-BYOD-iOS",
    "mailEnabled": false,
    "mailNickname": "KV-BYOD-iOS",
    "securityEnabled": true,
    "description": "BYOD users receiving the iOS app protection policy"
  }'
# Same with Microsoft Graph PowerShell
Connect-MgGraph -Scopes "Group.ReadWrite.All"
New-MgGroup -DisplayName "KV-BYOD-Android" -MailEnabled:$false `
  -MailNickname "KV-BYOD-Android" -SecurityEnabled:$true `
  -Description "BYOD users receiving the Android app protection policy"

A pre-flight checklist before you author a single policy:

# Pre-flight check How to confirm
1 Targeted users have an Intune license Entra → user → Licenses; or Graph assignedPlans
2 MDM/MAM authority is Intune Intune → Tenant admin (no third-party MAM authority conflict)
3 iOS users will install Authenticator Comms / managed deployment plan
4 Android users will install Company Portal Comms / managed deployment plan
5 BYOD security groups exist per platform Entra → Groups
6 A break-glass admin account is excluded from CA Documented and tested
7 Pilot ring identified (small, friendly) Group membership

Authoring the app protection policy: every setting

This is the meat. You create one policy per platform at Intune admin center → Apps → App protection policies → Create policy → iOS/iPadOS (then repeat for Android). The settings fall into four blocks — Apps (scope), Data protection (relocation), Access requirements (PIN/encryption), and Conditional launch (runtime gates) — enumerated below with values, default, when to change, and the gotcha.

Block 1 — Apps (scope)

Target Selected apps and add the core Microsoft 365 set: Outlook, Teams, Edge, OneDrive, Word, Excel, PowerPoint, OneNote. Targeting only the apps you actually use keeps the PIN-prompt surface small and the user experience tolerable. You also choose an app type — for MAM-WE you target Apps on unmanaged devices, which keeps this policy from colliding with managed-device configuration. The scoping choices:

Setting Values Recommended (MAM-WE) Why
Target apps Selected apps / All apps / All Microsoft apps / Core Microsoft apps Selected apps (the ones you use) Smaller PIN surface; predictable behaviour
App type (Public apps) Apps on managed/unmanaged devices, all app types Apps on unmanaged devices Separates MAM-WE from MDM config
Custom apps Line-of-business apps with the SDK Add only if you have SDK-built LOB apps Only SDK apps can be managed

A frequent mistake is targeting All apps, which pulls in apps you don’t intend and multiplies prompts. Be deliberate.

Block 2 — Data protection (relocation)

This block is the heart of the policy — it stops org data from leaving the managed boundary. Each setting and what its values do:

Setting Values Recommended What it controls Gotcha
Backup org data to iTunes/iCloud (iOS) / Android backups Allow / Block Block Whether org data lands in personal cloud backups Backups bypass your container entirely
Send org data to other apps All apps / Policy managed apps / Policy managed with OS sharing / Policy managed with Open-In/Share filtering / None Policy managed apps Where the user can share org data “All apps” defeats the whole policy
Select apps to exempt App bundle/package list Add only required system apps (e.g. tel, maps) Carve-outs from the “send” restriction Each exemption is a hole
Save copies of org data Allow / Block Block Whether “Save As” to local/other storage is allowed Without this, files save anywhere
Allow user to save copies to selected services OneDrive for Business, SharePoint, Photo library, Local storage OneDrive for Business, SharePoint only The allow-list for saves when Save is blocked Don’t add Photo library / Local
Receive data from other apps All apps / Policy managed apps / All apps with incoming org data / None Policy managed apps Where org data can come in from “All apps” lets unmanaged data masquerade
Restrict cut, copy, and paste between other apps Any app / Policy managed apps / Policy managed with paste in / Blocked Policy managed apps (or with paste-in) Clipboard movement across the boundary The classic leak vector
Cut and copy character limit 0–unlimited 0 (block) or small allowance Chars allowed to copy out A generous limit is a slow leak
Screen capture and Google Assistant (Android) Allow / Block Block Screenshots/assistant scraping org data iOS cannot block screenshots via APP
Encrypt org data Require / not Require Encrypts the managed app’s org data at rest iOS uses OS file-protection; Android SDK encrypts
Sync policy managed app data with native apps Allow / Block Block (unless contacts needed) Sync to native contacts/calendar Contact export is a quiet leak
Printing org data Allow / Block Block (or Allow if business-needed) Whether org data can be printed Print-to-PDF can exfiltrate
Restrict web content transfer with other apps Any app / Microsoft Edge / Unmanaged browser blocked Microsoft Edge Forces corporate links into managed Edge Where your Edge web policy applies
Org data notifications Allow / Block org data / Block Block org data Message-preview content on lock screen “Allow” shows previews on the lock screen

The two settings that do the most work are Send org data to other apps = Policy managed apps (corporate data shares only into other protected apps, never WhatsApp or personal Gmail) and Save copies of org data = Block with OneDrive/SharePoint allow-list (files save only back into corporate storage). The two most commonly missed are Restrict web content transfer = Microsoft Edge (without it, links open in Safari/Chrome where you have no control) and Receive data from other apps = Policy managed apps (without it, unmanaged data dilutes your boundary).

Block 3 — Access requirements (PIN and encryption)

These control how the user proves they’re allowed to open the org-data container. Each setting:

Setting Values Recommended What it controls Gotcha
PIN for access Require / not Require App-layer PIN to open org data The primary access gate
PIN type Numeric / Passcode Numeric (Passcode for higher assurance) Digits vs alphanumeric Passcode is stronger but more friction
Simple PIN Allow / Block Block Sequential/repeated PINs (1234, 1111) “Allow” guts PIN strength
Select minimum PIN length Integer (e.g. 6) 6+ Minimum digits 4 is too weak for corporate data
Touch ID / Face ID / biometrics instead of PIN Allow / Block Allow (with PIN fallback) Biometric unlock of the container Biometric change should re-prompt PIN
Override biometrics with PIN after timeout Require / not, with timeout Require (e.g. after 30 min) Forces PIN periodically even with biometrics Pure biometrics never re-prompts
PIN reset after number of days Off / N days Optional (e.g. 90) Periodic forced PIN change Too frequent = user fatigue
App PIN when device PIN is set Require / Not required Require App PIN even on devices with OS passcode “Not required” trusts the OS lock only
Work or school account credentials for access Require / not Optional Re-auth corporate creds to open Higher assurance, more friction
Recheck the access requirements after (minutes of inactivity) Integer (e.g. 30) 30 Timeout before re-prompting PIN Long timeout weakens the gate
Encrypt org data Require / not Require App-data-at-rest encryption Same control surfaces in Block 2

Max PIN attempts and its failure action (commonly 5 → Reset PIN or Wipe data) is configured here and mirrored in conditional launch. The App PIN when device PIN is set = Require choice deserves the most thought: it adds a second PIN even on a phone that already has a passcode. For sensitive data, require it; for lower-sensitivity data where you trust the OS lock, relaxing it improves UX — but document the risk acceptance.

Block 4 — Conditional launch

Conditional launch sets runtime gates evaluated on every app launch and resume. Each condition has a value threshold and an action: Warn, Block access, or Wipe data. This is where posture turns into enforcement:

Condition Setting/value Typical action What it does Gotcha
Max PIN attempts e.g. 5 Reset PIN After N wrong PINs “Wipe data” is harsher; reset is usually right
Offline grace period minutes (e.g. 720) Block access Block after N min offline Set generous enough for travelers
Offline grace period (wipe) minutes (e.g. 90 days) Wipe data Wipe org data after long offline Too short wipes a phone left in a drawer
Min OS version e.g. iOS 17 / Android 13 Warn or Block Enforce a floor OS Block locks out old devices instantly
Min app version e.g. Outlook 4.x Warn Drive upgrades without lockout Block is too aggressive for app versions
Min SDK version version Block Floor for the Intune App SDK Below this, policy can’t enforce
Jailbroken/rooted devices n/a Block access (or Wipe) Detect compromised OS The key integrity gate
Device model(s) allowed/disallowed model list Block Allow/deny specific hardware Niche; mostly frontline
Max allowed device threat level Secured / Low / Medium / High Block at your threshold MTD risk score over MAM Needs an MTD connector wired up
Primary MTD service Defender / partner select Which MTD reports risk Must match the deployed MTD app
Disabled account n/a Block (automatic) Block if the Entra account is disabled Backstop for offboarding

The design principle: Warn for things the user can fix (app/OS version) to drive upgrades without lockouts, Block for integrity and policy floors (jailbreak, min SDK), Wipe for terminal posture (long offline). Set offline-grace generously — wiping a consultant’s phone because they were on a long-haul flight is an own-goal.

Assigning the policy and managing it as code

Assign each platform policy to its matching BYOD group. The GUI is the right place to learn the surface; once stable, manage it as code via Microsoft Graph to stop drift. The iOS policy shape via Graph (deviceAppManagement/iosManagedAppProtections):

{
  "displayName": "KV-iOS-APP-BYOD",
  "saveAsBlocked": true,
  "allowedOutboundDataTransferDestinations": "managedApps",
  "allowedInboundDataTransferSources": "managedApps",
  "allowedOutboundClipboardSharingLevel": "managedAppsWithPasteIn",
  "organizationalCredentialsRequired": false,
  "dataBackupBlocked": true,
  "deviceComplianceRequired": false,
  "managedBrowserToOpenLinksRequired": true,
  "managedBrowser": "microsoftEdge",
  "contactSyncBlocked": true,
  "printBlocked": true,
  "notificationRestriction": "blockOrganizationalData",
  "pinRequired": true,
  "minimumPinLength": 6,
  "simplePinBlocked": true,
  "maximumPinRetries": 5,
  "pinCharacterSet": "numeric",
  "periodOfflineBeforeAccessCheck": "PT30M",
  "periodOnlineBeforeAccessCheck": "PT0S",
  "periodOfflineBeforeWipeIsEnforced": "P90D",
  "appDataEncryptionType": "whenDeviceLocked",
  "faceIdBlocked": false,
  "allowedDataStorageLocations": ["oneDriveForBusiness", "sharePoint"]
}
# Create the iOS APP policy via Microsoft Graph PowerShell
Connect-MgGraph -Scopes "DeviceManagementApps.ReadWrite.All"
$params = @{
  "@odata.type"                          = "#microsoft.graph.iosManagedAppProtection"
  displayName                            = "KV-iOS-APP-BYOD"
  saveAsBlocked                          = $true
  allowedOutboundDataTransferDestinations = "managedApps"
  allowedInboundDataTransferSources      = "managedApps"
  allowedOutboundClipboardSharingLevel   = "managedAppsWithPasteIn"
  dataBackupBlocked                      = $true
  managedBrowserToOpenLinksRequired      = $true
  managedBrowser                         = "microsoftEdge"
  pinRequired                            = $true
  minimumPinLength                       = 6
  simplePinBlocked                       = $true
  maximumPinRetries                      = 5
  periodOfflineBeforeAccessCheck         = "PT30M"
  periodOfflineBeforeWipeIsEnforced      = "P90D"
  appDataEncryptionType                  = "whenDeviceLocked"
}
New-MgDeviceAppManagementiOSManagedAppProtection -BodyParameter $params

Manage policy through Graph/Terraform/Bicep only once the console settings are validated — the console teaches the surface, code keeps it from drifting. The Android equivalent uses deviceAppManagement/androidManagedAppProtections with an almost-identical property set, plus Android-only additions like screenCaptureBlocked (iOS cannot block screenshots through APP).

App configuration policies: closing the leaks

App protection controls data movement; app configuration pre-sets behaviour inside the app — and one configuration setting, allowed-accounts-only, is the single most important leak-closer in MAM-WE. There are two delivery channels and choosing the right one is critical:

Configuration channel Delivery mechanism Works on Use for MAM-WE?
Managed devices OS MDM channel Enrolled devices only No
Managed apps Intune App SDK Apps under an APP policy, no enrollment Yes

For BYOD you create a Managed apps configuration at Apps → App configuration policies → Add → Managed apps. The most valuable settings:

Outlook: lock to corporate accounts

The single biggest leak vector is a user adding a personal mailbox into managed Outlook — your APP policy is scoped to the corporate identity, so it does nothing to the personal account’s data. The fix is to forbid non-corporate accounts:

com.microsoft.outlook.EmailProfile.AccountType        = ModernAuth
com.microsoft.outlook.EmailProfile.EmailAddress       = {{userprincipalname}}
com.microsoft.intune.mam.OutlookContactSync           = false
IntuneMAMAllowedAccountsOnly                           = Enabled
IntuneMAMUPN                                           = {{userprincipalname}}

Edge: lock to your tenant and route links

For managed Edge, restrict the accounts and pre-set the org experience:

com.microsoft.intune.mam.managedbrowser.AllowListURLs    = https://*.kloudvin.com|https://*.sharepoint.com
com.microsoft.intune.mam.managedbrowser.bookmarks        = Portal|https://portal.kloudvin.com
com.microsoft.intune.mam.managedbrowser.homepage         = https://portal.kloudvin.com
IntuneMAMAllowedAccountsOnly                              = Enabled

The key configuration values and what each does:

Configuration key Value Effect Apply to
IntuneMAMAllowedAccountsOnly Enabled Only the corporate account may sign in Every app that supports it
IntuneMAMUPN {{userprincipalname}} Pins which account is “allowed” Paired with the above
IntuneMAMOIDCTenantId <tenant GUID> Pins the tenant, not just the UPN Multi-tenant / M&A topologies
com.microsoft.outlook.EmailProfile.AccountType ModernAuth Forces modern-auth corporate profile Outlook
com.microsoft.intune.mam.OutlookContactSync false Blocks contact export to native phonebook Outlook
com.microsoft.intune.mam.managedbrowser.AllowListURLs URL list Restricts where managed Edge can browse Edge
com.microsoft.intune.mam.managedbrowser.homepage URL Sets the org homepage Edge

IntuneMAMAllowedAccountsOnly = Enabled paired with IntuneMAMUPN is the control that prevents unmanaged-account leakage — without it, a user can sign their personal Microsoft account into managed Outlook and your APP policy never touches that account’s data. Set it for every app that supports it. In multi-tenant or merger scenarios, UPN alone is insufficient (a home-tenant identity can satisfy a UPN-only gate), so pin the tenant GUID with IntuneMAMOIDCTenantId.

Enforcing with Conditional Access

A policy that isn’t enforced is a suggestion. A user can simply not install Outlook and use the native iOS Mail app or a browser instead — and your beautifully configured APP policy never enters the picture. Conditional Access makes the protected, SDK-integrated apps the only path to Microsoft 365 data on mobile.

Critical 2026 change: the Require approved client app grant is retiring. Build all new policies on Require app protection policy instead. If you still have legacy “approved client app” policies, migrate them now using Require one of the selected controls during the transition, then drop the retiring grant.

Create the policy at Entra admin center → Protection → Conditional Access → New policy with these components:

CA component Setting Value Why
Users Include / Exclude Include BYOD groups; exclude break-glass admin Never lock out emergency access
Target resources Cloud apps Office 365 (+ other protected apps) The resources to protect
Conditions → Device platforms iOS, Android iOS and Android APP is mobile-only
Conditions → Client apps Mobile apps and desktop clients Mobile apps and desktop clients Target the mobile clients
Grant Require app protection policy Selected The enforcement control
Grant Require approved client app Selected only during transition Retiring — drop after migration
Grant Require one of / all of selected One of (transition) → app protection only Combine safely while migrating
Session Sign-in frequency (optional) Org policy Periodic re-auth

This forces any mobile client touching Office 365 to be (a) an approved, SDK-integrated app and (b) covered by an APP policy. The native iOS Mail app or a browser on an unprotected device is blocked, with a message to use Outlook/Edge. The grants and what each does:

Grant control What it requires Status (2026) Use it for
Require app protection policy An APP policy is applied to the app Current — use this All new MAM-WE enforcement
Require approved client app The app is on the Microsoft approved list Retiring Legacy only; migrate off
Require device to be marked compliant Device is MDM-compliant Current MDM scenarios, not MAM-WE
Require Entra hybrid joined device Hybrid-joined device Current Corporate-joined, not BYOD

When this grant is enforced, the device must be registered in Entra ID. The first time a user signs into Outlook they’re silently registered and prompted to install the broker (Authenticator on iOS, Company Portal on Android). This is registration, not enrollment — IT gains no device-level visibility.

A common migration mistake is leaving Require approved client app as the sole grant past its retirement — when it stops functioning, BYOD users silently lose access. Switch to Require app protection policy now; run both with Require one of the selected controls only during the migration window.

Selective wipe: revoking data cleanly

The payoff of MAM-WE: when someone leaves or loses a phone, you remove only the org data, never their personal content. Trigger a wipe at Apps → App selective wipe → Create wipe request: pick the user and the device (devices appear once they’ve checked in under an APP policy).

Intune admin center
  → Apps
    → App selective wipe
      → Create wipe request
         User:   alex@kloudvin.com
         Device: alex-iPhone (MAM)
# Issue a selective wipe via Microsoft Graph (wipeManagedAppRegistrationsByDeviceTag or per-app)
az rest --method POST \
  --uri "https://graph.microsoft.com/v1.0/users/alex@kloudvin.com/wipeManagedAppRegistrationsByDeviceTag" \
  --headers "Content-Type=application/json" \
  --body '{ "deviceTag": "alex-iPhone" }'

What actually happens, and the timing that surprises people:

Property Behaviour Implication
Trigger Executes the next time the user opens the affected app Not instant; not push-forced
Timing Typically completes within ~30 minutes of app launch with network Plan offboarding accordingly
Granularity A separate wipe request per protected app per user Each app reports its own status
Status flow Pending → Wiped (or Failed) “Failed” usually = app never reopened
Scope Removes corporate data only Personal apps, photos, accounts, device untouched
Automatic variant Conditional launch can wipe on jailbreak / offline / PIN failure No admin action required

You can also configure automatic wipes via conditional launch (Block 4): jailbreak detection, offline-grace expiry, or max PIN failures all trigger a corporate-data wipe without an admin lifting a finger. The wipe-trigger comparison:

Wipe trigger How it fires When to use
Manual selective wipe Admin creates a wipe request Offboarding, lost device
Offline grace expiry Device offline beyond the wipe threshold Stolen/abandoned devices that never reconnect
Jailbreak/root detected Conditional launch on compromised OS Integrity enforcement
Max PIN failures Conditional launch after N wrong PINs Brute-force protection (if data warrants)
Account disabled Conditional launch on disabled Entra account Backstop for offboarding

iOS versus Android: the real differences

APP is broadly equivalent across iOS and Android, but the platform mechanics differ in ways that change your policy and your support expectations. The honest comparison:

Aspect iOS/iPadOS Android
Broker app Microsoft Authenticator Company Portal (mandatory)
Block screenshots via APP No (OS limitation) Yes (screenCaptureBlocked)
Block Google Assistant scraping n/a Yes
Encryption mechanism OS file-protection APIs (whenDeviceLocked) SDK encrypts app data at rest
Open-in / share-sheet control Open-in management Intent-based sharing control
Biometric unlock Face ID / Touch ID Fingerprint / face (device-dependent)
Keyboard/clipboard nuances Universal clipboard considerations Third-party keyboard data exposure
Work profile interplay n/a (no work profile) Personally-owned work profile changes behaviour
Rooted/jailbroken detection Jailbreak detection Root + SafetyNet/Play Integrity signals
Conditional launch coverage Full Full (plus screen-capture, Play Integrity)

The headline practical differences: iOS cannot block screenshots through APP (the OS doesn’t expose it), so if screenshot prevention is a hard requirement, only Android can meet it. On Android, Company Portal is non-negotiable as the broker even though nothing is enrolled. Encryption is enabled on both but implemented differently — OS file-protection on iOS, SDK-level on Android — and both honour appDataEncryptionType. Android’s personally-owned work profile (Android Enterprise BYOD) layers APP on top of an already-partitioned work side — a strong combination, but a different posture than pure unmanaged. Plan settings per platform, not as a single cross-platform blob.

Architecture at a glance

Picture the request as it actually flows on a personal phone, and the four control points the architecture imposes. A BYOD user opens managed Outlook and signs in with their corporate identity. The sign-in routes through the broker — Microsoft Authenticator on iOS, Company Portal on Android — which authenticates against Entra ID. At this moment two things happen in parallel: Conditional Access evaluates the sign-in and, because the policy requires Require app protection policy, the device is silently registered in Entra (not enrolled) and the grant is satisfied only if an APP policy is applied; and the Intune App SDK inside Outlook contacts the Intune service and pulls down the app protection policy targeted at this user — the check-in that flips the app from “targeted” to “managed.”

From there the SDK becomes a runtime gatekeeper around the org-data container inside the app. Every data operation hits a control point. Access: the SDK demands the app PIN (or biometric) before the container opens, and conditional launch evaluates posture — OS version, jailbreak/root, offline grace, MTD threat level — blocking or wiping if posture is out of bounds. Data relocation: when the user tries to share a corporate email, Save As a file, or paste org text, the SDK checks the boundary — share goes only to other policy-managed apps, saves go only to OneDrive/SharePoint, paste is allowed only within managed apps; a personal app, the camera roll, or a personal cloud is blocked. Web: a corporate link is forced to open in managed Edge, where your Edge configuration (allow-listed URLs, locked accounts) applies, never in Safari or Chrome. Account boundary: the app configuration policy (IntuneMAMAllowedAccountsOnly) refuses any personal account from being added into the managed app, so there is no ungoverned second identity to leak through.

The crucial thing the architecture does not touch is the device itself. There is no device object, no OS policy, no view of personal apps, photos, or location — the only surface IT can see or act on is the managed-app posture and the org-data container. When the user leaves, a selective wipe removes exactly that container and nothing else: the phone, the apps, and every personal byte remain. The design intent is clear: maximal control over the data your apps deposit, zero control over (and zero visibility into) the personal device that hosts them. That asymmetry is the entire value proposition of MAM-WE — and the reason it survives the BYOD privacy objection that sinks full enrollment.

Real-world scenario

Northwind Advisory is a 4,000-seat professional-services firm that rolled MAM-WE to roughly 900 contractors and partners who would never enroll their personal phones. The pilot on iOS looked clean: Outlook, Teams and Edge under an APP policy with a 6-digit PIN, Send org data to other apps = Policy managed apps, Save copies = OneDrive/SharePoint only, links forced into managed Edge, and a Conditional Access policy requiring app protection on Office 365. Selective wipe tested fine in the lab. They shipped it. For three months it was the textbook BYOD success story the security committee had asked for.

Then they acquired a smaller firm — Contoso Partners — whose ~200 staff lived in a separate, federated Entra tenant. To move fast, identity granted those users cross-tenant access into Northwind’s resources, and the Contoso people started using their home-tenant identity inside Northwind-managed Outlook. APP applied to Northwind’s resource-tenant data correctly. But IntuneMAMAllowedAccountsOnly was configured with IntuneMAMUPN only — a UPN gate — and the inbound cross-tenant access settings were quietly letting the home-tenant identities add a second account into the same managed Outlook. The result: corporate data was now sitting under an identity the Northwind APP policy didn’t fully govern, and when a Contoso contractor was offboarded, the selective wipe targeted the Northwind UPN, reported Wiped, and left data sitting under the Contoso account. Compliance found it during an audit sampling — exactly the leak MAM-WE was supposed to prevent.

The breakthrough was recognizing this as a tenant-boundary problem, not a policy-settings problem. The investigation, via Graph, enumerated every managed-app registration and flagged any whose userId resolved outside the resource tenant:

az rest --method GET \
  --uri "https://graph.microsoft.com/beta/deviceAppManagement/managedAppRegistrations?\$expand=appliedPolicies" \
  --query "value[?userId!=null].{user:userId, app:appIdentifier.bundleId}"

That surfaced dozens of registrations under home-tenant identities. The fix was two-layered. First, lock the inbound cross-tenant trust so only the intended Contoso tenant could resolve, eliminating the silent guest-account additions. Second, re-pin the allowed-account control to the tenant, not just the UPN, by adding the tenant GUID to the app configuration:

IntuneMAMAllowedAccountsOnly  = Enabled
IntuneMAMUPN                  = {{userprincipalname}}
IntuneMAMOIDCTenantId         = 11111111-2222-3333-4444-555555555555

Pinning the tenant GUID stopped the home-tenant identity from satisfying the allowed-accounts gate; only an identity in the resource tenant could add the corporate account. They re-ran the Graph audit weekly until it returned zero out-of-tenant registrations, then folded it into a monthly control. The numbers afterward: 900+ contractors and the new 200 Contoso staff under a single, tenant-pinned MAM-WE posture, zero ungoverned accounts in managed apps, and selective wipe validated to target the correct identity. The lesson on the wall: “In multi-tenant and M&A topologies, MAM’s account controls are only as tight as the cross-tenant access settings underneath them. Pin the tenant, not just the UPN — and audit the registrations, don’t assume the policy.”

Advantages and disadvantages

The “manage the data, not the device” model is exactly right for BYOD and exactly wrong for a few scenarios. Weigh it honestly:

Advantages (why MAM-WE wins for BYOD) Disadvantages (where it falls short)
No enrollment — users keep full device privacy; IT sees nothing personal No OS-level control (can’t enforce device passcode, encryption, restrictions)
Low friction — install a broker, sign in, done; far less user revolt Only SDK-integrated apps can be managed (M365 apps; not arbitrary third-party)
Selective wipe removes only corporate data — never personal content iOS cannot block screenshots via APP (OS limitation)
Conditional Access makes protected apps the only path to data Requires device registration for CA (a silent but real prerequisite)
Granular data-relocation control (share, save, paste, web, notifications) Unmanaged-account leak is a quiet failure mode you must explicitly close
Works on devices you don’t own — contractors, M&A, frontline Windows/macOS BYOD not covered (Windows = Edge-only preview)
Per-app encryption of org data at rest Enforcement is pull-based — “not checked in” until the app is opened
MTD integration gives device-risk signal without enrollment Multi-tenant topologies need tenant-pinning to be truly tight

MAM-WE is the right model when the requirement is data control on personal devices and you can live without OS-level enforcement — contractors, partners, frontline, M&A populations, and “I’ll use my own phone” staff. It bites when you genuinely need device-level control (then enroll, or use an Android work profile), when you must block screenshots on iOS, or when you skip allowed-accounts-only and leave the personal-account side door open. Every disadvantage is manageable — but only if you know it exists, which is the point of designing the full stack rather than just turning on a PIN.

Hands-on lab

Build a working MAM-WE posture end to end — an iOS app protection policy, an app configuration policy that closes the account leak, and a Conditional Access policy that enforces it — then validate on a real test phone. Most steps are portal-driven (the MAM surface is GUI-first); the targeting group and validation use az/Graph. Run this in a test/pilot tenant or against a pilot group only — Conditional Access can lock people out.

Step 1 — Create the BYOD targeting group.

az rest --method POST \
  --uri "https://graph.microsoft.com/v1.0/groups" \
  --headers "Content-Type=application/json" \
  --body '{
    "displayName": "KV-BYOD-iOS-Pilot",
    "mailEnabled": false,
    "mailNickname": "KV-BYOD-iOS-Pilot",
    "securityEnabled": true
  }'

Add one or two test users (not yourself if you’re the only admin — keep a break-glass account out).

Step 2 — Author the iOS app protection policy. In Intune admin center → Apps → App protection policies → Create policy → iOS/iPadOS:

Step 3 — Add the app configuration policy (managed apps). In Apps → App configuration policies → Add → Managed apps, target the same apps and group, and set:

IntuneMAMAllowedAccountsOnly  = Enabled
IntuneMAMUPN                  = {{userprincipalname}}

For Outlook also add com.microsoft.outlook.EmailProfile.AccountType = ModernAuth and com.microsoft.intune.mam.OutlookContactSync = false.

Step 4 — Create the Conditional Access policy. In Entra admin center → Protection → Conditional Access → New policy:

Step 5 — Validate policy delivery on a real device. On a test iPhone, install Microsoft Authenticator, then Outlook, and sign in with the corporate account. Expected: silent registration prompt, broker handshake, then a prompt to set an app PIN. Confirm check-in:

# List managed app registrations for the test user — confirms check-in
az rest --method GET \
  --uri "https://graph.microsoft.com/beta/users/testuser@kloudvin.com/managedAppRegistrations?\$expand=appliedPolicies" \
  --query "value[].{app:appIdentifier.bundleId, policies:appliedPolicies[].displayName}"

In the portal: Apps → Monitor → App protection status should list the user with Checked in.

Step 6 — Test the data-relocation controls. On the device:

Step 7 — Test the account leak is closed. Attempt to add a personal Microsoft account into managed Outlook → rejected by IntuneMAMAllowedAccountsOnly.

Step 8 — Test Conditional Access enforcement. Open the native iOS Mail app (or Safari to Outlook on the web) and try to reach Office 365 → blocked, with a message to use the approved app. (Flip the CA policy from Report-only to On first.)

Step 9 — Test selective wipe. In Apps → App selective wipe → Create wipe request, target the test user + device. Reopen Outlook on the device, wait, and confirm the corporate mailbox disappears while the phone and personal data remain. Confirm the request flips to Wiped:

az rest --method GET \
  --uri "https://graph.microsoft.com/beta/deviceAppManagement/managedAppRegistrations" \
  --query "value[?userId=='testuser@kloudvin.com']"

Validation checklist — what each step proved:

Step What you did What it proves
2 Authored the APP policy The data-relocation/PIN/conditional-launch surface
3 Allowed-accounts-only config The leak-closer is in place
4 CA “Require app protection policy” Enforcement gate exists (report-only first)
5 Check-in on a real device Policy actually delivers (targeted → checked in)
6 Paste/Save/link tests Data relocation is enforced
7 Personal-account rejection The unmanaged-account leak is closed
8 Native Mail blocked Unprotected apps can’t reach data
9 Selective wipe = corporate-only Offboarding removes only org data

Teardown. Delete the CA policy (or leave it report-only), delete the APP and app configuration policies, and remove the pilot group. No paid resources are consumed by MAM-WE itself — the cost is per-user Intune licensing, which already exists if you got this far.

Common mistakes & troubleshooting

This is the playbook — the part you bookmark. First the scannable symptom → cause → confirm → fix table, then expanded reasoning for the entries that bite hardest.

# Symptom Root cause Confirm (exact path / cmd) Fix
1 Policy never applies to a user User unlicensed for Intune Entra → user → Licenses; Graph assignedPlans Assign an Intune-bearing license
2 Status stuck at “Not checked in” User hasn’t opened a targeted app Apps → Monitor → App protection status (targeted, not checked in) Have the user open the app; check-in is app-launch driven
3 Android: policy never enforces Company Portal not installed Device app list; broker absent Install Company Portal (mandatory on Android even unenrolled)
4 iOS: sign-in loops / app-based CA fails Microsoft Authenticator missing CA requires the broker for app-based access Install Microsoft Authenticator
5 Settings ignored (no PIN, no relocation) App below min SDK/version, or not SDK-built App version; is it an Intune-managed app? Update the app; only SDK apps can be managed
6 Personal account still holds data IntuneMAMAllowedAccountsOnly not set for that app App config policy; is the key present per-app? Set allowed-accounts-only + IntuneMAMUPN per app
7 Cross-tenant identity bypasses the gate UPN-only allowed-accounts in M&A topology Graph: registrations with userId outside resource tenant Add IntuneMAMOIDCTenantId; lock inbound cross-tenant access
8 CA blocks legitimate access Approved-client-app grant retired / sole grant CA policy grant controls; sign-in logs Switch to Require app protection policy
9 Selective wipe reports Wiped but data remains Wipe targeted the wrong identity Graph registrations; which userId holds the data Re-issue against the correct identity; pin tenant
10 Wipe stuck at Pending App never reopened with network App selective wipe status = Pending Have the user open the app online; it executes on launch
11 Links open in Safari/Chrome, not Edge Restrict web content not set to Edge APP → Data protection → Restrict web content transfer Set to Microsoft Edge (and deploy managed Edge)
12 User locked out unexpectedly Conditional launch too strict (min OS/version Block) APP → Conditional launch actions Change Block → Warn for app/OS version
13 Travelers’ org data wiped Offline grace (wipe) threshold too short APP → Conditional launch → offline grace period (wipe) Lengthen the wipe threshold (e.g. 90 days)
14 Dual-enrolled device: config conflicts Managed-device + managed-apps config collide Both config policies target same user Use app-type targeting (managed vs unmanaged) to separate
15 Screenshots of org data on iOS Expecting APP to block iOS screenshots iOS does not support screen-capture block in APP Use Android for screenshot block; accept the iOS limit

The expanded form, for the entries that cause the most wasted time:

1. Policy never applies — user unlicensed. The most common cause. Office 365 licenses alone do not include Intune. Confirm the user has an Intune-bearing SKU (M365/EMS E3-E5, Intune Plan 1, Business Premium, or F3) actually assigned, not just present in the tenant. Graph: GET /users/{id}?$select=assignedPlans and look for the Intune service plan. Fix by assigning the license.

2. “Not checked in” — app never opened. Enforcement is pull-based: a policy is “targeted” the moment you assign it but only “checked in” once the user opens a targeted app with that policy. A user who hasn’t launched Outlook shows as targeted-not-checked-in forever. This is your primary non-delivery signal and is almost never a bug — have the user open the app.

6. Personal account still holds data — allowed-accounts-only missing. The quiet, dangerous one. Your APP policy is scoped to the corporate identity, so a personal Microsoft account added into the same managed app is outside the boundary and ungoverned. The only reliable fix is IntuneMAMAllowedAccountsOnly = Enabled plus IntuneMAMUPN in the app configuration policy, set for every app that supports it. Audit explicitly — this is the failure that defeats otherwise-correct deployments.

7. Cross-tenant identity bypasses the gate — UPN-only in M&A. In multi-tenant or merger topologies, a UPN-only allowed-accounts gate can be satisfied by a home-tenant identity, and cross-tenant access settings may silently allow a second account into a managed app. Confirm via the Graph managedAppRegistrations query, flagging any userId outside the resource tenant. Fix by adding IntuneMAMOIDCTenantId (pin the tenant GUID) and locking inbound cross-tenant access to only the intended partner tenant.

8. CA blocks legitimate access — retiring approved-client-app grant. If your enforcement rests solely on Require approved client app, it stops working when that grant retires and BYOD users silently lose access. Confirm in the CA policy’s grant controls and the sign-in logs. Fix by switching to Require app protection policy; during migration run both with Require one of the selected controls, then drop the retiring grant.

9. Wipe reports Wiped but data remains — wrong identity. Selective wipe targets a specific identity. If data sits under a second (cross-tenant or personal) account, a wipe against the corporate UPN reports success while data persists under the other identity. Confirm which userId holds the registration via Graph, re-issue against the correct identity, and pin the tenant to prevent the second identity in the first place.

Best practices

Security notes

The security controls and what each defends against:

Control Setting / mechanism Defends against
App encryption appDataEncryptionType = whenDeviceLocked Org data at rest on a lost device
App PIN + simple-PIN block pinRequired, simplePinBlocked, min length 6+ Casual access to the container
Allowed-accounts-only IntuneMAMAllowedAccountsOnly + IntuneMAMUPN Personal-account data leak
Tenant pinning IntuneMAMOIDCTenantId Cross-tenant identity bypass
CA: Require app protection policy Conditional Access grant Unprotected apps reaching data
Conditional launch (jailbreak/MTD) Block/Wipe on compromised posture Compromised/rooted devices
Block notifications notificationRestriction = blockOrganizationalData Lock-screen content leak
Selective wipe App selective wipe / auto-wipe Data persistence after offboarding

Cost & sizing

MAM-WE has no infrastructure cost of its own — there are no servers, no gateways, no per-device charges. The entire bill driver is per-user Intune licensing, which most organizations already hold via Microsoft 365 or EMS bundles. The economics are what make MAM-WE attractive for large BYOD and contractor populations: you pay per user, you deploy to devices you don’t own and don’t buy, and there is no hardware or enrollment-support overhead.

Cost driver What you pay for Rough figure Notes
Intune license (per user) Intune Plan 1 entitlement Included in M365/EMS E3-E5; ~₹700-900/user/mo standalone Plan 1 Already owned if you have M365 E3+
MAM-WE infrastructure Nothing ₹0 No servers, gateways, or per-device cost
MTD connector (optional) Defender for Endpoint / partner MTD Defender included in some SKUs; partner MTD per-device Only if you want device-risk gating
Support / helpdesk Broker install, PIN resets, wipe requests Operational time only Far lower than MDM enrollment support
Conditional Access Entra ID P1 (included in M365 E3+) Included CA requires Entra ID P1

Sizing is about user count, not device count or compute. A few sizing notes:

Consideration Guidance
Who needs a license Every targeted user — unlicensed users silently fail to receive policy
Entra ID P1 for CA Required for Conditional Access; included in M365 E3/E5 and EMS
MTD licensing Only if you gate on device threat level; Defender for Endpoint or a partner
Per-device cost None — MAM-WE scales to any number of (unowned) devices at no per-device charge
Hidden cost vs MDM MAM-WE avoids enrollment-support, hardware, and device-lifecycle overhead

The cost case versus MDM is decisive for BYOD: MDM implies buying devices or shouldering the support and liability of managing personal hardware; MAM-WE implies neither. For 900 contractors, it is the only economically and politically viable control — the licenses are already in the M365 bundle, and there is nothing else to buy.

Interview & exam questions

1. What is MAM-WE and how does it differ from MDM? MAM-WE (Mobile Application Management Without Enrollment) protects corporate data at the app layer using app protection policies enforced by the Intune App SDK, with no device enrollment. MDM enrolls the whole device and enforces OS-level policy (passcode, encryption, restrictions) with a full-device wipe reserve. MAM-WE is the low-friction BYOD answer; MDM fits corporate-owned hardware.

2. How does an app protection policy actually enforce anything without enrolling the device? The policy targets apps built with the Intune App SDK (the M365 apps). The SDK is compiled into the app and, after the user signs the corporate identity in through a broker (Authenticator/Company Portal), pulls down the policy and intercepts data operations at runtime — PIN, encryption, save, copy, paste, open-in — enforcing the boundary inside the app with no OS involvement.

3. What is the unmanaged-account leak and how do you close it? A user adds a personal account into a managed app; because the APP policy is scoped to the corporate identity, the personal account’s data is ungoverned and can leak. Close it with IntuneMAMAllowedAccountsOnly = Enabled plus IntuneMAMUPN in an app configuration policy, set per app — and in multi-tenant topologies add IntuneMAMOIDCTenantId to pin the tenant, not just the UPN.

4. Which Conditional Access grant enforces app protection, and what’s the 2026 change? Require app protection policy enforces that an APP policy is applied to the app accessing the resource. The Require approved client app grant is retiring — migrate to Require app protection policy now, running both with “require one of the selected controls” during the transition, then drop the retiring grant.

5. Does enforcing APP via Conditional Access require device enrollment? No — it requires device registration in Entra ID, which is a lightweight identity registration that happens silently during sign-in. Registration is not MDM enrollment; IT gains an Entra device identity for CA evaluation but no device-level visibility or control.

6. How does selective wipe work, and what does it remove? It removes only the corporate data inside the managed apps for a specific identity, leaving the device, the apps, and all personal content intact. It is pull-based — it executes the next time the user opens the affected app with network connectivity (typically within ~30 minutes), and each protected app reports its own Pending → Wiped status.

7. Name three iOS-vs-Android differences that affect APP design. (a) iOS cannot block screenshots via APP; Android can (screenCaptureBlocked). (b) Android requires Company Portal as the broker even unenrolled; iOS uses Authenticator (mandatory once app-based CA is on). © Encryption is OS file-protection on iOS vs SDK-level on Android (both honour appDataEncryptionType).

8. What is conditional launch and give three actions it can take. Conditional launch evaluates device/app posture on every launch/resume and takes an action: Warn, Block access, or Wipe data. Examples: jailbroken/rooted → Block; min OS/app version → Warn; offline beyond the grace period → Wipe; max PIN failures → Reset PIN; MTD threat level above threshold → Block.

9. Why does an app show “targeted but not checked in,” and is it a bug? Enforcement is pull-based: a policy is “targeted” when assigned but only “checked in” once the user opens a targeted app with that policy. A user who hasn’t launched the app shows targeted-not-checked-in — almost never a bug; have them open the app.

10. A user is unlicensed for Intune but has Office 365 — will APP apply? No. Office 365 licenses alone do not include Intune. Every targeted user needs an Intune-bearing entitlement (M365/EMS E3-E5, Intune Plan 1, Business Premium, or F3) actually assigned. This is the number-one “policy never applies” cause.

11. What’s the difference between the two app-configuration delivery channels? Managed devices configuration uses the OS MDM channel and works only on enrolled devices. Managed apps configuration uses the Intune App SDK and delivers to apps under an APP policy without enrollment — this is the channel for MAM-WE.

12. How do you give MAM-WE a device-risk signal without enrolling the device? Integrate a Mobile Threat Defense connector (Microsoft Defender for Endpoint, or a partner like Lookout/Zimperium) and add a Max allowed device threat level conditional-launch condition. The MTD app reports the device’s risk score over MAM, and APP blocks or wipes when it exceeds your threshold — real device-risk gating on an unmanaged device.

These map to MD-102 (Endpoint Administrator)manage apps, app protection, and app configuration policies; Conditional Access — and SC-300 (Identity and Access Administrator)Conditional Access grant controls. The data-governance angle touches SC-400 (Information Protection). A compact cert mapping:

Question theme Primary cert Objective area
APP authoring, MAM-WE, app config MD-102 Manage apps and app protection
Selective wipe, conditional launch MD-102 Manage device and app lifecycle
Require app protection policy (CA) SC-300 / MD-102 Conditional Access
Allowed-accounts-only, tenant pinning MD-102 Secure app data
MTD integration MD-102 / SC-300 Device-risk and conditional access

Quick check

  1. A user has an Office 365 E3 license and is targeted by your app protection policy, but the policy never applies. What is the most likely cause?
  2. Which app configuration setting closes the “personal account added into managed Outlook” leak, and where do you set it?
  3. Which Conditional Access grant should new MAM-WE policies use, and which grant is retiring?
  4. You issue a selective wipe; it reports “Wiped” but the corporate data is still on the device. Name the most likely cause.
  5. Name one data-protection control you can enforce on Android via APP that you cannot enforce on iOS.

Answers

  1. The user is unlicensed for Intune — Office 365 licenses do not include Intune. Assign an Intune-bearing license (M365/EMS E3-E5, Intune Plan 1, Business Premium, or F3). This is the number-one non-delivery cause.
  2. IntuneMAMAllowedAccountsOnly = Enabled (paired with IntuneMAMUPN), set in an app configuration policy → Managed apps for Outlook (and every app that supports it). It restricts the managed app to the corporate account.
  3. New policies should use Require app protection policy. The Require approved client app grant is retiring — migrate off it, running both briefly with “require one of the selected controls,” then drop it.
  4. The wipe targeted the wrong identity — the data is held under a second (cross-tenant or personal) account, so a wipe against the corporate UPN reports success while data persists. Confirm the holding userId via Graph, re-issue against the correct identity, and pin the tenant.
  5. Blocking screen capture (screenCaptureBlocked) — Android can block screenshots of org data via APP; iOS cannot (the OS doesn’t expose it). (Also acceptable: blocking Google Assistant scraping.)

Glossary

Next steps

You can now design, ship, enforce, and troubleshoot a full MAM-WE posture for BYOD. Build outward:

IntuneMAM-WEApp ProtectionBYODConditional AccessMicrosoft 365Selective WipeMobile Security
Need this built for real?

Vinod is a Senior Cloud Architect (22+ yrs) — available for Azure / AWS / GCP architecture, landing zones, and migrations.

Work with me

Comments

Keep Reading