AWRA OpsHub Search
AWRA Field 07 screens 12 min read

Two Policies Arrive and the Stricter One Wins

A workspace policy and an MDM profile can both reach the same phone, and they answer different questions. The rule is that the stricter one wins on every setting, and that neither can be used to loosen the other.

Written by
AWRA OpsHub TeamOperations Insights
Issued
Build
Initial

Two people can decide how locked down an app should be on a given phone, and they are rarely the same person. There is whoever runs the workspace, setting a rule for everybody. And there is whoever runs the device fleet, hardening the tablets their department bought. On a shared ward tablet those two answers are different, and both are right.

Most software resolves that by having one source. Whichever it is, somebody ends up unable to express what they need: either the workspace rule is forced onto every personal phone, or the fleet profile is ignored on the devices IT actually issued.

The alternative is to take both, and settle the collisions with a rule that cannot be gamed in either direction.

Stricter wins, and only stricter

The workspace policy

  • Set on the web, in Settings, by somebody responsible for the organisation.
  • Applies everywhere the app is signed in, including phones nobody in IT has ever touched.
  • Carries the settings only the server can know about — session idle timeout, the multi-factor stance.
  • Fetched when the app foregrounds, and cached for the times it cannot be.

The MDM profile

  • Pushed by device management to a specific device, before anyone signs in.
  • Applies to the handsets that department issued and to nothing else.
  • Can set the server address, the workspace and a default email domain, so nobody types a URL.
  • Can turn protections on. It has no way of turning any of them off.
Two columns. The workspace policy applies everywhere and carries the settings only the server knows. The MDM profile applies to the devices IT issued and can set the server address. Either can turn a protection on; neither can turn one off.
The overlap is deliberately small: two settings either source can turn on, and nothing either can turn off.

The absent key is not a "no"

The merge is deliberately written so that a setting missing from the MDM profile is not read as permission. An absent key is unknown, not false — and a merge that treated the two the same would let an incomplete profile quietly switch off a protection the organisation asked for. That is a one-character distinction in the code and the whole safety property in practice.

What the policy actually controls

Setting What it does on the device Who can set it
Screen capture blocked Screenshots and screen recording refused by the operating system Either source, and either can turn it on
Compromised devices blocked A rooted or jailbroken handset is refused a session Either source, and either can turn it on
Biometric lock required The app demands a face or fingerprint on resume The workspace
Lock timeout How long away from the app counts as away The workspace
Session idle timeout When an idle session ends outright The workspace
Multi-factor stance Whether a second factor is recommended or insisted on The workspace
Server address, workspace, email domain What a freshly enrolled device points at The MDM profile
Seven settings. Screen capture and compromised-device blocking can be set by either source. Biometric lock, lock timeout, idle timeout and the MFA stance are the workspace. The server address and enrolment values are the MDM profile.
Two shared rows, four the workspace owns, one the device fleet owns. The split is what lets both parties express what they need.

Only the first two are shared, and they are shared precisely because they are the two an IT department has a legitimate reason to harden on hardware it owns without touching anyone's personal phone.

The first frame after launch

A policy fetched from the server has a gap in front of it: the moment between the app appearing and the answer arriving. It is a fraction of a second, and it is enough to screenshot a payslip.

So the last known policy is restored from the device before anything renders, and applied immediately. The network fetch then confirms or updates it. The order matters more than the freshness — a slightly stale policy in force from the first frame beats a current one that arrives second.

Losing a connection must never switch a protection off. If the policy fetch fails, the last known policy stays in force — the absence of an answer is not an answer.

Permissive before the first contact, strict after

There is one state where nothing is enforced: a device that has never reached the server and has no cached policy. First launch, or a fresh install in a place with no signal. Every restriction there is off, and that is a deliberate choice with an argument behind it.

The alternative — default to locked down — sounds obviously safer and produces a specific failure: a field worker whose connection dropped finds the app refusing to open, on a device that has done nothing wrong, in a place where they cannot fix it. There is nothing on that device yet to protect. The protections attach to the data, and the data arrives with the first sync.

What the device says about itself

Posture reporting is the other half. The device tells the server what it knows about itself — whether it looks rooted or jailbroken, whether it is an emulator, whether screen capture is currently blocked, whether biometric hardware exists, and which operating system and app version it is running.

If the organisation blocks compromised devices and this one says it is compromised, the server has already revoked the session by the time the refusal comes back, and the app signs out. The interesting case is the other one.

The device reports it is compromised

Refuse, and revoke

The session is ended on the server first, so the outcome does not depend on the app cooperating with its own sign-out.

The report cannot be delivered at all

Carry on

An unreachable server is not evidence of a compromised device. Treating a dropped connection as a security event locks out exactly the field staff this product is for.

The platform cannot answer the question

Say so rather than guess

A build without the native security piece reports that it has nothing to report, instead of sending a confident "not rooted" that nothing checked.

The lock timer, and the missing timestamp

When a biometric lock is required, the app records the moment it went to the background and compares on resume. Longer than the timeout and it asks for a face or a fingerprint; shorter and it does not, because demanding one every time somebody glances at a message makes people stop using the lock.

How the resume check decides

No lock required by policy No prompt
Away for less than the timeout No prompt
Away for longer Unlock
Default timeout where the policy sets none 5 minutes
Floor, whatever the policy says 15 seconds
No record of going away at all Unlock

That last row is the one to copy. A missing timestamp means either the write failed or the process was killed and restarted — and in both cases the app cannot prove it was away for less than the timeout. For a policy that asked for a lock at all, the safe reading of "cannot prove" is to ask.

Enrolment, and the one honest caveat

The most common reason a mobile rollout stalls in an organisation large enough to have an MDM is that every member of staff has to type a server address by hand. A managed profile removes that: the address, the workspace and a default email domain arrive with the app.

The caveat is small and worth stating rather than discovering. The address is read from a native value as the app loads, while the managed profile is fetched asynchronously — so on the very first launch of a freshly enrolled device, requests fired in the first moments may still use the default host. The profile is cached the instant it is read, so every launch after that has it immediately. In practice a managed device is configured before anyone signs in, and nobody meets it.

Administrators type the site root as often as the API root

So both are accepted. A profile pointing at the site and a profile pointing at the API resolve to the same place, because a support ticket about an undocumented trailing path is a bad way to start a fleet rollout.

Questions for a security team evaluating a field app

If our MDM and your workspace settings disagree, which wins?

What you will hear

"They should be the same."

How to read it

They will not be, on the devices IT issued. The answer you want is a stated rule — stricter wins, per setting — and confirmation that a profile cannot loosen anything the workspace insisted on.

What is enforced before the app has spoken to your server?

What you will hear

"Everything."

How to read it

Ask specifically about screenshot blocking on the first frame. A policy applied only after a network round trip leaves a window, and that window is long enough to capture whatever is on screen.

What happens to your protections when the network drops?

What you will hear

"They keep working."

How to read it

Ask how. The failure to avoid is a fetch failing and the app falling back to permissive, which turns a bad connection into a security downgrade. The last known policy staying in force is the answer.

Do you block rooted devices, and what if the check cannot run?

What you will hear

"We detect rooted devices."

How to read it

Detection is best-effort on every platform and a vendor claiming certainty has not thought about it. What matters is where the decision is made — the server, so a refusal also revokes the session — and that an undeliverable report is not treated as a compromised device.

Our take

Mobile security policy goes wrong in two directions, and both are avoidable with one rule. Too permissive, and an IT department that bought a hundred tablets cannot harden them without hardening every personal phone in the organisation. Too rigid, and a field worker whose connection dropped is locked out of an app that has nothing on it yet. Taking both sources, letting either turn a protection on, letting neither turn one off, and keeping the last known policy in force when the network goes is the shape that survives both. The part we would put in front of a security team first is the failure behaviour: a dropped connection is not a security event, and an app that treats it as one will be worked around within a week.

More we can add to your workspace

Policy is a small surface with a lot of legitimate variation

The merge, the cached policy and the posture report are three named pieces. These are the extensions security teams ask for once a fleet is real.

Policy by role or by device group

Different rules for warehouse handsets, finance phones and ward tablets, set once centrally instead of per device profile.

A posture history per device

What each handset reported over time — operating system, app version, integrity — so a fleet audit reads from one screen.

Conditions of your own

Rules that take account of network or location, for organisations whose policy genuinely differs on site and off it.

Managed enrolment for more of the profile

More of the sign-in journey pre-filled by the MDM payload, for fleets where staff should never see a server field at all.

Every item here builds on the merge rule already in place, which is the piece that is awkward to add later — a policy system with one source has to be rebuilt to accept two.

Tell us how your fleet is managed

Bring your MDM profile

The quickest way to find out whether this fits is to push a profile at a test device and watch what the app does with it — before the first sign-in, not after.

Talk to us about device policy

Frequently asked questions

What happens if our MDM profile and the workspace security settings disagree?

The stricter value wins, per setting. Both sources can turn screenshot blocking and compromised-device blocking on, and neither can turn them off. That way an IT department can harden the tablets it issued without forcing the same rule onto every personal phone, and an incomplete profile can never loosen something the organisation asked for.

Is screenshot blocking active before the app has contacted your server?

Yes, when the device has a policy cached. The last known policy is restored and applied before anything renders, and the network fetch then confirms or updates it — otherwise there is a window between launch and the answer arriving in which whatever is on screen can be captured.

What happens to the security policy when the phone loses its connection?

The last known policy stays in force. A failed fetch never falls back to permissive, because that would turn a bad connection into a security downgrade — the absence of an answer is not an answer.

Why is nothing enforced on a brand new device that has never been online?

Because there is nothing on it yet to protect, and the alternative fails badly: defaulting to locked down means a worker whose connection dropped finds the app refusing to open in a place where they cannot fix it. The protections attach to the data, and the data arrives with the first sync.

Do you block rooted or jailbroken devices?

If your organisation switches it on. The device reports what the platform tells it about itself and the server decides; a refusal revokes the session before the app is told, so the outcome does not depend on the app cooperating. A report that cannot be delivered is not treated as evidence of a compromised device — an unreachable server means an unreachable server.

Can we pre-configure the server address so staff never type it?

Yes — an MDM profile can set the server address, the workspace and a default email domain, and both the site root and the API root are accepted because administrators type each about equally often. One honest caveat: on the very first launch of a freshly enrolled device, requests in the first moments may still use the default host, because the address is read as the app loads and the profile arrives just after. It is cached immediately, so every later launch has it from the start.

How often does the app ask for a fingerprint when a biometric lock is required?

Only after the app has been in the background for longer than the lock timeout — five minutes where the policy sets none, and never less than fifteen seconds whatever it says. If there is no record of when the app went away, it asks: that means either the write failed or the process was restarted, and neither can prove the app was away for less than the timeout.

Help Center

Need a quick answer while you read?

Run inventory, procurement, assets, sales, and field work with approved AWRA guidance for setup, migration, integrations, security, pricing, and support.

Search all approved AWRA public help articles.

Open Help Center