Manage Apps With Intune
Manage Apps With Intune
Manage apps
Overview
App management overview
Quickstarts
Add and assign an app
Create and assign an app protection policy
Tutorials
Protect email on managed devices
Protect email on unmanaged devices
Configure Slack to use Intune
Concepts
App lifecycle
App protection policies and work profiles (Android)
Use Intune without Google Mobile Services
MAM FAQ
How-to guides
Add apps
Add apps overview
Intune protected apps
Store apps
Android store apps
iOS store apps
Windows Phone 8.1 store apps
Windows store apps
Microsoft Store for Business apps
Managed Google Play apps
Microsoft 365 Suite
Microsoft 365 apps for Windows 10
Microsoft 365 apps for macOS
Android Enterprise system apps
Web apps
Built-in apps
Build your app (LOB)
Android LOB apps
iOS LOB apps
Windows Phone LOB apps
Windows LOB apps
Sideload Windows LOB apps
macOS LOB apps
Win32 app management
Win32 app S mode devices
Add specific apps
Company Portal app - Autopilot
Company Portal app - Download
Company Portal app - macOS
Microsoft Edge for Windows 10
Microsoft Edge for macOS
Microsoft Defender ATP for macOS
PowerShell scripts
macOS shell scripts
Assign apps
Assign apps to groups
Include and exclude apps
Deploy Windows 10 apps
Deploy apps to Government environments
Monitor apps
Discovered apps
Configure apps
App configuration policies
iOS managed devices
Android managed devices
Managed apps
Use iOS app provisioning profiles
Configure specific apps
Configure the Managed Home Screen
Configure the Company Portal
Configure Microsoft Launcher
Configure Microsoft Edge
Configure Office
Configure Outlook
Configure Microsoft Teams
Configure Google Chrome for Android
VPN and per-app VPN on Android Enterprise
Volume-purchased apps and books
Volume-purchased overview
Volume-purchased iOS apps
Microsoft Store for Business apps
iOS eBooks
Protect apps
Selectively wipe apps
Use app protection policies
App protection policies overview
Data protection framework using app protection policies
Create app protection policies
General settings
Android settings
iOS settings
Conditional launch
Data transfer exceptions
Validate app protection policies
App protection policy delivery
Protecting app extensions
Monitor app protection user status
Get ready for WIP app protection policies
Create & assign WIP app protection policies
Manage data transfer between iOS apps
Review app protection logs
Troubleshoot
Help users troubleshoot problems
Troubleshoot app installation problems
App installation error reference
Troubleshoot mobile application management
Review app protection logs
Troubleshooting app protection policy deployment
Reference
Protect apps with Intune App SDK
Get started with Intune App SDK
Prepare LOB apps for app protection
App Wrapping Tool for iOS
Intune App SDK for iOS
App Wrapping Tool for Android
Intune App SDK for Android
Intune App SDK for Android testing guide
Intune App SDK Xamarin Bindings
What is Microsoft Intune app management?
9/4/2020 • 7 minutes to read • Edit Online
As an IT admin, you can use Microsoft Intune to manage the client apps that your company's workforce uses. This functionality is in addition to managing
devices and protecting data. One of an admin's priorities is to ensure that end users have access to the apps they need to do their work. This goal can be a
challenge because:
There are a wide range of device platforms and app types.
You might need to manage apps on both company devices and users' personal devices.
You must ensure that your network and your data remain secure.
Additionally, you might want to assign and manage apps on devices that are not enrolled with Intune.
1 Consider using Windows Information Protection to protect apps on devices that run Windows 10.
2 Applies to devices managed by Intune only.
3 Intune supports available apps from Managed Google Play store on Android Enterprise devices.
4 Intune does not provide installing a shortcut to an app as a web link on standard Android Enterprise devices. However, Web link support is provided for
Get started
You can find most app-related information in the Apps workload, which you can access by doing the following:
1. Sign in to the Microsoft Endpoint Manager admin center.
2. Select Apps .
The apps workload provides links to access common app information and functionality.
The top of the App workload navigation menu provide commonly used app details:
Over view : Select this option to view the tenant name, the MDM authority, the tenant location, the account status, app installation status, and app
protection policy status.
All apps : Select this option to display a list of all available apps. You can add additional apps from this page. Additionally, you can see the status of each
app, as well as whether each app is assigned. For more information, see Add apps and Assign apps.
Monitor apps
App licenses : View, assign, and monitor volume-purchased apps from the app stores. For more information, see iOS volume-purchased
program (VPP) apps and Microsoft Store for Business volume-purchased apps.
Discovered apps : View apps that were assigned by Intune or installed on a device. For more information, see Intune discovered apps.
App install status : View the status of an app assignment that you created. For more information, see Monitor app information and assignments
with Microsoft Intune.
App protection status : View the status of an app protection policy for a user that you select.
By Platform : Select these platforms to view the available apps by platform.
Windows
iOS
macOS
Android
Policy :
App protection policies : Select this option to associate settings with an app and help protect the company data it uses. For example, you might
restrict the capabilities of an app to communicate with other apps, or you might require the user to enter a PIN to access a company app. For
more information, see App protection policies.
App configuration policies : Select this option to supply settings that might be required when a user runs an app. For more information, see
App configuration policies, iOS app configuration policies, and Android app configuration policies.
iOS app provisioning profiles : iOS apps include a provisioning profile and code that is signed by a certificate. When the certificate expires, the
app can no longer be run. Intune gives you the tools to proactively assign a new provisioning profile policy to devices that have apps that are
nearing expiration. For more information, see iOS app provisioning profiles.
S mode supplemental policies : Select this option to authorize additional applications to run on your managed S mode devices. For more
information, see S mode supplemental policies.
Policy sets : Select this option to create an assignable collection of apps, policies, and other management objects you've created. For more
information, see Policy sets.
Other :
App selective wipe : Select this option to remove only corporate data from a selected user's device. For more information, see App selective
wipe.
App categories : Add, pin, and delete app category names.
E-books : Some app stores give you the ability to purchase multiple licenses for an app or books that you want to use in your company. For more
information, see Manage volume-purchased apps and books with Microsoft Intune.
Help and suppor t : Troubleshoot, request support, or view Intune status. For more information, see Troubleshoot problems.
Try the interactive guide
The Manage and protect mobile and desktop applications with Microsoft Endpoint Manager interactive guide steps you through the Microsoft Endpoint
Manager admin center to show you how to manage devices enrolled in Intune, enforce compliance with policies, and protect your organization's data.
https://mslearn.cloudguides.com/guides/Manage%20and%20protect%20mobile%20and%20desktop%20applications%20with%20Microsoft%20Endpoint%20Manager
Additional information
The following items within the console provide app related functionality:
Microsoft Store for Business : Set up integration to the Microsoft Store for Business. Afterward, you can synchronize purchased applications to
Intune, assign them, and track your license usage. For more information, see Microsoft Store for Business volume-purchased apps.
Windows enterprise cer tificate : Apply or view the status of a code-signing certificate that's used to distribute line-of-business apps to your
managed Windows devices.
Windows Symantec cer tificate : Apply or view the status of a Symantec code-signing certificate.
Windows side loading keys : Add a Windows side-loading key that can be used to install an app directly to devices rather than publishing and
downloading the app from the Windows store. For more information, see Side-load a Windows app.
Apple VPP tokens : Apply and view your iOS/iPadOS Volume Purchase Program (VPP) licenses. For more information, see iOS/iPadOS volume-
purchased apps.
Managed Google Play : Managed Google Play is Google's enterprise app store and sole source of applications for Android Enterprise. For more
information, see Add Managed Google Play apps to Android Enterprise devices with Intune.
Customization : Customize the Company Portal to give it your company branding. For more information, see Company Portal configuration.
For more information about apps, see Add apps to Microsoft Intune.
Next steps
Add an app to Microsoft Intune
Quickstart: Add and assign a client app
4/22/2020 • 3 minutes to read • Edit Online
In this quickstart, you will use Intune to add and assign a client app to your company's workforce. One of an
admin's priorities is to ensure that end users have access to the apps they need to do their work.
If you don't have an Intune subscription, sign up for a free trial account.
Prerequisites
To complete this quickstart, you must create a user, create a group, and enroll a device.
Sign in to Intune
Sign in to Intune as a Global administrator or an Intune Service administrator. If you have created an Intune Trial
subscription, the account you created the subscription with is the Global administrator.
NOTE
This quickstart builds on previous quickstarts in this series. Please see prerequisites in this quickstart for details.
IMPORTANT
The device must be enrolled with Intune. Also, you must sign in to the device using an account contained in the
group you assigned to the app.
2. From the Star t menu, open the Microsoft Store . Then, find the Company Por tal app and install it.
3. Launch the Company Por tal app.
4. Click the app that you added using Intune. In this quickstart you added the Microsoft 365 Apps suite.
NOTE
If you did not successfully assign any apps to the Intune user, you will see the following message: Your IT
administrator did not make any apps available to you.
5. Click Install .
If your business needs require that you assign the Company Portal app to your workforce, you can manually assign
the Windows 10 Company Portal app directly from Intune. For more information see, Manually add the Windows
10 Company Portal app by using Microsoft Intune.
Next steps
In this quickstart, you added apps to Intune, assigned the apps to a group, and installed the apps on the enrolled
Windows 10 Desktop device. For more information about managing apps in Intune, see What is Microsoft Intune
app management?
To follow this series of Intune quickstarts, continue to the next quickstart.
Quickstart: Create and assign an app protection policy
Quickstart: Create and assign an app protection
policy
3/9/2020 • 2 minutes to read • Edit Online
In this quickstart, you will use Intune to create and assign an app protection policy to a client app on an end user's
device. Intune uses app protection policies to confirm that your apps are meeting your organization's data
protection requirements.
If you don't have an Intune subscription, sign up for a free trial account.
Prerequisites
To complete this quickstart, you must create a user, create a group, enroll a device, and add and assign an app.
Sign in to Intune
Sign in to the Intune as a Global administrator or an Intune Service administrator. If you have created an Intune
Trial subscription, the account you created the subscription with is the Global administrator.
NOTE
App protection policies can only be applied to groups that contains users, not groups that contain devices.
Next steps
In this quickstart, you created and assigned an app protection policy. Users of the app that have this policy assigned
will not be able to cut, copy, or paste any content between the assigned app and other non-managed apps on the
device. This type of protection will help protect your organization's data. For more information about app
protection policies in Intune, see What are app protection policies?
To follow this series of Intune quickstarts, continue to the next quickstart.
Quickstart: Create and assign a custom role
Tutorial: Protect Exchange Online email on managed
devices
9/4/2020 • 4 minutes to read • Edit Online
Learn about using device compliance policies with Conditional Access to make sure that iOS devices can access
Exchange Online email only if they're managed by Intune and using an approved email app.
In this tutorial, you'll learn how to:
Create an Intune iOS device compliance policy to set the conditions that a device must meet to be considered
compliant.
Create an Azure Active Directory (Azure AD) Conditional Access policy that requires iOS devices to enroll in
Intune, comply with Intune policies, and use the approved Outlook mobile app to access Exchange Online email.
If you don't have an Intune subscription, sign up for a free trial account.
Prerequisites
You'll need a test tenant with the following subscriptions for this tutorial:
Azure Active Directory Premium (free trial)
Microsoft 365 Apps for business subscription that includes Exchange (free trial)
Before you begin, create a test device profile for iOS devices by following the steps in Quickstart: Create an email
device profile for iOS/iPadOS.
Sign in to Intune
Sign in to the Microsoft Endpoint Manager admin center as a Global administrator or an Intune Service
administrator. If you have created an Intune Trial subscription, the account you created the subscription with is the
Global administrator.
TIP
Default values that are grayed out and italicized are only recommendations. You must replace values that are
recommendations to configure a setting.
9. Select Create .
Try it out
With the policies you've created, any iOS device that attempts to sign in to Microsoft 365 email will need to enroll
in Intune and use the Outlook mobile app for iOS/iPadOS. To test this scenario on an iOS device, try signing in to
Exchange Online using credentials for a user in your test tenant. You'll be prompted to enroll the device and install
the Outlook mobile app.
1. To test on an iPhone, go to Settings > Passwords & Accounts > Add Account > Exchange .
2. Enter the email address for a user in your test tenant, and then press Next .
3. Press Sign In .
4. Enter the test user's password, and press Sign in .
5. A message appears that says your device must be managed to access the resource, along with an option to
enroll.
Clean up resources
When the test policies are no longer needed, you can remove them.
1. Sign in to the Microsoft Endpoint Manager admin center as a Global Administrator or an Intune Service
Administrator.
2. Select Devices > Compliance policies .
3. In the Policy Name list, select the context menu (...) for your test policy, and then select Delete . Select OK
to confirm.
4. Select Endpoint security > Conditional access .
5. In the Policy Name list, select the context menu (...) for your test policy, and then select Delete . Select Yes
to confirm.
Next steps
In this tutorial, you created policies that require iOS devices to enroll in Intune and use the Outlook app to access
Exchange Online email. To learn about using Intune with Conditional Access to protect other apps and services,
including Exchange ActiveSync clients for Microsoft 365 Exchange Online, see Set up Conditional Access.
Tutorial: Protect Exchange Online email on
unmanaged devices
9/4/2020 • 7 minutes to read • Edit Online
Learn about using app protection policies with Conditional Access to protect Exchange Online, even when devices
aren't enrolled in a device management solution like Intune. In this tutorial, you'll learn how to:
Create an Intune app protection policy for the Outlook app. You'll limit what the user can do with app data by
preventing "Save As" and restrict cut, copy, and paste actions.
Create Azure Active Directory (Azure AD) Conditional Access policies that allow only the Outlook app to access
company email in Exchange Online. You'll also require multi-factor authentication (MFA) for Modern
authentication clients, like Outlook for iOS and Android.
Prerequisites
You'll need a test tenant with the following subscriptions for this tutorial:
Azure Active Directory Premium (free trial)
Intune subscription (free trial)
Microsoft 365 Apps for business subscription that includes Exchange (free trial)
Sign in to Intune
For this tutorial, when you sign in to the Microsoft Endpoint Manager admin center, sign in as a Global
administrator or an Intune Service administrator. If you've created an Intune Trial subscription, the account you
created the subscription with is the Global administrator.
Try it out
With the policies you've created, devices will need to enroll in Intune and use the Outlook mobile app to access
Microsoft 365 email. To test this scenario on an iOS device, try signing in to Exchange Online using credentials for a
user in your test tenant.
1. To test on an iPhone, go to Settings > Passwords & Accounts > Add Account > Exchange .
2. Enter the email address for a user in your test tenant, and then press Next .
3. Press Sign In .
4. Enter the test user's password, and press Sign in .
5. The message More information is required appears, which means you're being prompted to set up MFA.
Go ahead and set up an additional verification method.
6. Next you'll see a message that says you're trying to open this resource with an app that isn't approved by
your IT department. The message means you're being blocked from using the native mail app. Cancel the
sign-in.
7. Open the Outlook app and select Settings > Add Account > Add Email Account .
8. Enter the email address for a user in your test tenant, and then press Next .
9. Press Sign in with Office 365 . You'll be prompted for additional authentication and registration. Once
you've signed in, you can test actions such as cut, copy, paste, and "Save As".
Clean up resources
When the test policies are no longer needed, you can remove them.
1. Sign in to the Microsoft Endpoint Manager admin center.
2. Select Devices Compliance policies .
3. In the Policy Name list, select the context menu (...) for your test policy, and then select Delete . Select OK
to confirm.
4. Select Endpoint security > Conditional access .
5. In the Policy Name list, select the context menu (...) for each of your test policies, and then select Delete .
Select Yes to confirm.
Next steps
In this tutorial, you created app protection policies to limit what the user can do with the Outlook app, and you
created Conditional Access policies to require the Outlook app and require MFA for Modern Authentication clients.
To learn about using Intune with Conditional Access to protect other apps and services, see Set up Conditional
Access.
Tutorial: Configure Slack to use Intune for EMM and
app configuration
9/4/2020 • 7 minutes to read • Edit Online
Slack is a collaboration app that you can use with Microsoft Intune.
In this tutorial, you will:
Set Intune as the Enterprise Mobility Management (EMM) provider on your Slack Enterprise Grid. You'll be able
to limit access to your Grid plan's workspaces to Intune managed devices.
Create app configuration policies to manage the Slack for EMM app on iOS/iPadOS and the Slack app for
Android work profile devices.
Create Intune device compliance policies to set the conditions Android and iOS/iPadOS devices must meet to be
considered compliant.
If you don't have an Intune subscription, sign up for a free trial account.
Prerequisites
You'll need a test tenant with the following subscriptions for this tutorial:
Azure Active Directory Premium (free trial)
Intune subscription (free trial)
You will also need a Slack Enterprise Grid plan.
Sign in to Intune
Sign in to the Microsoft Endpoint Manager admin center as a Global Administrator or an Intune Service
Administrator. If you have created an Intune Trial subscription, the account you created the subscription with is the
Global administrator.
Launch Slack
With the policies you've just created, any iOS/iPadOS or Android work profile devices that attempt to sign in to one
of your workspaces will need to be Intune enrolled. To test this scenario, try launching Slack for EMM on an Intune
enrolled iOS/iPadOS device or launching Slack on an Intune enrolled Android work profile device.
Next steps
In this tutorial:
You set Intune as the Enterprise Mobility Management (EMM) provider on your Slack Enterprise Grid.
You created app configuration policies to manage the Slack for EMM app on iOS/iPadOS and the Slack app for
Android work profile devices.
You created Intune device compliance policies to set the conditions Android and iOS/iPadOS devices must meet
to be considered compliant.
To learn more about app configuration policies, see App configuration policies for Microsoft Intune. To learn more
about device compliance policies, see Set rules on devices to allow access to resources in your organization using
Intune.
Overview of the app lifecycle in Microsoft Intune
9/4/2020 • 2 minutes to read • Edit Online
The Microsoft Intune app lifecycle begins when an app is added and progresses through additional phases until
you remove the app. By understanding these phases, you'll have the details you need to get started with app
management in Intune.
Add
The first step in app deployment is to add the apps, which you want to manage and assign, to Intune. While you
can work with many different app types, the basic procedures are the same. With Intune you can add different app
types, including apps written in-house (line-of-business), apps from the store, apps that are built in, and apps on
the web. For more information about each of these app types, see How to add an app to Microsoft Intune.
Deploy
After you've added the app to Intune, you can then assign it to users and devices that you manage. Intune makes
this process easy, and after the app is deployed, you can monitor the success of the deployment from the Intune
within the Azure portal. Additionally, in some app stores, such as the Apple and Windows app stores, you can
purchase app licenses in bulk for your company. Intune can synchronize data with these stores so that you can
deploy and track license usage for these types of apps right from the Intune administration console.
Configure
As part of the app lifecycle, new versions of apps are regularly released. Intune provides tools to easily update apps
that you have deployed to a newer version. Additionally, you can configure extra functionality for some apps, for
example:
iOS/iPadOS app configuration policies supply settings for compatible iOS/iPadOS apps that are used when the
app is run. For example, an app might require specific branding settings or the name of a server to which it
must connect.
Managed browser policies help you to configure settings for the Microsoft Edge, which replaces the default
device browser and lets you restrict the websites that your users can visit.
Protect
Intune gives you many ways to help protect the data in your apps. The main methods are:
Conditional Access, which controls access to email and other services based on conditions that you specify.
Conditions include device types or compliance with a device compliance policy that you deployed.
App protection policies works with individual apps to help protect the company data that they use. For example,
you can restrict copying data between unmanaged apps and apps that you manage, or you can prevent apps
from running on devices that have been jailbroken or rooted.
Retire
Eventually, it's likely that apps that you deployed become outdated and need to be removed. Intune makes it easy
to uninstall apps. For more information, see Uninstall an app.
Next steps
Learn about app management in Microsoft Intune
Application protection policies and work profiles on
Android Enterprise devices in Intune
9/4/2020 • 7 minutes to read • Edit Online
In many organizations, administrators are challenged to protect resources and data on different devices. One
challenge is protecting resources for users with personal Android Enterprise devices, also known as bring-your-
own-device (BYOD). Microsoft Intune supports two Android deployment scenarios for bring-your-own-device
(BYOD):
App protection policies without enrollment (APP-WE)
Android Enterprise work profiles
The APP-WE and the Android work profile deployment scenarios include the following key features important for
BYOD environments:
1. Protection and segregation of organization-managed data : Both solutions protect organization data
by enforcing data loss prevention (DLP) controls on organization-managed data. These protections prevent
accidental leaks of protected data, such as an end user accidentally sharing it to a personal app or account.
They also serve to ensure that a device accessing the data is healthy and not compromised.
2. End-user privacy : APP-WE and Android Enterprise work profiles separate end users content on the device,
and data managed by the mobile device management (MDM) administrator. In both scenarios, IT admins
enforce policies, such as PIN-only authentication on organization-managed apps or identities. IT admins are
unable to read, access, or erase data that's owned or controlled by end users.
Whether you choose APP-WE or Android Enterprise work profiles for your BYOD deployment depends on your
requirements and business needs. The goal of this article is to provide guidance to help you decide.
Deployment scenarios
This section describes the important characteristics of the APP-WE and Android Enterprise work profile deployment
scenarios.
APP-WE
An APP-WE (app protection policies without enrollment) deployment defines policies on apps, not devices. In this
scenario, devices typically aren't enrolled or managed by an MDM authority, such as Intune. To protect apps and
access to organizational data, administrators use APP-manageable apps, and apply data protection policies to these
apps.
This feature applies to:
Android 4.4 and later
TIP
For more information, see What are app protection policies?.
APP-WE scenarios are for end users who want a small organizational footprint on their devices, and don't want to
enroll in MDM. As an administrator, you still need to protect your data. These devices aren't managed. So common
MDM tasks and features, such as WiFi, device VPN, and certificate management, aren't part of this deployment
scenario.
Android Enterprise work profiles
Work profiles are the core Android Enterprise deployment scenario and the only scenario targeted at BYOD use
cases. The work profile is a separate partition created at the Android OS level that can be managed by Intune.
This feature applies to:
Android 5.0 and later devices with Google Mobile Services
A work profile includes the following features:
Traditional MDM functionality : Key MDM capabilities, such as app lifecycle management using managed
Google Play, is available in any Android Enterprise scenario. Managed Google Play provides a robust
experience to install and update apps without any user intervention. IT can also push app configuration
settings to organizational apps. It also doesn't require end users to allow installations from unknown
sources. Other common MDM activities, such as deploying certificates, configuring WiFi/VPNs, and setting
device passcodes are available with work profiles.
DLP on the work profile boundar y : Like APP-WE, IT can enforce data protection policies. With a work
profile, DLP policies are enforced at the work profile level, not the app level. For example, copy/paste
protection is enforced by the APP settings applied to an app, or enforced by the work profile. When the app
is deployed into a work profile, administrators can pause copy/paste protection to the work profile by
turning off this policy at the APP level.
Summary
Using Intune, both APP-WE and Android Enterprise work profiles are available for your Android BYOD program. To
choose APP-WE or work profiles depends upon your business and usage requirements. In summary, use work
profiles if you need MDM activities on managed devices, such as certificate deployment, app push, and so on. Use
APP-WE if you don't want or can't manage devices, and are using only Intune APP-enabled apps.
Next steps
Start using app protection policies, or enroll your devices.
How to use Intune in environments without Google
Mobile Services
9/4/2020 • 2 minutes to read • Edit Online
Microsoft Intune uses Google Mobile Services (GMS) to communicate with the Microsoft Intune company portal
when managing Android devices. In some cases, devices may temporarily or permanently not have access to GMS.
For example, a device might ship without GMS, or the device may be connecting to a closed network where GMS is
not available. This document summarizes the differences and limitations you may observe when installing and
using Intune to manage Android devices without GMS.
Install the Intune Company Portal app without access to the Google
Play Store
For users outside of People's Republic of China
If Google Play isn't available, Android devices can download theMicrosoft Intune Company Portal for Android and
sideload the app. When installed this way, the app doesn't receive updates or fixes automatically. You must be sure
to regularly update and patch the app manually.
For users in People's Republic of China
Because the Google Play Store is currently not available in People's Republic of China, Android devices must obtain
apps from Chinese app marketplaces. For more information, see Install the Company Portal app in People's
Republic of China.
Device compliance policies When creating or editing compliance policies for Android
device administrator, all options listed under Google Play
Protect are unavailable.
App protection policies (conditional launch) SafetyNet device attestation and Require threat scan
on apps device conditions cannot be used for conditional
launch.
Client apps Apps of type Android are not available. Use Line-of-
business app instead to deploy and manage apps.
Mobile Threat Defense Work with your MTD vendor to understand if their solution is
integrated with Intune, if it is available in the region of interest,
and if it relies on GMS.
Next steps
Assign apps to groups with Microsoft Intune
Frequently asked questions about MAM and app
protection
9/4/2020 • 22 minutes to read • Edit Online
This article provides answers to some frequently asked questions on Intune mobile application management
(MAM) and Intune app protection.
MAM Basics
What is MAM?
Intune mobile application management refers to the suite of Intune management features that lets you publish,
push, configure, secure, monitor, and update mobile apps for your users.
What are the benefits of MAM app protection?
MAM protects an organization's data within an application. With MAM without enrollment (MAM-WE), a work or
school-related app that contains sensitive data can be managed on almost any device, including personal devices in
bring-your-own-device (BYOD) scenarios. Many productivity apps, such as the Microsoft Office apps, can be
managed by Intune MAM. See the official list of Intune-managed apps available for public use.
What device configurations does MAM suppor t?
Intune MAM supports two configurations:
Intune MDM + MAM : IT administrators can only manage apps using MAM and app protection policies on
devices that are enrolled with Intune mobile device management (MDM). To manage apps using MDM +
MAM, customers should use the Microsoft Endpoint Manager admin center.
MAM without device enrollment : MAM without device enrollment, or MAM-WE, allows IT administrators
to manage apps using MAM and app protection policies on devices not enrolled with Intune MDM. This
means apps can be managed by Intune on devices enrolled with third-party EMM providers. To manage
apps using MAM-WE, customers should use the Microsoft Endpoint Manager admin center. Also, apps can
be managed by Intune on devices enrolled with third-party Enterprise Mobility Management (EMM)
providers or not enrolled with an MDM at all.
NOTE
The Outlook mobile app currently only supports Intune App Protection for Microsoft Exchange Online and Exchange
Server with hybrid modern authentication and does not support Exchange in Office 365 Dedicated.
What are the additional requirements to use the Word, Excel, and PowerPoint apps?
The end user must have a license for Microsoft 365 Apps for business or enterprise linked to their Azure
Active Directory account. The subscription must include the Office apps on mobile devices and can include a
cloud storage account with OneDrive for Business. Microsoft 365 licenses can be assigned in the Microsoft
365 admin center following these instructions.
The end user must have a managed location configured using the granular save as functionality under the
"Save copies of org data" application protection policy setting. For example, if the managed location is
OneDrive, the OneDrive app should be configured in the end user's Word, Excel, or PowerPoint app.
If the managed location is OneDrive, the app must be targeted by the app protection policy deployed to the
end user.
NOTE
The Office mobile apps currently only support SharePoint Online and not SharePoint on-premises.
NOTE
In order to verify the user's access requirements more often (i.e. PIN prompt), especially for a frequently used app, it is
recommended to reduce the value of the 'Recheck the access requirements after (minutes)' setting.
How does the Intune PIN work with built-in app PINs for Outlook and OneDrive?
The Intune PIN works based on an inactivity-based timer (the value of 'Recheck the access requirements
after (minutes)'). As such, Intune PIN prompts show up independently from the built-in app PIN prompts for
Outlook and OneDrive which often are tied to app launch by default. If the user receives both PIN prompts
at the same time, the expected behavior should be that the Intune PIN takes precedence.
Is the PIN secure?
The PIN serves to allow only the correct user to access their organization's data in the app. Therefore, an end
user must sign in with their work or school account before they can set or reset their Intune app PIN. This
authentication is handled by Azure Active Directory via secure token exchange and is not transparent to the
Intune App SDK. From a security perspective, the best way to protect work or school data is to encrypt it.
Encryption is not related to the app PIN but is its own app protection policy.
How does Intune protect the PIN against brute force attacks?
As part of the app PIN policy, the IT administrator can set the maximum number of times a user can try to
authenticate their PIN before locking the app. After the number of attempts has been met, the Intune App
SDK can wipe the "corporate" data in the app.
Why do I have to set a PIN twice on apps from same publisher?
MAM (on iOS/iPadOS) currently allows application-level PIN with alphanumeric and special characters
(called 'passcode') which requires the participation of applications (i.e. WXP, Outlook, Managed Browser,
Yammer) to integrate the Intune APP SDK for iOS/iPadOS. Without this, the passcode settings are not
properly enforced for the targeted applications. This was a feature released in the Intune SDK for
iOS/iPadOS v. 7.1.12.
In order to support this feature and ensure backward compatibility with previous versions of the Intune SDK
for iOS/iPadOS, all PINs (either numeric or passcode) in 7.1.12+ are handled separately from the numeric
PIN in previous versions of the SDK. Therefore, if a device has applications with Intune SDK for iOS/iPadOS
versions before 7.1.12 AND after 7.1.12 from the same publisher, they will have to set up two PINs.
That being said, the two PINs (for each app) are not related in any way i.e. they must adhere to the app
protection policy that's applied to the app. As such, only if apps A and B have the same policies applied (with
respect to PIN), user may setup the same PIN twice.
This behavior is specific to the PIN on iOS/iPadOS applications that are enabled with Intune Mobile App
Management. Over time, as applications adopt later versions of the Intune SDK for iOS/iPadOS, having to set
a PIN twice on apps from the same publisher becomes less of an issue. Please see the note below for an
example.
NOTE
For example, if app A is built with a version prior to 7.1.12 and app B is built with a version greater than or equal to
7.1.12 from the same publisher, the end user will need to set up PINs separately for A and B if both are installed on
an iOS/iPadOS device.
If an app C that has SDK version 7.1.9 is installed on the device, it will share the same PIN as app A.
An app D built with 7.1.14 will share the same PIN as app B.
If only apps A and C are installed on a device, then one PIN will need to be set. The same applies to if only apps B and
D are installed on a device.
NOTE
Wipe can only be achieved on devices enrolled with Intune mobile device management (MDM).
What is selective wipe for MDM?
See Remove devices - retire to read about removing company data.
What is selective wipe for MAM?
Selective wipe for MAM simply removes company app data from an app. The request is initiated using the
Microsoft Endpoint Manager admin center. To learn how to initiate a wipe request, see How to wipe only
corporate data from apps.
How quickly does selective wipe for MAM happen?
If the user is using the app when selective wipe is initiated, the Intune App SDK checks every 30 minutes for
a selective wipe request from the Intune MAM service. It also checks for selective wipe when the user
launches the app for the first time and signs in with their work or school account.
Why don't On-Premises (on-prem) ser vices work with Intune protected apps?
Intune app protection depends on the identity of the user to be consistent between the application and the Intune
App SDK. The only way to guarantee that is through modern authentication. There are scenarios in which apps may
work with an on-prem configuration, but they are neither consistent nor guaranteed.
Is there a secure way to open web links from managed apps?
Yes! The IT administrator can deploy and set app protection policy for the Microsoft Edge app. The IT administrator
can require all web links in Intune-managed apps to be opened using the Microsoft Edge app.
A new Google Play service determination will be reported to the IT admin at an interval determined by the Intune
service. How often the service call is made is throttled due to load, thus this value is maintained internally and is
not configurable. Any IT admin configured action for the Google SafetyNet Attestation setting will be taken based
on the last reported result to the Intune service at the time of conditional launch. If there is no data, access will be
allowed depending on no other conditional launch checks failing, and Google Play Service "roundtrip" for
determining attestation results will begin in the backend and prompt the user asynchronously if the device has
failed. If there is stale data, access will be blocked or allowed depending on the last reported result, and similarly, a
Google Play Service "roundtrip" for determining attestation results will begin and prompt the user asynchronously
if the device has failed.
Intune App Protection Policies provide the capability for admins to require end user devices to send
signals via Google's Verify Apps API for Android devices. How can an end user turn on the app scan
so that they are not blocked from access due to this?
The instructions on how to do this vary slightly by device. The general process involves going to the Google Play
Store, then clicking on My apps & games , clicking on the result of the last app scan which will take you into the
Play Protect menu. Ensure the toggle for Scan device for security threats is switched to on.
What does Google's SafetyNet Attestation API actually check on Android devices? What is the
difference between the configurable values of 'Check basic integrity' and 'Check basic integrity &
cer tified devices'?
Intune leverages Google Play Protect SafetyNet APIs to add to our existing root detection checks for unenrolled
devices. Google has developed and maintained this API set for Android apps to adopt if they do not want their apps
to run on rooted devices. The Android Pay app has incorporated this, for example. While Google does not share
publicly the entirety of the root detection checks that occur, we expect these APIs to detect users who have rooted
their devices. These users can then be blocked from accessing, or their corporate accounts wiped from their policy
enabled apps. 'Check basic integrity' tells you about the general integrity of the device. Rooted devices, emulators,
virtual devices, and devices with signs of tampering fail basic integrity. 'Check basic integrity & certified devices'
tells you about the compatibility of the device with Google's services. Only unmodified devices that have been
certified by Google can pass this check. Devices that will fail include the following:
Devices that fail basic integrity
Devices with an unlocked bootloader
Devices with a custom system image/ROM
Devices for which the manufacturer didn't apply for, or pass, Google certification
Devices with a system image built directly from the Android Open Source Program source files
Devices with a beta/developer preview system image
See Google's documentation on the SafetyNet Attestation for technical details.
There are two similar checks in the Conditional Launch section when creating an Intune App
Protection Policy for Android devices. Should I be requiring the 'SafetyNet device attestation' setting
or the 'jailbroken/rooted devices' setting?
Google Play Protect's SafetyNet API checks require the end user being online, atleast for the duration of the time
when the "roundtrip" for determining attestation results executes. If end user is offline, IT admin can still expect a
result to be enforced from the 'jailbroken/rooted devices' setting. That being said, if the end user has been offline
too long, the 'Offline grace period' value comes into play, and all access to work or school data is blocked once that
timer value is reached, until network access is available. Turning on both settings allows for a layered approach to
keeping end user devices healthy which is important when end users access work or school data on mobile.
The app protection policy settings that leverage Google Play Protect APIs require Google Play
Ser vices to function. What if Google Play Ser vices are not allowed in the location where the end user
may be?
Both the 'SafetyNet device attestation', and 'Threat scan on apps' settings require Google determined version of
Google Play Services to function correctly. Since these are settings that fall in the area of security, the end user will
be blocked if they have been targeted with these settings and are not meeting the appropriate version of Google
Play Services or have no access to Google Play Services.
App experience on iOS
What happens if I add or remove a fingerprint or face to my device?
Intune app protection policies allow control over app access to only the Intune licensed user. One of the ways to
control access to the app is to require either Apple's Touch ID or Face ID on supported devices. Intune implements a
behavior where if there is any change to the device's biometric database, Intune prompts the user for a PIN when
the next inactivity timeout value is met. Changes to biometric data include the addition or removal of a fingerprint,
or face. If the Intune user does not have a PIN set, they are led to set up an Intune PIN.
The intent of this is to continue keeping your organization's data within the app secure and protected at the app
level. This feature is only available for iOS/iPadOS, and requires the participation of applications that integrate the
Intune APP SDK for iOS/iPadOS, version 9.0.1 or later. Integration of the SDK is necessary so that the behavior can
be enforced on the targeted applications. This integration happens on a rolling basis and is dependent on the
specific application teams. Some apps that participate include WXP, Outlook, Managed Browser, and Yammer.
I am able to use the iOS share extension to open work or school data in unmanaged apps, even with
the data transfer policy set to "managed apps only" or "no apps." Doesn't this leak data?
Intune app protection policy cannot control the iOS share extension without managing the device. Therefore, Intune
encr ypts "corporate" data before it is shared outside the app . You can validate this by attempting to open
the "corporate" file outside of the managed app. The file should be encrypted and unable to be opened outside the
managed app.
How do multiple Intune app protection access settings that are configured to the same set of apps
and users work on iOS?
Intune app protection policies for access will be applied in a specific order on end user devices as they try to access
a targeted app from their corporate account. In general, a wipe would take precedence, followed by a block, then a
dismissible warning. For example, if applicable to the specific user/app, a minimum iOS/iPadOS operating system
setting that warns a user to update their iOS/iPadOS version will be applied after the minimum iOS/iPadOS
operating system setting that blocks the user from access. So, in the scenario where the IT admin configures the
min iOS/iPadOS operating system to 11.0.0.0 and the min iOS/iPadOS operating system (Warning only) to 11.1.0.0,
while the device trying to access the app was on iOS/iPadOS 10, the end user would be blocked based on the more
restrictive setting for min iOS/iPadOS operating system version that results in blocked access.
When dealing with different types of settings, an Intune App SDK version requirement would take precedence, then
an app version requirement, followed by the iOS/iPadOS operating system version requirement. Then, any
warnings for all types of settings in the same order are checked. We recommend the Intune App SDK version
requirement be configured only upon guidance from the Intune product team for essential blocking scenarios.
See also
Implement your Intune plan
Intune testing and validation
Android mobile app management policy settings in Microsoft Intune
iOS/iPadOS mobile app management policy settings
App protection policies policy refresh
Validate your app protection policies
Add app configuration policies for managed apps without device enrollment
How to get support for Microsoft Intune
Add apps to Microsoft Intune
9/4/2020 • 15 minutes to read • Edit Online
Before you can configure, assign, protect, or monitor apps, you must add them to Microsoft Intune.
The users of apps and devices at your company (your company's workforce) might have several app
requirements. Before adding apps to Intune and making them available to your workforce, you may find it
helpful to assess and understand a few app fundamentals. There are various types of apps that are available for
Intune. You must determine app requirements that are needed by the users at your company, such as the
platforms and capabilities that your workforce needs. You must determine whether to use Intune to manage the
devices (including apps) or have Intune manage the apps without managing the devices. Also, you must
determine the apps and capabilities that your workforce needs, and who needs them. The information in this
article helps you get started.
A P P T Y P ES IN STA L L AT IO N UP DAT ES
Apps from the store (store apps) Intune installs the app on the device. App updates are automatic.
Apps written in-house (line-of- Intune installs the app on the device You must update the app.
business) (you supply the installation file).
Apps that are built-in (built-in apps) Intune installs the app on the device. App updates are automatic.
Apps on the web (web link) Intune creates a shortcut to the web App updates are automatic.
app on the device home screen.
Apps from other Microsoft services Intune creates a shortcut to the app in App updates are automatic.
the Company Portal. For more
information, see App source setting
options.
Android store apps Store app Select Android as the app type , and
enter the Google Play store URL for
the app.
Android Enterprise apps Store app Select Android as the app type , and
enter the Managed Google Play store
URL for the app. 1
iOS/iPadOS store apps Store app Select iOS as the app type , search for
the app, and select the app in Intune.
A P P - SP EC IF IC T Y P E GEN ERA L T Y P E A P P - SP EC IF IC P RO C EDURES
Microsoft store apps Store app Select Windows as the app type , and
enter the Microsoft store URL for the
app.
Managed Google Play apps Store app Select Managed Google Play as the
app type , search for the app, and
select the app in Intune.
Microsoft 365 apps for Windows 10 Store app (Microsoft 365) Select Windows 10 under Microsoft
365 Apps as the app type , and then
select the Microsoft 365 app that you
want to install.
Microsoft 365 apps for macOS Store app (Microsoft 365) Select macOS under Microsoft 365
Apps as the app type , and then
select the Microsoft 365 app suite.
Microsoft Edge, version 77 and later Store app Select Windows 10 under Microsoft
for Windows 10 Edge, version 77 and later as the
app type .
Microsoft Edge, version 77 and later Store app Select macOS under Microsoft Edge,
for macOS version 77 and later as the app
type .
Android line-of-business (LOB) apps LOB app Select Line-of-business app as the
app type , select the App package
file , and then enter an Android
installation file with the extension .apk .
Built-in iOS/iPadOS app Built-in app Select Built-In app as the app type ,
and then select the built-in app in the
list of provided apps.
Built-in Android app Built-in app Select Built-In app as the app type ,
and then select the built-in app in the
list of provided apps.
Web apps Web app Select Web link as the app type , and
then enter a valid URL pointing to the
web app.
A P P - SP EC IF IC T Y P E GEN ERA L T Y P E A P P - SP EC IF IC P RO C EDURES
Android Enterprise system apps Store app Select Android Enterprise system
app as the app type , and then enter
the app name, publisher, and package
file.
Windows app (Win32) LOB app Select Windows app (Win32) as the
app type , select the App package
file , and then select an installation file
with the extension .intunewin .
1 Formore information about Android Enterprise and Android work profiles, see Understanding licensed apps
below.
You can add an app in Microsoft Intune by selecting Apps > All apps > Add . The Select app type pane is
displayed and allows you to select the App type .
TIP
An LOB app is one that you add from an app installation file. For example, to install an iOS/iPadOS LOB app, you add the
application by selecting Line-of-business app as the App type in the Select app type pane. You then select the app
package file (extension .ipa). These types of apps are typically written in-house.
NOTE
The file extensions for Windows apps include .msi, .appx, .appxbundle , .msix and .msixbundle .
IMPORTANT
If you change the name of the app through the Intune azure portal after you have deployed and installed the app, the app
will no longer be able to be targeted using commands.
Cloud storage space
All apps that you create by using the software installer installation type (for example, a line-of-business app) are
packaged and uploaded to Intune cloud storage. A trial subscription of Intune includes 2 gigabytes (GB) of cloud-
based storage that is used to store managed apps and updates. A full subscription does not limit the total
amount of storage space.
Requirements for cloud storage space are as follows:
All app installation files must be in the same folder.
The maximum file size for any file that you upload is 8 GB.
NOTE
Windows Line-of-business (LOB) apps, including Win32, Windows Universal AppX, Windows Universal AppX
bundle, Windows Universal MSI X, and Windows Universal MSI X bundle, have a maximum size limit of 8 GB per
app. All other LOB apps, including iOS/iPadOS LOB apps, have a maximum size limit of 2 GB per app.
NOTE
For the installation of a required non-Line-of-Business app, Intune will attempt to install the app by sending an install
command whenever the device checks-in, given that the app is not detected and the app's install state is not Install
Pending.
Uninstall an app
When you need to uninstall an app from user's devices, use the following steps.
1. Sign in to the Microsoft Endpoint Manager admin center.
2. Select Apps > All apps > the app > Assignments > Add group .
3. In the Add group pane, select Uninstall .
4. Select Included Groups to select the groups of users that are affected by this app assignment.
5. Select the groups that you want to apply the uninstall assignment.
6. Click Select on the Select groups pane.
7. Click OK on the Assign pane to set the assignment.
8. If you want to exclude any groups of users from being affected by this app assignment, select Exclude
Groups .
9. If you have chosen to exclude any groups, in Select groups , select Select .
10. Select OK in the Add group pane.
11. Select Save in the app Assignments pane.
IMPORTANT
To uninstall the app successfully, make sure to remove the members or group assignment for install before assigning them
to be uninstalled. If a group is assigned to both install an app and uninstall an app, the app will remain and not be
removed.
Next steps
To learn how to add apps for each platform to Intune, see:
Android store apps
Android LOB apps
iOS store apps
iOS LOB apps
macOS LOB apps
Web apps (for all platforms)
Microsoft store apps
Windows LOB app
Microsoft 365 apps for Windows 10
Microsoft 365 apps for macOS
Managed Google Play apps
Microsoft Edge for Windows 10
Microsoft Edge for macOS
Built-in apps
Android Enterprise system app
Win32 apps
Microsoft Intune protected apps
9/4/2020 • 23 minutes to read • Edit Online
The apps listed in this topic are supported partner and Microsoft apps that are commonly used with Microsoft
Intune. Intune protected apps are enabled with a rich set of mobile application protection policies. These apps
allow you to:
Restrict copy-and-paste and save-as functions
Configure web links to open inside the secure Microsoft browser
Enable multi-identity use and app-level Conditional Access
Apply data loss prevention policies without managing the user's device
Enable app protection without requiring enrollment
Enable app protection on devices managed with 3rd party EMM tools
NOTE
For your client line-of-business apps, you can incorporate mobile app management using the Intune App Software
Development Kit (SDK), or the App Wrapping Tool for iOS and the App Wrapping Tool for Android.
The following tables provide details of supported partner and Microsoft apps that are commonly used with
Microsoft Intune.
Microsoft apps
A P P STO RE L IN K S F O R SUP P O RT ED
A P P T IT L E A P P DESC RIP T IO N A N D IN F O RM AT IO N P L AT F O RM ( S)
Field Ser vice Mobile Dynamics 365 for Field Service provides Google Play link (Android), App Store
the cross-platform, multi-device Field link (iOS)
Service Mobile application that is
specifically crafted to the field service
worker's needs. Robust offline
capabilities allow field service workers
to continue accessing and interacting
with the data that they need when
visiting remote destinations without
internet connectivity. Field service
workers can keep the back-office
informed of work being performed in
the field by periodically synchronizing
data up to the server so that the
proper actions can be taken or kick-
started as appropriate. The mobile
application is entirely customizable and
extensible, allowing any organization to
brand the application as its own, define
what types of data field service workers
can access, and much more.
A P P STO RE L IN K S F O R SUP P O RT ED
A P P T IT L E A P P DESC RIP T IO N A N D IN F O RM AT IO N P L AT F O RM ( S)
Microsoft Azure Information Securely collaborate with others using Google Play link (Android), App Store
Protection Viewer the AIP Viewer App. View protected link (iOS)
files (rights protected email messages,
PDF files, pictures, text files) that
someone has shared with you.
Microsoft Cor tana Fast, easy and fun to stay on top of Google Play link (Android),
work & life with your personal assistant App Store link (iOS)
Cortana. Bring your smart digital
assistant to your phone to help keep
track of the important stuff wherever
you are, across your devices.
Microsoft Dynamics CRM Engage your customers while staying Google Play link (Android),
productive at work and on the go with App Store link (iOS)
Microsoft Dynamics CRM. Arrive
prepared for every appointment and
update notes, tasks, contacts, accounts,
cases, and leads while the details are
still fresh. Allows salespeople to
manage their sales data, guided by
contextual business process, while on
the go. Gives agents and supervisors
freedom of mobility with the full scope
of case management. Get a seamless
user experience in a 'configure once,
deploy everywhere' model. Available for
iOS/iPadOS and Android.
A P P STO RE L IN K S F O R SUP P O RT ED
A P P T IT L E A P P DESC RIP T IO N A N D IN F O RM AT IO N P L AT F O RM ( S)
Microsoft Edge Microsoft Edge creates one continuous Google Play link (Android),
browsing experience for Windows 10 App Store link (iOS)
users across their devices. Content and
data sync seamlessly in the
background, so users can browse
across devices, without skipping a beat.
Familiar Microsoft Edge features like the
Hub allow users to organize the web in
a way that cuts through the clutter,
making it easier to find, view and
manage their content on-the-go.
Microsoft Edge is designed for
Windows 10 users to browse the web
how they need to, wherever they are,
without disrupting their flow.
Microsoft Excel Make Excel spreadsheets look better Google Play link (Android),
than ever on your tablet and phone. Be App Store link (iOS)
confident that when you edit or create
spreadsheets, they'll look exactly how
you want across computers, Macs,
tablets, and phones. Be up and running
in no time with a familiar Office look
and feel, along with an intuitive touch
experience.
This app can be used as a multi-
identity app for Android and
iOS/iPadOS.
Power Automate Carry the full power of Power Google Play link (Android),
Automate in your pocket. With Power App Store link (iOS)
Automate, you can create automated
workflows between your favorite apps
and services to streamline your
business, save time, and work more
efficiently.
Microsoft Kaizala Microsoft Kaizala is a mobile app and Google Play link (Android),
service designed for large group App Store link (iOS)
communications and work
management. Kaizala makes it easy to
connect and coordinate work with your
entire value chain, including field
employees, vendors, partners, and
customers wherever they are.
A P P STO RE L IN K S F O R SUP P O RT ED
A P P T IT L E A P P DESC RIP T IO N A N D IN F O RM AT IO N P L AT F O RM ( S)
Microsoft Launcher Microsoft Launcher (formerly known as Google Play link (Android)
Arrow Launcher) can personalize your
Android device to match your style
with wallpapers, theme colors, icon
packs, and more. With a Microsoft
account or work/school account, you
can access your calendar, documents,
and recent activities in your
personalized feed. You can even open
photos, docs and webpages on your
Windows PC, to be productive across
all your devices.
Microsoft Office The Microsoft Office app combines the Google Play link (Android),
Word, Excel, and PowerPoint apps you App Store link (iOS)
know and rely on with new capabilities
that create a simpler, yet more powerful
Office experience on the go.
Microsoft OneDrive Get online storage for your work files Google Play link (Android),
to share and collaborate on them with App Store link (iOS)
other people at your work or school.
Plus, easily access your personal and
work files when you're on the go.
This app can be used as a multi-
identity app for Android and
iOS/iPadOS.
Microsoft OneNote Capture your thoughts, discoveries, Google Play link (Android),
and ideas with OneNote, your very App Store link (iOS)
own digital notebook. Seize that
moment of inspiration, take your class
notes, or track that list of errands that
are too important to forget. Whether
you're at home, in the office, or on the
go, your notes are available to you on
all your devices.
This app can be used as a multi-
identity app for Android and
iOS/iPadOS.
A P P STO RE L IN K S F O R SUP P O RT ED
A P P T IT L E A P P DESC RIP T IO N A N D IN F O RM AT IO N P L AT F O RM ( S)
Microsoft Outlook Get more done from anywhere with Google Play link (Android),
one unified view of your email, calendar, App Store link (iOS)
contacts, and attachments using this
free email app. Automatically extract
your most important messages—
across all your email accounts. Easily
view your calendar, share available
times, schedule meetings, and attach
files from email, OneDrive, or Dropbox
with just a few taps.
This app can be used as a multi-
identity app for Android and
iOS/iPadOS.
Microsoft Planner Take the chaos out of teamwork and Google Play link (Android),
get more done. Microsoft Planner App Store link (iOS/iPadOS)
makes it easy for your team to create
new plans, organize and assign tasks,
share files, chat about what you're
working on, and get updates on
progress.
Microsoft PowerApps PowerApps is a service that lets you Google Play link (Android),
build business apps that run in a App Store link (iOS/iPadOS)
browser or on a phone or tablet, and
no coding experience is required.
Microsoft Power BI Get live mobile access to your Google Play link (Android),
important business information with App Store link (iOS)
the Microsoft Power BI app. Easily view
and interact with your dashboards and
reports for all your business data.
Microsoft PowerPoint Make PowerPoint presentations look Google Play link (Android),
great on your tablet and phone. Be App Store link (iOS)
confident that when you edit or create
presentations, they'll look exactly how
you want across computers, Macs,
tablets, and phones. Be up and running
in no time with a familiar Office look
and feel, along with an intuitive touch
experience.
This app can be used as a multi-
identity app for Android and
iOS/iPadOS.
A P P STO RE L IN K S F O R SUP P O RT ED
A P P T IT L E A P P DESC RIP T IO N A N D IN F O RM AT IO N P L AT F O RM ( S)
Microsoft SharePoint Bring your company intranet in your Google Play link (Android),
pocket with on-the-go-access from the App Store link (iOS)
SharePoint mobile app. Get quick
access to your team sites, organization
portals and resources, and the people
you work with—both on-premises or
online in Microsoft 365.
Microsoft To-Do Microsoft To-Do is a simple and Google Play link (Android),
intelligent to-do list that makes it easy App Store link (iOS)
to plan your day. Whether it's for work,
school or home, To-Do will help you to
increase your productivity and decrease
your stress levels. It combines
intelligent technology and beautiful
design to empower you to create a
simple daily workflow.
Microsoft Skype for Business Get a single easy-to-use interface for Google Play link (Android),
any mobile device to access your App Store link (iOS)
favorite Skype features: voice and video
over wireless, rich presence, instant
messaging, conferencing, and calling.
Available for iOS/iPadOS and Android.
Microsoft Stream Microsoft Stream is your central Google Play link (Android),
destination for enterprise video content App Store link (iOS)
with built-in intelligence features, deep
integration across Microsoft 365, and
IT management and security
capabilities that businesses of all sizes
require.
With the Microsoft Stream mobile
app you can:
Find and engage with videos
you need fast with smart search
tools
Watch videos at your own
convenience by saving content
for offline viewing
Enjoy the best experience for
consuming Stream videos by
deep-linking into the app
Get the enterprise-level security
and compliance features you
expect from Office 365
This app requires an appropriate
commercial Microsoft 365
subscription. If you are not sure
about your organization's
subscription or the services you
have access to, please contact your
IT department. To learn more about
managing Microsoft Stream with
Intune, visit aka.ms/streamintune.
By downloading this app, you
agree to the license terms (see
aka.ms/eulastreamios) and privacy
terms (see aka.ms/privacy).
To learn more, please visit
aka.ms/microsoftstreamdocs.
For support or feedback, email us
at streamiosstore@microsoft.com.
Microsoft Teams Microsoft Teams is your chat-centered Google Play link (Android),
workspace in Microsoft 365. Instantly App Store link (iOS)
access all your team's content from a
single place where messages, files,
people and tools live together. Take it
with you on your favorite mobile
device.
A P P STO RE L IN K S F O R SUP P O RT ED
A P P T IT L E A P P DESC RIP T IO N A N D IN F O RM AT IO N P L AT F O RM ( S)
Microsoft Visio Viewer You can view and interact with Visio App Store link (iOS)
diagrams on iPhone on the go for free.
Sign in with your Microsoft Account or
open a Visio attachment from email,
and enjoy the amazing view of Visio
diagrams on any iPhone running iOS
9.0 or later. You can also share the
diagrams with anyone who can then
view Visio diagrams on their iPhone or
in a web browser even they don't have
Visio installed on their Windows
desktop.
Microsoft Whiteboard Microsoft Whiteboard app provides a App Store link (iOS)
freeform intelligent canvas where teams
can ideate, create, and collaborate
visually via the cloud. It enhances
teamwork by allowing all team
members to edit and comment directly
on the canvas in real time, no matter
where they are. And all your work stays
safe in the cloud, ready to be picked
back up from any device.
Microsoft Word Make Word documents look better Google Play link (Android),
than ever on your tablet and phone. Be App Store link (iOS)
confident that when you edit or create
documents, they'll look exactly how you
want across computers, Macs, tablets,
and phones. Be up and running in no
time with a familiar Office look and feel,
along with an intuitive touch
experience.
This app can be used as a multi-
identity app for Android and
iOS/iPadOS.
Microsoft Work Folders Allow individual employees to securely App Store link (iOS)
access their files from both inside and
outside the corporate environment
using Work Folders, a Windows Server
feature.
Yammer Break down organizational silos and Google Play link (Android),
facilitate team collaboration with App Store link (iOS)
Yammer. Connect to the right people in
your organization, share and search for
information across teams, and organize
around projects and ideas so you can
do more.
Partner apps
A P P STO RE L IN K S F O R SUP P O RT ED
A P P T IT L E A P P DESC RIP T IO N P L AT F O RM ( S)
Acronis Access Safely access your business files from App Store link (iOS)
anywhere and any device with Acronis
Access. Easily share documents with
colleagues, customers, and vendors
while keeping files and data secure and
private, where only you and your
organization can touch them. The app
is designed for extreme ease of use
with unparalleled security, privacy, and
management capabilities.
Adobe Acrobat Reader Open, view, and work with PDFs in a Google Play link (Android),
Microsoft Intune managed App Store link (iOS)
environment with Adobe Acrobat
Reader. Available for iOS/iPadOS and
Android.
Blackberr y Enterprise BRIDGE BlackBerry Enterprise BRIDGE allows Google Play link (Android),
you to securely view, edit, and save App Store link (iOS)
documents using Intune-managed
Microsoft apps, such as Microsoft
Word, Microsoft PowerPoint, and
Microsoft Excel from BlackBerry
Dynamics. You can share your
documents as email attachments and
maintain data encryption during the
document-sharing process between
BlackBerry Dynamics and Intune-
managed mobile apps.
A P P STO RE L IN K S F O R SUP P O RT ED
A P P T IT L E A P P DESC RIP T IO N P L AT F O RM ( S)
Bluejeans Video Conferencing BlueJeans delivers a premium video Google Play link (Android),
conferencing experience that is App Store link (iOS)
optimized for the mobile workforce.
With amazing features, like Dolby
Voice® audio, BlueJeans helps make
every meeting more productive
regardless of where the participants are
located.
Features:
Participate in BlueJeans video
meetings with up to 150
attendees.
Experience HD video and Dolby
Voice® audio for the highest
fidelity meetings.
Share and receive content for
maximum productivity on-the-
go.
Facilitate professional meetings
with intuitive controls that make
meeting moderation a breeze.
Integrate your calendar to
enable one touch to join and
easily jump from meeting-to-
meeting.
Eliminate low-bandwidth spots
with intelligent bandwidth
management that optimize
network settings.
Select safe driving mode while
on the road for distraction-free
meetings.
Board Papers Board Papers is a board portal solution App Store link (iOS)
that combines an iPad application with
Microsoft SharePoint® integration.
Breezy for Intune Breezy For Intune provides secure print App Store link (iOS)
capabilities for your iOS device. Our
integration with Intune ensures that
your data stays secure while on-device,
and own our end-to-end encryption
and enterprise grade security ensure
that it stays that way on its way to the
printer.
A P P STO RE L IN K S F O R SUP P O RT ED
A P P T IT L E A P P DESC RIP T IO N P L AT F O RM ( S)
Box for EMM Keep your employees connected and App Store link (iOS)
collaborative while you centrally
manage security, policy, and
provisioning across any mobile device
using Box for EMM.
CellTrust SL2™ for Microsoft CellTrust SL2™ for Microsoft Intune is Google Play link (Android),
Intune an enterprise-level application that App Store link (iOS)
works by assigning a secure Mobile
Business Number (MBN) on bring-
your-own devices to keep personal and
business communications separate on a
single device. The seamless solutions
secures SMS messages and business
calls on the device without using the
personal number. This capability is vital
for enterprises that require greater
security for business communications,
as well as archiving for eDiscovery and
compliance needs.
Cisco Jabber for Intune Cisco Jabber for Intune is for admins to Google Play link (Android),
organize and protect BYOD App Store link (iOS)
environments with mobile application
management (MAM). This app allows
admins to protect corporate data while
keeping employees connected.
Citrix Secure Mail Citrix Secure Mail is a containerized Google Play link (Android),
email, calendar, and contacts app with a App Store link (iOS)
rich user experience.
A P P STO RE L IN K S F O R SUP P O RT ED
A P P T IT L E A P P DESC RIP T IO N P L AT F O RM ( S)
Citrix ShareFile for Intune Protect corporate data while accessing Google Play link (Android),
and sharing files from ShareFile. It App Store link (iOS)
directly integrates with Microsoft Word,
Excel, and PowerPoint, to allow access
to files from ShareFile without ever
leaving your office application.
Egress Secure Mail for Intune Send and receive encrypted emails and Google Play link (Android)
files from your mobile device. Egress
Secure Email provides user-friendly
tools to secure sensitive data, with end-
to-end encryption, access revocation
and message restrictions to empower
users to stay in control of the
information they share.
The Egress Secure Email app
requires you to be a licensed user
of the Egress platform, with a valid
subscription and appropriate
infrastructure.
Hearsay Relate for Intune Hearsay Relate for Intune enables Google Play link (Android),
advisors to manage and nurture their App Store link (iOS)
book of business in a protected BYOD
environment with mobile application
management (MAM). This version of
Hearsay Relate allows IT administrators
to protect corporate data while keeping
advisors in touch with their book of
business.
iBabs for Intune ISEC7 Mobile Exchange Delegate allows App Store link (iOS)
authorized representatives via iPhone
and iPad to agree to appointments for
their colleagues, to manage their
contacts, and to answer emails on
behalf of other users.
ISEC7 MED for Intune Make your meetings simpler, more App Store link (iOS)
substantive, and more environmentally
friendly.
Lexmark Mobile Print Intune Mobile computing has become App Store link (iOS)
pervasive—it's simply a state of always
on, barrier-free connectedness that
entertains, enlightens and helps you
get more work done.
Meetio Enterprise Meetio's mobile app for organizations Google Play link (Android),
using Meetio room management App Store link (iOS)
solutions. Meetio Enterprise simplifies
your workday by allowing you to
schedule meetings and meeting rooms
- all at once, while you're on the go.
A P P STO RE L IN K S F O R SUP P O RT ED
A P P T IT L E A P P DESC RIP T IO N P L AT F O RM ( S)
Nine Work for Intune Nine is a full-fledged email application Google Play link (Android),
for Android based on Direct Push App Store link (iOS)
technology to synchronize with
Microsoft Exchange Server using
Microsoft Exchange ActiveSync, and
also designed for entrepreneurs or
ordinary people who want to have
efficient communication with their
colleagues, friends, and family members
at any time, anywhere.
Now ® Mobile - Intune Now employees can find answers and Google Play link (Android),
get work done across IT, HR, Facilities, App Store link (iOS)
Finance, Legal and other departments,
all from a modern mobile app powered
by the Now Platform® .
The Now Platform® delivers
employee experiences and
productivity through digital
workflows across departments,
systems and people.
Examples of things you can do in
the app:
IT: Request a laptop or a reset
password
Facilities: Find and book a
conference room
Finance: Request a corporate
credit card
Legal: Have a new vendor sign a
non-disclosure agreement
(NDA)
HR: Find the next company
holiday and check the vacation
policy
Now® Mobile powered by the
Now Platform® - finally work life
can be as great as real life
PrinterOn for Microsoft PrinterOn's wireless mobile printing Google Play link (Android),
solutions enable users to remotely print App Store link (iOS)
from anywhere at any time over a
secure network.
Qlik Sense Mobile Qlik Sense is a market leading, next Google Play link (Android),
generation application for self-service App Store link (iOS)
oriented analytics. Qlik's patented
associative technology allows people to
easily combine data from many
different sources and explore it freely,
without the limitations of query-based
tools.
A P P STO RE L IN K S F O R SUP P O RT ED
A P P T IT L E A P P DESC RIP T IO N P L AT F O RM ( S)
SAP Fiori Increase your daily productivity by App Store link (iOS)
tackling your most common business
tasks anywhere and anytime with the
SAP Fiori Client mobile app for iPhone
and iPad. Deliver a next-level mobile
experience with enhanced attachment
handling and full-screen operations
using this enhanced mobile runtime for
the Web version of over 750 SAP Fiori
app. Plus, access custom SAP Fiori
mobile apps—built by customers using
SAP Fiori mobile service—that are
ready to support Intune mobile app
management.
Ser viceNow ® Agent - Intune ServiceNow Mobile Agent app delivers Google Play link (Android),
out-of-the-box, mobile-first experiences App Store link (iOS)
for the most common service desk
agent workflows, making it easy for
agents to triage, act on and resolve
requests on the go. The app enables
service desk agents to promptly
manage and resolve end user issues
from their mobile devices. Agents use
the app’s intuitive interface to accept
and update work even without Internet
connectivity. The app greatly simplifies
work by leveraging native device
capabilities for tasks like navigation,
barcode scanning, or collecting a
signature.
Ser viceNow ® Onboarding - ServiceNow® Mobile Onboarding Google Play link (Android),
Intune empowers new hires to complete tasks, App Store link (iOS)
view content, and get help across
departments—including IT, HR,
Facilities, Finance, and Legal—all from a
single native mobile app.
Smar tcr ypt for Intune Smartcrypt for Intune is specifically App Store link (iOS)
designed for existing PKWARE
customers operating in an Intune
environment. Smartcrypt lets you get
your work done on the go. It's fast,
secure and simple to use so you can be
productive from anywhere. If you are
unsure if you have Smartcrypt please
contact your company's IT
administrator. With Smartcrypt, you
can: Encrypt and decrypt files using
Smartkeys, Decrypt archives with X.509
Digital Certificates, Create and manage
Smartkeys, Perform digital signing and
authentication of data with X.509
Digital Certificates, Encrypt and decrypt
files with Strong Passphrase encryption,
including AE2, Login with existing
Active Directory credentials, Create and
view unencrypted zip archives.
Smartcrypt armors data at its core,
eliminating vulnerabilities everywhere
data is used, shared or stored. For
nearly three decades, PKWARE has
provided encryption and compression
software to more than 30,000
enterprise customers and over 200
government agencies. Available for
iOS/iPadOS and Android.
Speaking Email Get more time in your day by having App Store link (iOS)
your email read to you on the move.
Voice commands and simple gestures
designed to be safe to use while driving
give you the ability to archive, flag or
even reply on the move.
Smart content detection skips over
disclaimers, reply headers, and
email signatures to speak only the
content without the clutter.
Employees can sign in via Intune to
access Microsoft 365 Exchange
email.
A P P STO RE L IN K S F O R SUP P O RT ED
A P P T IT L E A P P DESC RIP T IO N P L AT F O RM ( S)
Synergi Life Synergi Life Mobile App, an extension Google Play link (Android), App Store
of Synergi Life, lets users easily create link (iOS)
observations and incident reports
anytime and from anywhere, using
their phones to take a snapshot and
make a voice recording.
Synergi Life (previously named
Synergi) is a complete business
solution for risk and QHSE
management, managing all non-
conformances, incidents, risk, risk
analyses, audits, assessments and
improvement suggestions.
The Synergi Life Mobile App
requires you to be a licensed user
of the Synergi Life risk and QHSE
management system, and have the
necessary back-end licensed
software and services.
Tableau Mobile for Intune Tableau Mobile gives you the freedom App Store link (iOS)
to stay on top of your data, no matter
where you are or when you need it.
With a fast, intuitive, and interactive
experience, explore your dashboards
and find just what you’re looking for, all
from the convenience of your mobile
device.
The Tableau Mobile app requires a
Tableau Server or Tableau Online
account. Please note, it does not
work with Tableau Public.
Features:
Interactive previews let you
access your data even when
you’re offline.
Mark your favorite dashboards
or views to always have them at
your fingertips.
Scroll, search, and browse your
organization’s dashboards with
a navigation experience that’s
both intuitive and familiar.
Interact with your data to ask
and answer questions on the
go.
A P P STO RE L IN K S F O R SUP P O RT ED
A P P T IT L E A P P DESC RIP T IO N P L AT F O RM ( S)
Tact for Intune Tact for Intune is the first CRM and Google Play link (Android), App Store
Sales Assistant that unifies data from link (iOS)
Salesforce.com, email, calendar, maps
and other everyday tools into a
conversational, human-friendly
experience. Powered by AI, Tact
automates the administrative work for
the salesperson, unifies CRM with other
data sources to deliver a single pane of
glass, and pushes intelligence to each
seller in order to nudge them into
high-performance behavior. Enterprises
can now gain increased seller
productivity, richer customer data and
better CRM adoption while ensuring
enterprise-grade security at the
application layer with Tact for Intune.
Vera for Intune Encrypt, track, and revoke access to App Store link (iOS)
files and email attachments directly
from your mobile device with Vera for
Intune. Protect your most valuable
information, no matter what apps you
use: Microsoft, Box, Google, Dropbox,
and more.
Workspace ONE Send Workspace ONE Send provides Google Play link (Android),
seamless editing and sending App Store link (iOS)
capabilities for customers using
Microsoft Intune to manage Microsoft
365 apps using VMware productivity
apps.
Zero for Intune The ZERØ for Intune application is App Store link (iOS)
specifically designed for MDM
deployment via Microsoft Intune. This
app allows both ZERØ and Microsoft
Intune customers to take advantage of
a secure Intune MDM deployment, as
well as organize and protect BYOD
environments with mobile application
management (MAM).
Zoom for Intune Zoom is your communications hub for Google Play link (Android),
meetings, webinars, chat and cloud App Store link (iOS)
phone. Start or join meetings with
flawless video, crystal clear audio and
instant screen sharing from desktop,
mobile or conference rooms.
Next steps
To learn how to add apps for each platform to Intune, see:
Android store apps
Android LOB apps
iOS store apps
iOS LOB apps
Web apps (for all platforms)
Microsoft store apps
Windows LOB app
Microsoft 365 apps for Windows 10
Microsoft 365 apps for macOS
Built-in apps
Win32 apps
Add Android store apps to Microsoft Intune
9/4/2020 • 2 minutes to read • Edit Online
Before you assign an app to a device or a group of users, you must first add the app to Microsoft Intune.
Add an app
You can add an Android store app to Intune from the Azure portal by doing the following:
1. Sign in to the Microsoft Endpoint Manager admin center.
2. Select Apps > All apps > Add .
3. In the Select app type pane, under the available Store app types, select Android store app .
4. Click Select .
The Add app steps are displayed.
5. To configure the App information for the Android app, navigate to the Google Play store and search for the
app you want to deploy. Display the app page and make a note of the app details.
6. In the App information page, add the app details:
Name : Enter the name of the app as it is to be displayed in the company portal. Make sure that any app
name that you use is unique. If an app name is duplicated, only one name is displayed to users in the
company portal.
Description : Enter a description for the app. This description is displayed to users in the company
portal.
Publisher : Enter the name of the publisher of the app.
Appstore URL : Enter the app store URL of the app that you want to create. Use the URL of the app page
when the details of the app are displayed in the store.
Minimum operating system : In the list, select the earliest operating system version on which the app
can be installed. If you assign the app to a device with an earlier operating system, it will not be installed.
Categor y : Optionally, select one or more of the built-in app categories, or a category that you created.
Doing so makes it easier for users to find the app when they browse the company portal.
Show this as a featured app in the Company Por tal : Select this option to display the app suite
prominently on the main page of the company portal when users browse for apps. Applies to apps
deployed with Available intent.
Information URL : Optionally, enter the URL of a website that contains information about this app. The
URL is displayed to users in the company portal.
Privacy URL : Optionally, enter the URL of a website that contains privacy information for this app. The
URL is displayed to users in the company portal.
Developer : Optionally, enter the name of the app developer.
Owner : Optionally, enter a name for the owner of this app, for example, HR department.
Notes : Optionally, enter any notes that you want to associate with this app.
Logo : Optionally, upload an icon that will be associated with the app. This icon is displayed with the app
when users browse the company portal.
7. Click Next to display the Scope tags page.
8. Click Select scope tags to optionally add scope tags for the app. For more information, see Use role-based
access control (RBAC) and scope tags for distributed IT.
9. Click Next to display the Assignments page.
10. Select the group assignments for the app. For more information, see Add groups to organize users and devices.
11. Click Next to display the Review + create page. Review the values and settings you entered for the app.
12. When you are done, click Create to add the app to Intune.
The Over view blade of the app you've created is displayed.
Next steps
Assign apps to groups
Add iOS store apps to Microsoft Intune
9/4/2020 • 3 minutes to read • Edit Online
Use the information in this article to help you add iOS store apps to Microsoft Intune. iOS store apps are apps that
Intune installs on your users' devices. A user is part of your company's workforce. iOS store apps are automatically
updated.
NOTE
Although users of iOS/iPadOS devices can remove some built-in iOS/iPadOS apps, such as Stocks and Maps, you cannot use
Intune to redeploy those apps. If your users delete these apps, they must go to the App Store and manually reinstall them.
NOTE
When you work with Microsoft Intune, we recommend that you use either the Microsoft Edge or Google Chrome browser.
Next steps
Assign apps to groups
Add Windows Phone 8.1 store apps to Microsoft
Intune
9/4/2020 • 3 minutes to read • Edit Online
IMPORTANT
Windows 10 Mobile and Windows Phone 8.1 support has ended. Windows 10 Mobile and Windows Phone 8.1 enrollments
will fail and related apps can no longer be added to Intune. These profile types are being removed from the Intune UI.
Devices currently enrolled will stop syncing with the Intune service.
Existing policies and profiles on these platforms are becoming read-only, and can't be changed. You can remove assignments,
and then delete the policies and profiles.
If Windows Phone 8.1 or Windows 10 Mobile are being used, we recommend moving to Windows 10 devices. Windows 10
has built-in security and device features that have a first class integration with Microsoft Intune.
Before you assign an app to a device or a group of users, you must first add the app to Microsoft Intune.
Next steps
Assign apps to groups
Add Microsoft Store apps to Microsoft Intune
9/4/2020 • 2 minutes to read • Edit Online
Before you can assign, monitor, configure, or protect apps, you must add them to Intune.
IMPORTANT
Microsoft Store apps can only be assigned to groups with the assignment type Available for enrolled devices (users
install the app from the Company Portal app or website).
Next steps
Assign apps to groups
How to manage volume purchased apps from the
Microsoft Store for Business with Microsoft Intune
9/4/2020 • 4 minutes to read • Edit Online
The Microsoft Store for Business gives you a place to find and purchase apps for your organization, individually, or
in volume. By connecting the store to Microsoft Intune, you can manage volume-purchased apps from the Azure
portal. For example:
You can synchronize the list of apps you have purchased (or that are free) from the store with Intune.
Apps that are synchronized appear in the Intune administration console; you can assign these apps like any
other apps.
Both Online and Offline licensed versions of Apps are synchronized to Intune. App names will be appended with
"Online" or "Offline" in the portal.
You can track how many licenses are available, and how many are being used in the Intune administration
console.
Intune blocks assignment and installation of apps if there are an insufficient number of licenses available.
Apps managed by Microsoft Store for Business will automatically revoke licenses when a user leaves the
enterprise, or when the administrator removes the user and the user devices.
NOTE
If you disable access to the Store on managed devices (either manually, via policy or Group Policy), Online licensed apps will
fail to install.
NOTE
You could previously only associate one management tool to assign apps with the Microsoft Store for Business. You can now
associate multiple management tools with the store, for example, Intune and Configuration Manager.
You can now continue, and set up synchronization in the Intune console.
Configure synchronization
1. Sign in to the Microsoft Endpoint Manager admin center.
2. Select Tenant administration > Connectors and tokens > Microsoft Store for Business .
3. Click Enable .
4. If you haven't already done so, click the link to sign up for the Microsoft Store for Business and associate your
account as detailed previously.
5. From the Language drop-down list, choose the language in which apps from the Microsoft Store for Business
are displayed in the Azure portal. Regardless of the language in which they are displayed, they are installed in
the end user's language when available.
6. Click Sync to get the apps you've purchased from the Microsoft Store into Intune.
Synchronize apps
If you've already associated your Microsoft Store for Business account with your Intune admin credentials, you can
manually sync your Microsoft Store for Business apps with Intune using the following steps.
1. Select Tenant administration > Connectors and tokens > Microsoft Store for Business .
2. Click Sync to get the apps you've purchased from the Microsoft Store into Intune.
NOTE
Apps with encrypted app packages are currently not supported and will not be synchronized to Intune.
Assign apps
You assign apps from the store in the same way you assign any other Intune app. For more information, see How to
assign apps to groups with Microsoft Intune.
Offline apps can be targeted to user groups, device groups, or groups with users and devices. Offline apps can be
installed for a specific user on a device or for all users on a device.
When you assign a Microsoft Store for Business app, a license is used by each user who installs the app. If you use
all of the available licenses for an assigned app, you cannot assign any more copies. Take one of the following
actions:
Uninstall the app from some devices.
Reduce the scope of the current assignment, targeting only the users you have sufficient licenses for.
Buy more copies of the app from the Microsoft Store for Business.
Remove apps
To remove an app that is synced from the Microsoft Store for Business, you need to log into the Microsoft Store for
Business and refund the app. The process is the same whether the app is free or not. For a free app, the store will
refund $0. The example below shows a refund for a free app.
NOTE
Removing an app's visibility in the private store won't keep Intune from syncing the app. You must refund the app to fully
remove the app.
Next steps
Manage volume-purchased apps and books with Microsoft Intune
Add Managed Google Play apps to Android
Enterprise devices with Intune
9/4/2020 • 15 minutes to read • Edit Online
Managed Google Play is Google's enterprise app store and sole source of applications for Android Enterprise. You
can use Intune to orchestrate app deployment through Managed Google Play for any Android Enterprise scenario
(including work profile, dedicated, fully managed, and corporate-owned work profile enrollments). How you add
Managed Google Play apps to Intune differs from how Android apps are added for non-Android Enterprise. Store
apps, line-of-business (LOB) apps, and web apps are approved in or added to Managed Google Play, and then
synchronized into Intune so that they appear in the Client Apps list. Once they appear in the Client Apps list list,
you can manage assignment of any Managed Google Play app as you would any other app.
To make it easier for you to configure and use Android Enterprise management, upon connecting your Intune
tenant to Managed Google Play, Intune will automatically add four common Android Enterprise related apps to the
Intune admin console. The four apps are the following:
Microsoft Intune - Used for Android Enterprise fully managed scenarios. This app is automatically installed to
fully managed devices during the device enrollment process.
Microsoft Authenticator - Helps you sign-in to your accounts if you use two-factor verification. This app is
automatically installed to fully managed devices during the device enrollment process.
Intune Company Por tal - Used for App Protection Policies (APP) and Android Enterprise work profile
scenarios. This app is automatically installed to fully managed devices during the device enrollment process.
Managed Home Screen - Used for Android Enterprise dedicated multi-app kiosk scenarios. IT admins should
create an assignment to install this app on dedicated devices that are going to be used in multi-app kiosk
scenarios.
NOTE
When an end user enrolls their Android Enterprise fully managed device, the Intune Company Portal app is automatically
installed and the application icon may be visible to the end user. If the end user attempts to launch the Intune Company
Portal app, the end user will be redirected to the Microsoft Intune app and the Company Portal app icon will be
subsequently hidden.
NOTE
When you work with Microsoft Intune, we recommend that you use either the Microsoft Edge or Google Chrome browser.
NOTE
Your Intune tenant account must be connected to your Android Enterprise account to browse managed Google Play
store apps. For more information, see Connect your Intune account to your Managed Google Play account.
IMPORTANT
If you do not choose this option, you will need to manually approve any new permissions if the app developer
publishes an update. This will cause installations and updates of the app to stop until permissions are approved. For
this reason, it is recommended to select the option to automatically approve new permissions.
IMPORTANT
The information provided below is an alternative method to adding a Managed Google Play app using Intune as described
above.
1. Go to the Managed Google Play store. Sign in with the same account you used to configure the connection
between Intune and Android Enterprise.
2. Search the store and select the app you want to assign by using Intune.
3. On the page that displays the app, click Approve .
In the following example, the Microsoft Excel app has been chosen.
A window for the app opens asking you to give permissions for the app to perform various operations.
4. Select Approve to accept the app permissions and continue.
5. Select an option for handling new app permission requests, and then select Save .
The app is approved, and it is displayed in your IT admin console. Next, you can Sync the Android work
profile app with Intune.
NOTE
Your app's package name must be globally unique in Google Play (not just unique within your enterprise or Google
Play Developer account). Otherwise, you will receive the Upload a new APK file with a different package
name error.
8. Click Create .
9. Close the Managed Google Play pane if you are done adding apps.
10. Click Sync on the App app pane to sync with the Managed Google Play service.
NOTE
Private apps may take several minutes to become available to sync. If the app does not appear the first time you
perform a sync, wait a couple minutes and initiate a new sync.
For more information about Managed Google Play private apps including a FAQ, see Google's support article:
https://support.google.com/googleplay/work/answer/9146439
IMPORTANT
Private apps added using this method can never be made public. Only use this publishing option if you are sure that this
app will always be private to your organization.
Managed Google Play private (LOB ) app publishing using the Google Developer Console
1. Sign in to the Google Play Developer Console with the same account you used to configure the connection
between Intune and Android Enterprise.
If you are signing in for the first time, you must register and pay a fee to become a member of the Google
Developer program.
2. In the console, select Add new application .
3. You upload and provide information about your app in the same way as you publish any app to the Google
Play store. However, you must select Only make this application available to my organization
(< organization name >) .
This operation makes the app available only to your organization. It won't be available on the public Google
Play store.
For more information about uploading and publishing Android apps, see Google Developer Console Help.
4. After you've published your app, sign in to the Managed Google Play store with the same account that you
used to configure the connection between Intune and Android Enterprise.
5. In the Apps node of the store, verify that the app you've published is displayed.
The app is automatically approved to be synchronized with Intune.
NOTE
Web apps may take several minutes to become available to sync. If the app does not appear the first time you
perform a sync, wait a couple minutes and initiate a new sync.
NOTE
Only apps that have been assigned will show up in the Managed Google Play store for an end user. As such, this is a key
step for the admin to take when setting up apps with Managed Google Play.
NOTE
The Microsoft Intune app, the Microsoft Authenticator app, and the Company Portal app will be installed as required apps
onto all fully managed devices during onboarding. Having these apps automatically installed provides Conditional Access
support, and Microsoft Intune app users can see and resolve compliance issues.
NOTE
If an app is unapproved or deleted from the managed Google Play store, it will not be removed from the Intune client apps
list. This allows you to still target an uninstall policy to users even if the app is unapproved.
To turn off Android Enterprise enrollment and management, see Disconnect your Android Enterprise administrative account.
Next steps
Assign apps to groups
Add Microsoft 365 apps to Windows 10 devices with
Microsoft Intune
9/4/2020 • 13 minutes to read • Edit Online
Before you can assign, monitor, configure, or protect apps, you must add them to Intune. One of the available app
types is Microsoft 365 apps for Windows 10 devices. By selecting this app type in Intune, you can assign and install
Microsoft 365 apps to devices you manage that run Windows 10. You can also assign and install apps for the
Microsoft Project Online desktop client and Microsoft Visio Online Plan 2, if you own licenses for them. The
available Microsoft 365 apps are displayed as a single entry in the list of apps in the Intune console within Azure.
NOTE
Microsoft Office 365 ProPlus has been renamed to Microsoft 365 Apps for enterprise . In our documentation, we'll
commonly refer to it as Microsoft 365 Apps .
You must use Microsoft 365 Apps licenses to activate Microsoft 365 Apps apps deployed through Microsoft Intune.
Microsoft 365 Apps for business edition is supported by Intune, however you must configure the app suite of the Microsoft
365 Apps for business edition using XML data. For more information, see Configure app suite using XML data.
Devices to which you deploy these apps must be running the Windows 10 Creators Update or later.
Intune supports adding Office apps from the Microsoft 365 Apps suite only.
If any Office apps are open when Intune installs the app suite, the installation might fail, and users might lose
data from unsaved files.
This installation method is not supported on Windows Home, Windows Team, Windows Holographic, or
Windows Holographic for Business devices.
Intune does not support installing Microsoft 365 desktop apps from the Microsoft Store (known as Office
Centennial apps) on a device to which you have already deployed Microsoft 365 apps with Intune. If you install
this configuration, it might cause data loss or corruption.
Multiple required or available app assignments are not additive. A later app assignment will overwrite pre-
existing installed app assignments. For example, if the first set of Office apps contains Word, and the later one
does not, Word will be uninstalled. This condition does not apply to any Visio or Project applications.
Multiple Microsoft 365 deployments are not currently supported. Only one deployment will be delivered to the
device.
Office version - Choose whether you want to assign the 32-bit or 64-bit version of Office. You can install the
32-bit version on both 32-bit and 64-bit devices, but you can install the 64-bit version on 64-bit devices only.
Remove MSI from end-user devices - Choose whether you want to remove pre-existing Office .MSI apps
from end-user devices. The installation won't succeed if there are pre-existing .MSI apps on end-user devices.
The apps to be uninstalled are not limited to the apps selected for installation in Configure App Suite , as it
will remove all Office (MSI) apps from the end user device. For more information, see Remove existing MSI
versions of Office when upgrading toMicrosoft 365 Apps. When Intune reinstalls Office on your end user's
machines, end users will automatically get the same language packs that they had with previous .MSI Office
installations.
NOTE
The Product ID can either be Business ( O365BusinessRetail ) or Proplus ( O365ProPlusRetail ). However, you can
only configure the app suite of the Microsoft 365 Apps for business edition using XML data. Note that Microsoft
Office 365 ProPlus has been renamed to Microsoft 365 Apps for enterprise .
Step 4 - Assignments
1. Select the Required , Available for enrolled devices , or Uninstall group assignments for the app suite. For
more information, see Add groups to organize users and devices and Assign apps to groups with Microsoft
Intune.
2. Click Next to display the Review + create page.
Deployment details
Once the deployment policy from Intune is assigned to the target machines through Office configuration service
provider (CSP), the end device will automatically download the installation package from the
officecdn.microsoft.com location. You will see two directories appearing in the Program Files directory:
Under the Microsoft Office directory, a new folder is created where the installation files are stored:
Under the Microsoft Office 15 directory, the Office Click-to-Run installation launcher files are stored. The
installation will start automatically if the assignment type is required:
The installation will be in silent mode if the assignment of Microsoft 365 is configured as required. The
downloaded installation files will be deleted once the installation succeeded. If the assignment is configured as
Available , the Office applications will appear in the Company Portal application so that end-users can trigger the
installation manually.
Troubleshooting
Intune uses the Office Deployment Tool to download and deploy Office 365 ProPlus to your client computers using
the Office 365 CDN. Reference the best practices outlined in Managing Office 365 endpoints to ensure that your
network configuration permits clients to access the CDN directly rather than routing CDN traffic through central
proxies to avoid introducing unnecessary latency.
Run the Microsoft Support and Recovery Assistant for Microsoft 365 on a targeted device if you encounter
installation or run-time issues.
Additional troubleshooting details
When you are unable to install the Microsoft 365 apps to a device, you must identify whether the issue is Intune-
related or OS/Office-related. If you can see the two folders Microsoft Office and Microsoft Office 15 appearing in
the Program Files directory of the device, you can confirm that Intune has initiated the deployment successfully. If
you cannot see the two folders appearing under Program Files, you should confirm the below cases:
The device is properly enrolled into Microsoft Intune.
There is an active network connection on the device. If the device is in airplane mode, is turned off, or is in a
location with no service, the policy will not apply until network connectivity is established.
Both Intune and Microsoft 365 network requirements are met and the related IP ranges are accessible
based on the following articles:
Intune network configuration requirements and bandwidth
Office 365 URLs and IP address ranges
The correct groups have been assigned the Microsoft 365 app suite.
In addition, monitor the size of the directory C:\Program Files\Microsoft Office\Updates\Download. The installation
package downloaded from the Intune cloud will be stored in this location. If the size does not increase or only
increases very slowly, it is recommended to double-check the network connectivity and bandwidth.
Once you can conclude that both Intune and the network infrastructure work as expected, you should further
analyze the issue from an OS perspective. Consider the following conditions:
The target device must run on Windows 10 Creators Update or later.
No existing Office apps are opened while Intune deploys the applications.
Existing MSI versions of Office have been properly removed from the device. Intune utilizes Office Click-to-Run
which is not compatible with Office MSI. This behavior is further mentioned in this document:
Office installed with Click-to-Run and Windows Installer on same computer isn't supported
The sign-in user should have permission to install applications on the device.
Confirm there are no issues based on the Windows Event Viewer log Windows Logs -> Applications .
Capture Office installation verbose logs during the installation. To do this, follow these steps:
1. Activate verbose logging for Office installation on the target machines. To do this, run the following
command to modify the registry:
reg add HKLM\SOFTWARE\Microsoft\ClickToRun\OverRide /v LogLevel /t REG_DWORD /d 3
2. Deploy the Microsoft 365 Apps to the target devices again.
3. Wait approximately 15 to 20 minutes and go to the %temp% folder and the %windir%\temp folder,
sort by Date Modified , pick the {Machine Name}-{TimeStamp}.log files that are modified according to
your repro time.
4. Run the following command to disable verbose log:
reg delete HKLM\SOFTWARE\Microsoft\ClickToRun\OverRide /v LogLevel /f
The verbose logs can provide further detailed information on the installation process.
Uninstall effort when there -2147418113, 0x8000ffff or Error Code: 30088- Office Deployment Tool
is no active Click-to-Run 2147549183 1008Error Code: 30125-
installation 1011 (404)
Next steps
To assign the app suite to additional groups, see Assign apps to groups.
Assign Microsoft 365 to macOS devices with
Microsoft Intune
9/4/2020 • 3 minutes to read • Edit Online
This app type makes it easy for you to assign Microsoft 365 apps to macOS devices. By using this app type, you
can install Word, Excel, PowerPoint, Outlook, OneNote, and Teams. To help keep the apps more secure and up to
date, the apps come with Microsoft AutoUpdate (MAU). The apps that you want are displayed as one app in the list
of apps in the Intune console.
NOTE
Microsoft Office 365 ProPlus has been renamed to Microsoft 365 Apps for enterprise . In our documentation, we'll
commonly refer to it as Microsoft 365 Apps .
Step 3 - Assignments
1. Select the Required or Available for enrolled devices group assignments for the app suite. For more
information, see Add groups to organize users and devices and Assign apps to groups with Microsoft
Intune.
NOTE
You cannot uninstall the 'Microsoft 365 apps for macOS' app suite through Intune.
Next steps
To learn about adding Microsoft 365 apps to Windows 10 devices, see Assign Microsoft 365 Apps to Windows
10 devices with Microsoft Intune.
To learn about including and excluding app assignments from groups of users, see Include and exclude app
assignments.
Add Android Enterprise system apps to Microsoft
Intune
9/4/2020 • 2 minutes to read • Edit Online
Before you assign an app to a device or a group of users, you must first add the app to Microsoft Intune. System
apps are supported on Android Enterprise devices. You can enable a system app for Android Enterprise dedicated
devices, fully managed devices, or Android Enterprise corporate-owned with work profile.
NOTE
You will need to work with the OEM of your device to find the package name of the app you would like to enable/disable.
The app you've created is displayed in the apps list, where you can assign it to the groups that you select.
Android Enterprise system apps will enable or disable apps that are already part of the platform. To enable an app,
assign the system app as Required . To disable an app, assign the system app as Uninstall . System apps cannot be
assigned as available for a user.
Next steps
Assign apps to groups
Add web apps to Microsoft Intune
9/4/2020 • 4 minutes to read • Edit Online
Intune supports a variety of app types, including web apps. A web app is a client-server application. The server
provides the web app, which includes the UI, content, and functionality. Additionally, modern web-hosting
platforms commonly offer security, load balancing, and other benefits. A web app is separately maintained on the
web. You use Microsoft Intune to point to this app type. You also assign the groups of users that can access this
app.
Before you can manage and assign an app for your users, add the app to Intune.
Intune creates a shortcut to the web app on the user's device. For iOS/iPadOS devices, a shortcut to the web app is
added to the home screen. For Android Device Admin devices, a shortcut to the web app is added to the Intune
company portal widget and the widget needs to be pinned manually by the user. For Windows devices, a shortcut
to the web app is placed on the Start Menu.
NOTE
A browser must be installed on the user's device to launch web apps.
For Android Enterprise devices, see Managed Google Play web links.
For iOS devices, new web clips (pinned web apps) will open in Microsoft Edge instead of the Intune Managed Browser when
required to open in a protected browser. For older iOS web clips, you must retarget these web clips to ensure they open in
Microsoft Edge rather then the Managed Browser.
For legacy device admin Android devices, web links pinned through the Company Portal widget can only open with the
Intune Managed Browser if users' Company Portal version is older than 5.0.4737.0.
NOTE
If you change the name of the app through the Intune azure portal after you have deployed and installed the
app, the app will no longer be able to be targeted using commands.
Description : Enter a description for the app. This description is displayed to users in the company
portal.
Publisher : Enter the name of the publisher of this app.
App URL : Enter the URL of the website that hosts the app that you want to assign.
Categor y : Optionally, select one or more of the built-in app categories, or a category that you
created. Doing so makes it easier for users to find the app when they browse the company portal.
Show this as a featured app in the Company Por tal : Select this option to display the app suite
prominently on the main page of the company portal when users browse for apps.
Require a managed browser to open this link : Select this option to assign to your users a link to
a website or web app that they can open in the Intune managed browser. This browser must be
installed on their device.
Logo : Upload an icon that will be associated with the app. This icon is displayed with the app when
users browse the company portal.
6. Click Next to display the Scope tags page.
7. Click Select scope tags to optionally add scope tags for the app. For more information, see Use role-based
access control (RBAC) and scope tags for distributed IT.
8. Click Next to display the Assignments page.
9. Select the group assignments for the app. For more information, see Add groups to organize users and
devices.
10. Click Next to display the Review + create page. Review the values and settings you entered for the app.
11. When you are done, click Create to add the app to Intune.
The Over view blade of the app you've created is displayed.
NOTE
Currently, deployment of Intune web apps to iOS/iPadOS devices is associated with the management profile and cannot be
removed manually. You can change the deployment type to Uninstall in the Intune portal, at which point the web app can
be removed automatically. However, if you remove the deployment before changing the app assignment intent to Uninstall,
the web app will be permanently in place on the device until the device is un-enrolled from Intune.
End-users can launch web apps directly from the Windows Company Portal app by selecting the web app and then
choosing the option Open in browser . The published web URL is opened directly in the web browser.
Next steps
The app that you've created is displayed in the apps list, where you can assign it to the groups that you select. For
help, see Assign apps to groups.
Add built-in apps to Microsoft Intune
9/4/2020 • 3 minutes to read • Edit Online
The built-in app type makes it easy for you to assign curated managed apps, such as Microsoft 365 apps, to
iOS/iPadOS and Android devices. You can assign specific apps for this app type, such as Excel, OneDrive, Outlook,
Skype, and others. After you add an app, the app type is displayed as either Built-in iOS app or Built-in Android app.
By using the built-in app type, you can choose which of these apps to publish to device users.
In earlier versions of the Intune console, Intune provided several default managed Microsoft 365 apps, such as
Outlook and OneDrive. The app types for these managed apps were tagged as Managed iOS Store App or
Managed Android App. Instead of using these app types, we recommend that you use the built-in app type. By
using the built-in app type, you have the additional flexibility to edit and delete Microsoft 365 apps.
NOTE
Default Microsoft 365 apps that are tagged as Managed iOS Store and Managed Android App are removed from the app list
when all assignments are deleted.
Next steps
You can now assign the apps to the groups that you choose. For more information, see Assign apps to groups.
Add an Android line-of-business app to Microsoft
Intune
9/4/2020 • 4 minutes to read • Edit Online
A line-of-business (LOB) app is an app that you add to Intune from an app installation file. This kind of app is
typically written in-house. Intune installs the LOB app on the user's device.
NOTE
For more information about LOB apps and the Google Play Developer Console, see Managed Google Play private (LOB) app
publishing using the Google Developer Console.
NOTE
For Android for Work devices, see Add Managed Google Play apps to Android Enterprise devices with Intune.
Step 3 - Assignments
1. Select the Required , Available for enrolled devices , or Uninstall group assignments for the app. For more
information, see Add groups to organize users and devices and Assign apps to groups with Microsoft Intune.
2. Click Next to display the Review + create page.
NOTE
For the Intune service to successfully deploy a new APK file to the device, you must increment the android:versionCode
string in the AndroidManifest.xml file in your APK package.
Next steps
The app that you created appears in the list of apps. You can now assign it to groups that you choose. For
help, see How to assign apps to groups.
Learn more about the ways in which you can monitor the properties and assignment of your app. See How
to monitor app information and assignments.
Learn more about the context of your app in Intune. See Overview of device and app lifecycles.
Add an iOS line-of-business app to Microsoft Intune
9/4/2020 • 5 minutes to read • Edit Online
Use the information in this article to help you add an iOS line-of-business (LOB) app to Microsoft Intune. A line-of-
business (LOB) app is an app that you add to Intune from an IPA app installation file. This kind of app is typically
written in-house. You will first need to join the iOS Developer Enterprise Program. For more information about
how to do this see Apple's website.
NOTE
Users of iOS devices can remove some of the built-in iOS apps, like Stocks and Maps. You cannot use Intune to redeploy
these apps. If users delete these apps, they must go to the app store and manually reinstall them.
iOS LOB apps have a maximum size limit of 2 GB per app.
NOTE
Bundle identifiers (for example, com.contoso.app) are meant to be unique identifiers of an app. For example, to install a beta
version of an LOB app next to the production version for testing purposes, the beta version must have a different unique
identifier (for example, com.contoso.app-beta). Otherwise, the beta version will overlap with the production and be treated
as an upgrade. Renaming the .ipa file has no effect on this behavior.
Step 3 - Assignments
1. Select the Required , Available for enrolled devices , Available with or without enrollment , or
Uninstall group assignments for the app. For more information, see Add groups to organize users and devices
and Assign apps to groups with Microsoft Intune.
2. Click Next to display the Review + create page.
NOTE
Provisioning profiles for iOS LOB apps have a 30 day notice before they will expire.
NOTE
For the Intune service to successfully deploy a new IPA file to the device, you must increment the CFBundleVersion string
in the Info.plist file in your IPA package.
Next steps
The app that you created appears in the list of apps. You can now assign it to groups that you choose. For
help, see How to assign apps to groups.
Learn more about the ways in which you can monitor the properties and assignment of your app. See How
to monitor app information and assignments.
Learn more about the context of your app in Intune. See Overview of device and app lifecycles.
Add a Windows Phone line-of-business app to
Microsoft Intune
9/4/2020 • 4 minutes to read • Edit Online
IMPORTANT
Windows 10 Mobile and Windows Phone 8.1 support has ended. Windows 10 Mobile and Windows Phone 8.1 enrollments
will fail and related apps can no longer be added to Intune. These profile types are being removed from the Intune UI.
Devices currently enrolled will stop syncing with the Intune service.
Existing policies and profiles on these platforms are becoming read-only, and can't be changed. You can remove assignments,
and then delete the policies and profiles.
If Windows Phone 8.1 or Windows 10 Mobile are being used, we recommend moving to Windows 10 devices. Windows 10
has built-in security and device features that have a first class integration with Microsoft Intune.
Use the information in this article to add a Windows Phone line-of-business (LOB) app to Microsoft Intune. An LOB
app is an app that you add to Intune from an app installation file. This kind of app is typically written in-house.
Intune installs the LOB app on the user's device.
Step 3 - Assignments
1. Select the Required , Available for enrolled devices , or Uninstall group assignments for the app. For more
information, see Add groups to organize users and devices and Assign apps to groups with Microsoft Intune.
2. Click Next to display the Review + create page.
Next steps
The app that you created appears in the list of apps. You can now assign it to groups that you choose. For
help, see How to assign apps to groups.
Learn more about the ways in which you can monitor the properties and assignment of your app. See How
to monitor app information and assignments.
Learn more about the context of your app in Intune. See Overview of device and app lifecycles.
Add a Windows line-of-business app to Microsoft
Intune
9/4/2020 • 5 minutes to read • Edit Online
A line-of-business (LOB) app is one that you add from an app installation file. This kind of app is typically written
in-house. The following steps provide guidance to help you add a Windows LOB app to Microsoft Intune.
IMPORTANT
When deploying Win32 apps using an installation file with the .msi extension (packaged in an .intunewin file using the
Content Prep Tool), consider using Intune Management Extension. If you mix the installation of Win32 apps and line-of-
business apps during AutoPilot enrollment, the app installation may fail.
NOTE
The file extensions for Windows apps include .msi, .appx, .appxbundle , .msix, and .msixbundle . For more
information about .msix, see MSIX documentation and MSIX App Distribution.
3. When you're finished, select OK on the App package file pane to add the app.
Set app information
1. In the App information page, add the details for your app. Depending on the app that you chose, some of the
values in this pane might be automatically filled in.
Name : Enter the name of the app as it appears in the company portal. Make sure all app names that you
use are unique. If the same app name exists twice, only one of the apps appears in the company portal.
Description : Enter the description of the app. The description appears in the company portal.
Publisher : Enter the name of the publisher of the app.
App Install Context : Select the install context to be associated with this app. For dual mode apps, select
the desired context for this app. For all other apps, this is pre-selected based on the package and cannot
be modified.
Ignore app version : Set to Yes if the app developer automatically updates the app. This option applies
to mobile .msi apps only.
Command-line arguments : Optionally, enter any command-line arguments that you want to apply to
the .msi file when it runs. An example is /q . Do not include the msiexec command or arguments, such as
/i or /x , as they are automatically used. For more information, see Command-Line Options. If the .MSI
file needs additional command-line options consider using Win32 app management.
Categor y : Select one or more of the built-in app categories, or select a category that you created.
Categories make it easier for users to find the app when they browse through the company portal.
Show this as a featured app in the Company Por tal : Display the app prominently on the main
page of the company portal when users browse for apps.
Information URL : Optionally, enter the URL of a website that contains information about this app. The
URL appears in the company portal.
Privacy URL : Optionally, enter the URL of a website that contains privacy information for this app. The
URL appears in the company portal.
Developer : Optionally, enter the name of the app developer.
Owner : Optionally, enter a name for the owner of this app. An example is HR depar tment .
Notes : Enter any notes that you want to associate with this app.
Logo : Upload an icon that is associated with the app. This icon is displayed with the app when users
browse through the company portal.
2. Click Next to display the Scope tags page.
Step 3 - Assignments
1. Select the Required , Available for enrolled devices , or Uninstall group assignments for the app. For more
information, see Add groups to organize users and devices and Assign apps to groups with Microsoft Intune.
2. Click Next to display the Review + create page.
NOTE
For the Intune service to successfully deploy a new APPX file to the device, you must increment the Version string in the
AppxManifest.xml file in your APPX package.
Next steps
The app that you created appears in the list of apps. You can now assign it to groups that you choose. For
help, see How to assign apps to groups.
Learn more about the ways in which you can monitor the properties and assignment of your app. See How
to monitor app information and assignments.
Learn more about the context of your app in Intune. See Overview of the app lifecycle in Microsoft Intune.
Learn more about Win32 apps. See Win32 app management.
Sign line-of-business apps so they can be deployed
to Windows devices with Intune
9/4/2020 • 7 minutes to read • Edit Online
As an Intune administrator, you can deploy line-of-business (LOB) Universal apps to Windows 8.1 Desktop or
Windows 10 Desktop & Mobile devices, including the Company Portal app. To deploy .appx apps to Windows 8.1
Desktop or Windows 10 Desktop & Mobile devices you can use code-signing certificate from a public certification
authority already trusted by your Windows devices, or you can use your own certificate authority.
NOTE
Windows 8.1 Desktop requires either an enterprise policy to enable sideloading or the use of Sideloading Keys (automatically
enabled for domain-joined devices). For more information, see Windows 8 sideloading.
Windows 10 sideloading
In Windows 10, sideloading is different than in earlier versions of Windows:
You can unlock a device for sideloading using an enterprise policy. Intune provides a device config policy
called "Trusted app installation". Setting this to is all that is needed for devices that already trust the
certificate used to sign the appx app.
Symantec Phone certificates and Sideloading License keys are not required. However if an on-premise
certificate authority is not available then you may need to obtain a code signing certificate from a public
certification authority. For more information, see Introduction to Code Signing.
Code sign your app
The first step is to code sign your appx package. For details, see Sign app package using SignTool.
Upload your app
Next, you must upload the signed appx file. For details, see Add a Windows line-of-business app to Microsoft
Intune.
If you deploy the app as required to users or devices then you do not need the Inutne Company Portal app.
However if you deploy the app as available to users, then they can either use the Company Portal app from the
Public Microsoft Store, use the Company Portal app from the Private Microsoft Store for Business, or you will need
to sign and manually deploy the Intune Company Portal app.
Upload the code -signing certificate
If your Windows 10 device does not already trust the certificate authority, then after you have signed your appx
package and uploaded it to the Intune service, you need to upload the code signing certificate to the Intune portal:
1. Sign in to the Microsoft Endpoint Manager admin center.
2. Click Tenant administration > Connectors and tokens > Windows enterprise cer tificates .
3. Select a file under Code-signing cer tificate file .
4. Select your .cer file and click Open .
5. Click Upload to add your certificate file to Intune.
Now any Windows 10 Desktop & Mobile device with an appx deployment by the Intune service will automatically
download the corresponding enterprise certificate and the application will be allowed to launch after installation.
Intune only deploys the latest .cer file that was uploaded. If you have multiple appx files created by different
developers that are not associated with your organization, then you will need to either have them provide unsigned
appx files for signing with your certificate, or provide them the code signing certificate used by your organization.
NOTE
This option will require deploying manual updates each time an app update is released.
1. Sign in to your account in the Microsoft Store for Business and acquire the offline license version of the
Company Portal app.
2. Once the app has been acquired, select the app in the Inventor y page.
3. Select Windows 10 all devices as the Platform , then the appropriate Architecture and download. An
app license file is not needed for this app.
4. Download all the packages under "Required Frameworks". This must be done for x86, x64, ARM, and ARM64
architectures – resulting in a total of 9 packages as shown below.
5. Before uploading the Company Portal app to Intune, create a folder (e.g., C:\Company Portal) with the
packages structured in the following way:
a. Place the Company Portal package into C:\Company Portal. Create a Dependencies subfolder in this
location as well.
PA RA M ET ER DESC RIP T IO N
Win81Appx The path to where the Windows 8.1 Company Portal (.APPX)
file is located.
SdkPath The path to the root folder of the Windows SDK for Windows
10. This argument is optional and defaults to
${env:ProgramFiles(x86)}\Windows Kits\10
The script will output the signed version of the Windows 10 Company Portal app when it has finished running. You
can then deploy the signed version of the app as an LOB app via Intune, which will upgrade the currently deployed
versions to this new app.
How to add macOS line-of-business (LOB) apps to
Microsoft Intune
9/4/2020 • 6 minutes to read • Edit Online
Use the information in this article to help you add macOS line-of-business apps to Microsoft Intune. You must
download an external tool to pre-process your .pkg files before you can upload your line-of-business file to
Microsoft Intune. The pre-processing of your .pkg files must take place on a macOS device.
NOTE
Starting with the release of macOS Catalina 10.15, prior to adding your apps to Intune, check to make sure your macOS LOB
apps are notarized. If the developers of your LOB apps did not notarize their apps, the apps will fail to run on your users'
macOS devices. For more information about how to check if an app is notarized, visit Notarize your macOS apps to prepare
for macOS Catalina.
NOTE
While users of macOS devices can remove some of the built-in macOS apps like Stocks, and Maps, you cannot use Intune to
redeploy those apps. If end users delete these apps, they must go to the app store, and manually re install them.
IMPORTANT
The .pkg file must be signed using "Developer ID Installer" certificate, obtained from an Apple Developer account. Only .pkg
files may be used to upload macOS LOB apps to Microsoft Intune. However, conversion of other formats, such as .dmg to
.pkg is supported. For more information about converting non-pkg application types, see How to deploy DMG or APP-
format apps to Intune-managed Macs.
NOTE
The Intune App Wrapping Tool for Mac must be run on a macOS machine.
IMPORTANT
Ensure that the argument <source_file> does not contain spaces before running the IntuneAppUtil
commands.
IntuneAppUtil -h
This command will show usage information for the tool.
IntuneAppUtil -c <source_file> -o <output_directory_path> [-v]
This command will wrap the .pkg LOB app file provided in <source_file> to a .intunemac file of the
same name and place it in the folder pointed to by <output_directory_path> .
IntuneAppUtil -r <filename.intunemac> [-v]
This command will extract the detected parameters and version for the created .intunemac file.
Step 3 - Assignments
1. Select the Required , Available for enrolled devices , or Uninstall group assignments for the app. For more
information, see Add groups to organize users and devices and Assign apps to groups with Microsoft Intune.
2. Click Next to display the Review + create page.
NOTE
If the .pkg file contains multiple apps or app installers, then Microsoft Intune will only report that the app is successfully
installed when all installed apps are detected on the device.
Next steps
The app you have created is displayed in the apps list. You can now assign it to the groups you choose. For
help, see How to assign apps to groups.
Learn more about the ways in which you can monitor the properties and assignment of your app. For more
information, see How to monitor app information and assignments.
Learn more about the context of your app in Intune. For more information, see Overview of device and app
lifecycles
Intune Standalone - Win32 app management
9/4/2020 • 25 minutes to read • Edit Online
Intune standalone now allows greater Win32 app management capabilities. While it is possible for cloud
connected customers to use Configuration Manager for Win32 app management, Intune-only customers will have
greater management capabilities for their Win32 line-of-business (LOB) apps. This topic provides an overview of
the Intune Win32 app management feature and troubleshooting information.
NOTE
This app management capability supports both 32-bit and 64-bit operating system architecture for Windows applications.
IMPORTANT
When deploying Win32 apps, consider using the Intune Management Extension approach exclusively, particularly when you
have a multi-file Win32 app installer. If you mix the installation of Win32 apps and line-of-business apps during AutoPilot
enrollment, the app installation may fail. The Intune management extension is installed automatically when a PowerShell
script or Win32 app is assigned to the user or device.
Prerequisites
To use Win32 app management, be sure you meet the following criteria:
Windows 10 version 1607 or later (Enterprise, Pro, and Education versions)
Windows 10 client needs to be:
Devices must be joined to Azure AD and auto-enrolled. The Intune management extension supports
Azure AD joined, hybrid domain joined, group policy enrolled devices are supported.
NOTE
For the group policy enrolled scenario - The end user uses the local user account to AAD join their Windows 10
device. The user must log onto the device using their AAD user account and enroll into Intune. Intune will install the
Intune Management extension on the device if a PowerShell script or a Win32 app is targeted to the user or device.
IMPORTANT
The Microsoft Win32 Content Prep Tool zips all files and subfolders when it creates the .intunewin file. Be sure to keep the
Microsoft Win32 Content Prep Tool separate from the installer files and folders, so that you don't include the tool or other
unnecessary files and folders in your .intunewin file.
You can download the Microsoft Win32 Content Prep Tool from GitHub as a zip file. The zipped file contains a
folder named Microsoft-Win32-Content-Prep-Tool-master . The folder contains the prep tool, the license, a
readme, and the release notes.
Process flow to create .intunewin file
-h Help
-c <setup_folder> Folder for all setup files. All files in this folder will be
compressed into .intunewin file.
-q Quiet mode
Example commands
EXA M P L E C O M M A N D DESC RIP T IO N
IntuneWinAppUtil -h This command will show usage information for the tool.
EXA M P L E C O M M A N D DESC RIP T IO N
IntuneWinAppUtil -c c:\testapp\v1.0 -s This command will generate the .intunewin file from the
c:\testapp\v1.0\setup.exe -o c:\testappoutput\v1.0 -
q
specified source folder and setup file. For the MSI setup file,
this tool will retrieve required information for Intune. If -q is
specified, the command will run in quiet mode, and if the
output file already exists, it will be overwritten. Also, if the
output folder does not exist, it will be created automatically.
When generating an .intunewin file, put any files you need to reference into a subfolder of the setup folder. Then,
use a relative path to reference the specific file you need. For example:
Setup source folder : c:\testapp\v1.0
License file: c:\testapp\v1.0\licenses\license.txt
Refer to the license.txt file by using the relative path licenses\license.txt.
IMPORTANT
Be sure to use the latest version of the Microsoft Win32 Content Prep Tool. If you don't use the latest version, you
will see a warning indicating that the app was packaged using an older version of the Microsoft Win32 Content Prep
Tool.
Step 2: Program
1. In the Program page, configure the app installation and removal commands for the app:
Install command : Add the complete installation command line to install the app.
For example, if your app filename is MyApp123 , add the following:
msiexec /p "MyApp123.msp"
And, if the application is ApplicationName.exe , the command would be the application name followed
by the command arguments (switches) supported by the package.
For example:
ApplicationName.exe /quiet
In the above command, the ApplicationName.exe package supports the /quiet command argument.
For the specific arguments supported by the application package, contact your application vendor.
IMPORTANT
Admins must be careful when they utilize the command tools. Unexpected or harmful commands may be
passed using the the install and uninstall command field.
Uninstall command : Add the complete uninstall command line to uninstall the app based on the
app's GUID.
For example:
msiexec /x "{12345A67-89B0-1234-5678-000001000000}"
Step 3: Requirements
1. In the Requirements page, specify the requirements that devices must meet before the app is installed:
Operating system architecture : Choose the architectures need to install the app.
Minimum operating system : Select the minimum operating system needed to install the app.
Disk space required (MB) : Optionally, add the free disk space needed on the system drive to install
the app.
Physical memor y required (MB) : Optionally, add the physical memory (RAM) required to install the
app.
Minimum number of logical processors required : Optionally, add the minimum number of logical
processors required to install the app.
Minimum CPU speed required (MHz) : Optionally, add the minimum CPU speed required to install
the app.
Configure additional requirement rules :
a. Click Add to display the Add a Requirement rule pane and configure additional requirement
rules. Select the Requirement type to choose the type of rule that you will use to determine how
a requirement is validated. Requirement rules can be based on file system information, registry
values, or PowerShell scripts.
File : When you choose File as the Requirement type , the requirement rule must detect a
file or folder, date, version, or size.
Path – The full path of the folder containing the file or folder to detect.
File or folder - The file or folder to detect.
Proper ty – Select the type of rule used to validate the presence of the app.
Associated with a 32-bit app on 64-bit clients - Select Yes to expand any path
environment variables in the 32-bit context on 64-bit clients. Select No (default) to
expand any path variables in the 64-bit context on 64-bit clients. 32-bit clients will
always use the 32-bit context.
Registr y : When you choose Registr y as the Requirement type , the requirement rule
must detect a registry setting based on value, string, integer, or version.
Key path – The full path of the registry entry containing the value to detect.
Value name - The name of the registry value to detect. If this value is empty, the
detection will happen on the key. The (default) value of a key will be used as
detection value if the detection method is other than file or folder existence.
Registr y key requirement – Select the type of registry key comparison used to
determine how the requirement rule is validated.
Associated with a 32-bit app on 64-bit clients - Select Yes to search the 32-bit
registry on 64-bit clients. Select No (default) search the 64-bit registry on 64-bit
clients. 32-bit clients will always search the 32-bit registry.
Script : Choose Script as the Requirement type , when you cannot create a requirement
rule based on file, registry, or any other method available to you in the Intune console.
Script file – For PowerShell script based requirement rule, if exist code is 0, we will
detect the STDOUT in more detail. For example, we can detect STDOUT as an integer
that has a value of 1.
Run script as 32-bit process on 64-bit clients - Select Yes to run the script in a
32-bit process on 64-bit clients. Select No (default) to run the script in a 64-bit
process on 64-bit clients. 32-bit clients run the script in a 32-bit process.
Run this script using the logged on credentials : Select Yes to run the script
using the signed in device credentials**.
Enforce script signature check - Select Yes to verify that the script is signed by a
trusted publisher, which will allow the script to run with no warnings or prompts
displayed. The script will run unblocked. Select No (default) to run the script with
end-user confirmation without signature verification.
Select output data type : Select the data type used when determining a
requirement rule match.
b. When you're finished setting the requirement rules, select OK .
2. Click Next to display the Detection rules page.
Manually configure detection rules - You can select one of the following rule types:
a. MSI – Verify based on MSI version check. This option can only be added once. When you
choose this rule type, you have two settings:
MSI product code – Add a valid MSI product code for the app.
MSI product version check – Select Yes to verify the MSI product version in addition to
the MSI product code.
b. File – Verify based on file or folder detection, date, version, or size.
Path – The full path of the folder containing the file or folder to detect.
File or folder - The file or folder to detect.
Detection method – Select the type of detection method used to validate the presence of
the app.
Associated with a 32-bit app on 64-bit clients - Select Yes to expand any path
environment variables in the 32-bit context on 64-bit clients. Select No (default) to expand
any path variables in the 64-bit context on 64-bit clients. 32-bit clients will always use the
32-bit context.
Examples of file-based detection
a. Check for file existence.
b. Check for folder existence.
Use a custom detection script – Specify the PowerShell script that will be used to detect this app.
a. Script file – Select a PowerShell script that will detect the presence of the app on the client.
The app will be detected when the script both returns a 0 value exit code and writes a string
value to STDOUT.
b. Run script as 32-bit process on 64-bit clients - Select Yes to run the script in a 32-bit
process on 64-bit clients. Select No (default) to run the script in a 64-bit process on 64-bit
clients. 32-bit clients run the script in a 32-bit process.
c. Enforce script signature check - Select Yes to verify that the script is signed by a trusted
publisher, which will allow the script to run with no warnings or prompts displayed. The script
will run unblocked. Select No (default) to run the script with end-user confirmation without
signature verification.
Intune agent checks the results from the script. It reads the values written by the script to the
standard output (STDOUT) stream, the standard error (STDERR) stream, and the exit code. If
the script exits with a nonzero value, the script fails and the application detection status is not
installed. If the exit code is zero and STDOUT has data, the application detection status is
Installed.
NOTE
Microsoft recommends encoding your script as UTF-8. When the script exits with the value of 0, the
script execution was success. Second output channel indicates app was detected - STDOUT data
indicates that the app was found on the client. We do not look for a particular string from STDOUT.
2. Once you have added your rule(s), select Next to display the Dependencies page.
Step 5: Dependencies
App dependencies are applications that must be installed before your Win32 app can be installed. You can require
that other apps are installed as dependencies. Specifically, the device must install the dependent app(s) before it
installs the Win32 app. There is a maximum of 100 dependencies, which includes the dependencies of any
included dependencies, as well as the app itself. You can add Win32 app dependencies only after your Win32 app
has been added and uploaded to Intune. Once your Win32 app has been added, you'll see the Dependencies
option on the pane for your Win32 app.
Any Win32 app dependency needs to be also be a Win32 app. It does not support depending on other app types,
such as single MSI LOB apps or Store apps.
When adding an app dependency, you can search based on the app name and publisher. Additionally, you can sort
your added dependencies based on app name and publisher. Previously added app dependencies cannot be
selected in the added app dependency list.
You can choose whether or not to install each dependent app automatically. By default, the Automatically install
option is set to Yes for each dependency. By automatically installing a dependent app, even if the dependent app is
not targeted to the user or device, Intune will install the app on the device to satisfy the dependency before
installing your Win32 app. It's important to note that a dependency can have recursive sub-dependencies, and
each sub-dependency will be installed before installing the main dependency. Additionally, installation of
dependencies does not follow an install order at a given dependency level.
Select the dependencies
In the Dependencies page, select applications that must be installed before your Win32 app can be installed:
1. Click Add to display the Add dependency pane.
2. Once you have added the dependent app(s), click Select .
3. Choose whether to automatically install the dependent app by selecting Yes or No under the Automatically
Install column.
4. Click Next to display the Scope tags page.
Understand additional dependency details
The end user will see Windows Toast Notifications indicating that dependent apps are being downloaded and
installed as part of the Win32 app installation process. Additionally, when a dependent app is not installed, the end
user will commonly see one of the following notifications:
1 or more dependent apps failed to install
1 or more dependent app requirements not met
1 or more dependent apps are pending a device reboot
If you choose not to Automatically install a dependency, the Win32 app installation will not be attempted.
Additionally, app reporting will show that the dependency was flagged as failed and also provide a failure
reason. You can view the dependency installation failure by clicking on a failure (or warning) provided in the Win
32 app installation details.
Each dependency will adhere to Intune Win32 app retry logic (try to install 3 times after waiting for 5 minutes) and
the global re-evaluation schedule. Also, dependencies are only applicable at the time of installing the Win32 app
on the device. Dependencies are not applicable for uninstalling a Win32 app. To delete a dependency, you must
click on the ellipses (three dots) to the left of the dependent app located at the end of the row of the dependency
list.
Step 7 - Assignments
You can select the Required , Available for enrolled devices , or Uninstall group assignments for the app. For
more information, see Add groups to organize users and devices and Assign apps to groups with Microsoft Intune.
1. For the specific app, select an assignment type:
Required : The app is installed on devices in the selected groups.
Available for enrolled devices : Users install the app from the Company Portal app or Company
Portal website.
Uninstall : The app is uninstalled from devices in the selected groups.
2. Click Add group and assign the groups that will use this app.
3. In the Select groups pane, select to assign based on users or devices.
4. After you have selected your groups, you can also set End user notifications , Availability , and Installation
deadline . For more information, see Set Win32 app availability and notifications.
5. If you want to exclude any groups of users from being affected by this app assignment, select Included under
the MODE column. The Edit assignment pane will be displayed. You can set the mode from being Included
to being Excluded . Click OK to close the Edit assignment pane.
6. In the App settings section, select the Deliver y optimization priority for the app. This setting will
determine how the app content will be downloaded. You can choose to download the app content in
background mode or foreground mode based on assignment.
7. Once you have completed setting the assignments for the apps, click Next to display the Review + create
page.
Delivery Optimization
Windows 10 1709 and above clients will download Intune Win32 app content using a delivery optimization
component on the Windows 10 client. Delivery optimization provides peer-to-peer functionality that it is turned on
by default. You can configure the Delivery Optimization agent to download Win32 app content either in
background or foreground mode based on assignment. Delivery optimization can be configured by group policy
and via Intune Device configuration. For more information, see Delivery Optimization for Windows 10.
NOTE
You can also install a Microsoft Connected Cache server on your Configuration Manager distribution points to cache Intune
Win32 app content. For more information, see Microsoft Connected Cache in Configuration Manager - Support for Intune
Win32 apps.
The following image notifies the end user that app changes are being made to the device.
Additionally, the Company Portal app shows additional app installation status messages to end users. The
following conditions apply to Win32 dependency features:
App failed to install. Dependencies defined by the admin were not met.
App installed successfully but requires a restart.
App is in the process of installing, but requires a restart to continue.
IMPORTANT
The Restar t grace period setting in the Assignment section is only available when the Device restar t behavior of the
Program section is set to either of the following options:
Determine behavior based on return codes
Intune will force a mandator y device restar t
Set the app availability based on a date and time for a required app using the following steps:
1. Sign in to the Microsoft Endpoint Manager admin center.
2. Select Apps > All apps .
3. Select an existing Windows app (Win32) from the list.
4. From the app pane, select Proper ties > Edit next to the Assignments section > Add group below the
Required assignment type. Note that app availability can be set based on the assignment type. The
Assignment type can be Required , Available for enrolled devices , or Uninstall .
5. Select a group in the Select group pane to specify which group of users will be assigned the app.
NOTE
Assignment type options included the following:
Required : You can choose to make this app required for all users and/or make this app required on all
devices .
Available for enrolled devices : You can choose to make Make this app available to all users with
enrolled devices .
Uninstall: You can choose to *uninstall this app for all users and/or uninstall this app for all devices .
6. To modify the End user notification options select Show all toast notifications .
7. In the Edit assignment pane, set the Ender user notifications to Show all toast notifications . Note
that you can set End user notifications to Show all toast notifications , Show toast notifications for
computer restar ts , or Hide all toast notifications .
8. Set the App availability to A specific date and time and select your date and time. This date and time
specifies when the app is downloaded to the end users device.
9. Set the App installation deadline to A specific date and time and select your date and time. This date
and time specifies when the app is installed on the end users device. When more than one assignment is
made for the same user or device, the app installation deadline time is picked based on the earliest time
possible.
10. Click Enabled next to the Restar t grace period . The restart grace period starts as soon as the app install
has been completed on the device. When disabled, the device can restart without warning.
You can customize the following options:
Device restar t grace period (minutes) : The default value is 1440 minutes (24 hours). This value can
be a maximum of 2 weeks.
Select when to display the restar t countdown dialog box before the restar t occurs
(minutes) : The default value is 15 minutes.
Allow user to snooze the restar t notification : You can choose Yes or No .
Select the snooze duration (minutes) : The default value is 240 minutes (4 hours). The snooze
value cannot be more than reboot grace period.
11. Click Review + save .
NOTE
Intune management extension installed Win32 apps will not be uninstalled on unenrolled devices. Admins can leverage
assignment exclusion to not offer Win32 apps to BYOD Devices.
In the above PowerShell command, replace the <path to binary file> string with the path to your Win32 app file.
An example path would be similar to the following:
C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\ssms.exe
Also, replace the <file version of successfully detected file> string with the file version that you need to detect.
An example file version string would be similar to the following:
2019.0150.18118.00 ((SSMS_Rel).190420-0019)
If you need to get the version information of your Win32 app, you can use the following PowerShell command:
[System.Diagnostics.FileVersionInfo]::GetVersionInfo("<path to binary file>").FileVersion
In the above PowerShell command, replace <path to binary file> with your file path.
Additional troubleshooting areas to consider
Check targeting to make sure agent is installed on the device - Win32 app targeted to a group or PowerShell
Script targeted to a group will create agent install policy for security group.
Check OS Version – Windows 10 1607 and above.
Check Windows 10 SKU - Windows 10 S, or Windows versions running with S-mode enabled, do not support
MSI installation.
For more information about troubleshooting Win32 apps, see Win32 app installation troubleshooting. For
information about app types on ARM64 devices, see App types supported on ARM64 devices.
Next steps
For more information about adding apps to Intune, see Add apps to Microsoft Intune.
Enable Win32 apps on S mode devices
9/4/2020 • 5 minutes to read • Edit Online
Windows 10 S mode is a locked-down operating system that only runs Store apps. By default, Windows S mode
devices do not allow installation and execution of Win32 apps. These devices include a a single Win 10S base
policy, which locks the S mode device from running any Win32 apps on it. However, by creating and using an S
mode supplemental policy in Intune, you can install and run Win32 apps on Windows 10 S mode managed
devices. By using the Microsoft Defender Application Control (WDAC) PowerShell tools, you can create one or more
supplemental policies for Windows S mode. You must sign the supplemental policies with the Device Guard
Signing Service (DGSS) or with SignTool.exe and then upload and distribute the policies via Intune. As an
alternative, you can sign the supplemental policies with a codesigning certificate from your organization, however
the preferred method is to use DGSS. In the instance that you use the codesigning certificate from your
organization, the root certificate that the codesigning certificate chains up to, must be present on the device.
IMPORTANT
Device Guard Signing Service v2 will be available for consumption starting mid-September 2020, and you will have until the
end of December 2020 to transition to DGSS v2. At the end of December 2020, the existing web-based mechanisms for the
current version of the DGSS service will be retired and will no longer be available for use. You must make plans to migrate to
the new version of the service between September and December 2020. For more information, please contact
DGSSMigration@Microsoft.com.
By assigning the S mode supplemental policy in Intune, you enable the device to make an exception to the device's
existing S mode policy, which allows the uploaded corresponding signed app catalog. The policy sets an allow list
of apps (the app catalog) that can be used on the S mode device.
NOTE
Win32 apps on S mode devices are only supported on Windows 10 November 2019 Update (build 18363) or later versions.
The steps to allow Win32 apps to run on a Windows 10 device in S mode are the following:
1. Enable S mode devices through Intune as part of Windows 10 S enrollment process.
2. Create a supplemental policy to allow Win32 apps:
You can use Microsoft Defender Application Control (WDAC) tools to create a supplemental policy. The
base policy Id within the policy must match the S mode base policy Id (which is hard coded on the client).
Also, make sure that the policy version is higher than the previous version.
You use DGSS to sign your supplemental policy. For more information, see Sign code integrity policy with
Device Guard signing.
You upload the signed supplemental policy to Intune by creating a Windows 10 S mode supplemental
policy (see below).
3. You allow Win32 app catalogs through Intune:
You create catalog files (1 for every app) and signs them using DGSS or other certificate infrastructure.
You package the signed catalog into the .intunewin file using the Microsoft Win32 Content Prep Tool.
There are no naming restrictions when creating a catalog file using the Microsoft Win32 Content Prep
Tool. When generating the .intunewin file from the specified source folder and setup file, you can provide
a separate folder containing only catalog files by using the -a cmdline option. For more information, see
Win32 app management - Prepare the Win32 app content for upload.
Intune applies the signed app catalog to install the Win32 app on the S mode device using the Intune
Management Extension.
NOTE
Line-of-business (LOB) .appx and .appx bundles on Windows 10 S mode will be supported via Microsoft Store for
Business (MSFB) signing.
S mode supplemental policy for apps must be delivered via Intune Management Extension.
S mode policies are enforced at the device level. Multiple targeted policies will be merged on the device. The merged policy
will be enforced on the device.
VA L UE DESC RIP T IO N
Policy file The the file that contains the WDAC policy.
Next steps
For more information, see Win32 apps on s mode.
For more information about adding apps to Intune, see Add apps to Microsoft Intune.
For more information about Win32 apps, see Intune Win32 app management.
Add and assign the Windows 10 Company Portal app
for Autopilot provisioned devices
9/4/2020 • 2 minutes to read • Edit Online
To manage devices and install apps, your users can use the Company Portal app. You can assign the Windows 10
Company Portal app directly from Intune.
Prerequisites
For Windows 10 Autopilot provisioned devices, it is recommended that you associate your Microsoft Store for
Business account with Intune. For more information, see How to manage volume purchased apps from the
Microsoft Store for Business with Microsoft Intune.
You can choose to install the Company Por tal (Offline) app using the steps below. The Company Portal app will
be installed in device context when assigned to the Autopilot group and will be installed on the device before the
user logs in.
Next steps
To learn more about assigning apps, see Assign apps to groups.
Add the Windows 10 Company Portal app by using
Microsoft Intune
9/4/2020 • 5 minutes to read • Edit Online
To manage devices and install apps, your users can install the Company Portal app themselves from the Microsoft
Store. If your business needs require that you assign the Company Portal app to them, however, you can assign the
Windows 10 Company Portal app directly from Intune. You can do so even if you haven't integrated Intune with the
Microsoft Store for Business.
IMPORTANT
If you download the Company Portal app, the option described in this article requires that you assign manual updates each
time an app update is released. To deploy the Company Portal app for Windows 10 Autopilot provisioned devices, see Add
Windows 10 Company Portal app Autopilot devices.
NOTE
The Company Portal supports Configuration Manager applications. This feature allows end users to see both Configuration
Manager and Intune deployed applications in the Company Portal for co-managed customers. This new version of the
Company Portal will display Configuration Manager deployed apps for all co-managed customers. This support will help
administrators consolidate their different end user portal experiences. For more information, see Use the Company Portal app
on co-managed devices.
NOTE
If the dependencies are not added, the app might not install on the specified device types.
10. Click Ok , enter any desired App Information , and click Add .
11. Assign the Company Portal app as a required app to your selected set of user or device groups.
For more information about how Intune handles dependencies for Universal apps, see Deploying an appxbundle
with dependencies via Microsoft Intune MDM.
PA RA M ET ER DESC RIP T IO N
Win81Appx The path to the Windows 8.1 Company Portal (.APPX) file.
SdkPath The path to the root folder of the Windows SDK for Windows
10. This argument is optional and defaults to
${env:ProgramFiles(x86)}\Windows Kits\10.
When the script has finished running, it outputs the signed version of the Windows 10 Company Portal app. You
can then assign the signed version of the app as a line-of-business (LOB) app via Intune, which upgrades the
currently assigned versions to this new app.
Next steps
Assign apps to groups
Add the macOS Company Portal app
9/4/2020 • 2 minutes to read • Edit Online
To manage devices, install optional apps, and gain access to resources protected by Conditional Access on macOS
devices with user affinity, users must install and sign in to the Company Portal app. You can provide instructions to
your users to install Company Portal for macOS or install it on devices already enrolled directly from Intune.
You can use any of the following options to install the Company Portal for macOS app:
Instruct users to download and install Company Portal
Install Company Portal for macOS as a macOS LOB app
Install Company Portal for macOS by using a macOS Shell Script
To help keep the apps more secure and up to date once installed, the Company Portal app comes with Microsoft
AutoUpdate (MAU).
NOTE
The Company Portal app can only be installed automatically on devices using Intune that are already enrolled using direct
enrolment or Automated Device Enrolment. For personal device or manual enrolment, the Company Portal app must be
downloaded and installed to initiate enrollment. See Instruct users to download and install Company Portal.
NOTE
Once installed, the Company Portal for macOS app will automatically update using Microsoft AutoUpdate (MAU).
NOTE
The script will require Internet access when it runs to download the current version of the Company Portal for macOS.
Next steps
To learn more about assigning apps, see Assign apps to groups.
To learn more about configuring Automated Device Enrollment, see Device Enrollment Program - Enroll macOS.
To learn more about configuring Microsoft AutoUpdate settings on macOS, see Mac Updates.
Add Microsoft Edge for Windows 10 to Microsoft
Intune
9/4/2020 • 6 minutes to read • Edit Online
Before you can deploy, configure, monitor, or protect apps, you must add them to Intune. One of the available app
types is Microsoft Edge version 77 and later. By selecting this app type in Intune, you can assign and install
Microsoft Edge version 77 and later to devices you manage that run Windows 10.
IMPORTANT
This app type offers stable, beta, and dev channels for Windows 10. The deployment is in English (EN) only, however end
users can change the display language in the browser under Settings > Languages . Microsoft Edge is a Win32 app
installed in system context and on like architectures (x86 app on x86 OS, and x64 app on x64 OS). Intune will detect any
preexisting Microsoft Edge installations. If it is installed in user context, a system installation will overwrite it. If it is installed in
system context, installation success is reported. In addition, automatic updates of Microsoft Edge are On by default.
NOTE
Microsoft Edge version 77 and later is available for macOS as well.
You cannot use the built-in application deployment of Microsoft Edge for workplace join computers. Built-in application
deployment requires the Intune management extension, which only exists for AAD joined devices. You can still deploy
Microsoft Edge version 77 and later using an .msi uploaded to Apps , see Add a Windows line-of-business app to Microsoft
Intune.
Prerequisites
Windows 10 version 1709 or later.
Any pre-installed versions of Microsoft Edge version 77 and later for all channels in user context will be
overwritten with Edge installed in system context.
NOTE
The Microsoft Edge browser logo is displayed with the app when users browse the company portal.
3. Select OK .
NOTE
Currently, if you unassign the deployment of Microsoft Edge, it will remain on the device.
NOTE
The app is uninstalled from devices in the selected groups if Intune has previously installed the application onto the
device via an Available for enrolled devices or Required assignment using the same deployment.
4. Select Included Groups to select the groups of users that are affected by this app assignment.
5. Select the groups that you want to apply the uninstall assignment.
6. Click Select on the Select groups pane.
7. Click OK on the Assign pane to set the assignment.
8. If you want to exclude any groups of users from being affected by this app assignment, select Exclude
Groups .
9. If you have chosen to exclude any groups, in Select groups , select Select .
10. Select OK in the Add group pane.
11. Select Save in the app Assignments pane.
IMPORTANT
To uninstall the app successfully, make sure to remove the members or group assignment for install before assigning them to
be uninstalled. If a group is assigned to both install an app and uninstall an app, the app will remain and not be removed.
Troubleshooting
Microsoft Edge version 77 and later for Windows 10:
Intune uses the Intune management extension to download and deploy the Microsoft Edge installer to assigned
Windows 10 devices, then communicates the deployment settings to the Microsoft Edge installer, which downloads
and installs the Microsoft Edge browser directly from the CDN. Reference the prerequisites for the Intune
management extension, and the best practices outlined in accessing Azure Update Service and the CDN to ensure
that your network configuration permits Windows 10 devices to access these locations. In addition, to allow access
to installation files from a CDN to install the browser, you need to allow access to Windows Update endpoints. For
more information, see Manage connection endpoints for Windows 10, version 1809 – Windows Update and
Network endpoints for Microsoft Intune.
Next steps
Assign apps to groups
Add Microsoft Edge to macOS devices using
Microsoft Intune
9/4/2020 • 4 minutes to read • Edit Online
Before you can deploy, configure, monitor, or protect apps, you must add them to Intune. One of the available app
types is Microsoft Edge version 77 and later. By selecting this app type in Intune, you can assign and install
Microsoft Edge version 77 and later to devices you manage that run macOS. This app type makes it easy for you to
assign Microsoft Edge to macOS devices without requiring you to use the macOS app wrapping tool. To help keep
the apps more secure and up to date, the app comes with Microsoft AutoUpdate (MAU).
IMPORTANT
This app type offers developer and beta channels for macOS. The deployment is in English (EN) only, however end users can
change the display language in the browser under Settings > Languages .
NOTE
Microsoft Edge version 77 and later is available for Windows 10 as well.
Prerequisites
The macOS device must be running macOS 10.12 or later before installing Microsoft Edge.
NOTE
The Microsoft Edge browser logo is displayed with the app when users browse the company portal.
3. Select OK .
NOTE
Currently, Apple does not provide a way for Intune to uninstall Microsoft Edge on macOS devices.
Next steps
To learn how to configure Microsoft Edge on macOS devices, see Configure Microsoft Edge on macOS devices.
To learn about including and excluding app assignments from groups of users, see Include and exclude app
assignments.
Assign apps to groups
Add Microsoft Defender ATP to macOS devices using
Microsoft Intune
9/4/2020 • 3 minutes to read • Edit Online
Before you can deploy, configure, monitor, or protect apps, you must add them to Intune. One of the available app
types is Microsoft Defender Advanced Threat Protection (ATP). By selecting this app type in Intune, you can assign
and install Microsoft Defender ATP to devices you manage that run macOS. This app type makes it easy for you to
assign Microsoft Defender ATP to macOS devices without requiring you to use the macOS app wrapping tool. To
help keep the apps more secure and up to date, the app comes with Microsoft AutoUpdate (MAU).
Prerequisites
The macOS device must be running macOS 10.13 or later.
The macOS device must have at least 650 MB of disk space.
Deploy kernel extension in Intune. See more information, see Add macOS kernel extensions in Intune.
IMPORTANT
The kernel extension can be automatically approved only if it is present on the device before the Microsoft Defender ATP app
is installed. Else, users will see "System extension blocked" message on Macs and must approve the extension by going to
Security Preferences or System Preferences > Security & Privacy and then selecting Allow . For more information,
see Troubleshoot kernel extension issues in Microsoft Defender ATP for Mac.
NOTE
Currently, Apple does not provide a way for Intune to uninstall Microsoft Defender ATP on macOS devices.
Next steps
To learn about applying an antivirus policy for endpoint security in Intune, see Antivirus policy for endpoint
security in Intune
To learn about including and excluding app assignments from groups of users, see Include and exclude app
assignments.
To learn how to assign apps to groups in Intune, see Assign apps to groups.
Use PowerShell scripts on Windows 10 devices in
Intune
9/4/2020 • 10 minutes to read • Edit Online
Use the Microsoft Intune management extension to upload PowerShell scripts in Intune to run on Windows 10
devices. The management extension enhances Windows device management (MDM), and makes it easier to move
to modern management.
This feature applies to:
Windows 10 and later (excluding Windows 10 Home)
NOTE
Once the Intune management extension prerequisites are met, the Intune management extension is installed automatically
when a PowerShell script or Win32 app is assigned to the user or device. For more information, see Intune Management
Extensions prerequisites.
Prerequisites
The Intune management extension has the following prerequisites. Once the prerequisites are met, the Intune
management extension installs automatically when a PowerShell script or Win32 app is assigned to the user or
device.
Devices running Windows 10 version 1607 or later. If the device is enrolled using bulk auto-enrollment,
devices must run Windows 10 version 1709 or later. The Intune management extension isn't supported on
Windows 10 in S mode, as S mode doesn't allow running non-store apps.
Devices joined to Azure Active Directory (AD), including:
Hybrid Azure AD-joined: Devices joined to Azure Active Directory (AD), and also joined to on-premises
Active Directory (AD). See Plan your hybrid Azure Active Directory join implementation for guidance.
TIP
Be sure devices are joined to Azure AD. Devices that are only registered in Azure AD won't receive your scripts.
NOTE
For information about using Window 10 VMs, see Using Windows 10 virtual machines with Intune.
5. Select Scope tags . Scope tags are optional. Use role-based access control (RBAC) and scope tags for
distributed IT has more information.
To add a scope tag:
a. Choose Select scope tags > select an existing scope tag from the list > Select .
b. When finished, select Next .
6. Select Assignments > Select groups to include . An existing list of Azure AD groups is shown.
a. Select one or more groups that include the users whose devices receive the script. Choose Select .
The groups you chose are shown in the list, and will receive your policy.
NOTE
PowerShell scripts in Intune can be targeted to Azure AD device security groups or Azure AD user security
groups.
b. Select Next .
7. In Review + add , a summary is shown of the settings you configured. Select Add to save the script. When
you select Add , the policy is deployed to the groups you chose.
Important considerations
When scripts are set to user context and the end user has administrator rights, by default, the PowerShell
script runs under the administrator privilege.
End users aren't required to sign in to the device to execute PowerShell scripts.
The Intune management extension agent checks with Intune once every hour and after every reboot for any
new scripts or changes. After you assign the policy to the Azure AD groups, the PowerShell script runs, and
the run results are reported. Once the script executes, it doesn't execute again unless there's a change in the
script or policy. If the script fails, the Intune management extension agent will attempt to retry the script
three times for the next 3 consecutive Intune management extension agent check-ins.
For shared devices, the PowerShell script will run for every new user that signs in.
Failure to run script example
8 AM
Check in
Run script ConfigScript01
Script fails
9AM
Check in
Run script ConfigScript01
Script fails (retry count = 1)
10 AM
Check in
Run script ConfigScript01
Script fails (retry count = 2)
11 AM
Check in
Run script ConfigScript01
Script fails (retry count = 3)
12 PM
Check in
No additional attempts are made to run ConfigScript01 script.
Going forward, if no additional changes are made to the script, no additional attempts will be made to run the
script.
Delete a script
In PowerShell scripts , right-click the script, and select Delete .
TIP
The Microsoft Intune Management Extension is a service that runs on the device, just like any other
service listed in the Services app (services.msc). After a device reboots, this service may also restart, and
check for any assigned PowerShell scripts with the Intune service. If the Microsoft Intune Management
Extension service is set to Manual, then the service may not restart after the device reboots.
Be sure devices are joined to Azure AD. Devices that are only joined to your workplace or organization
(registered in Azure AD) won't receive the scripts.
The Intune management extension client checks once per hour for any changes in the script or policy in
Intune.
Confirm the Intune management extension is downloaded to
%ProgramFiles(x86)%\Microsoft Intune Management Extension .
If it succeeds, output.txt should be created, and should include the "Script worked" text.
To test script execution without Intune, run the scripts in the System account using the psexec tool
locally:
psexec -i -s
If the script reports that it succeeded, but it didn't actually succeed, then it's possible your antivirus
service may be sandboxing AgentExecutor. The following script always reports a failure in Intune. As
a test, you can use this script:
If the script reports a success, look at the AgentExecutor.log to confirm the error output. If the script
executes, the length should be >2.
To capture the .error and .output files, the following snippet executes the script through
AgentExecutor to PSx86 ( C:\Windows\SysWOW64\WindowsPowerShell\v1.0 ). It keeps the logs for your
review. Remember, the Intune Management Extension cleans up the logs after the script executes:
Next steps
Monitor and troubleshoot your profiles.
Use shell scripts on macOS devices in Intune
9/4/2020 • 10 minutes to read • Edit Online
Use shell scripts to extend device management capabilities on Intune beyond what is supported by the macOS
operating system.
Prerequisites
Ensure that the following prerequisites are met when composing shell scripts and assigning them to macOS
devices.
Devices are running macOS 10.12 or later.
Devices are managed by Intune.
Shell scripts begin with #! and must be in a valid location such as #!/bin/sh or #!/usr/bin/env zsh .
Command-line interpreters for the applicable shells are installed.
NOTE
Shell scripts assigned to user groups applies to any user logging in to the Mac.
Updating assignments for shell scripts also updates assignments for Microsoft Intune MDM Agent for macOS.
7. In Review + add , a summary is shown of the settings you configured. Select Add to save the script. When
you select Add , the script policy is deployed to the groups you chose.
The script you created now appears in the list of scripts.
IMPORTANT
Irrespective of the selected Script frequency , the script run status is reported only the first time a script is run. Script run
status is not updated on subsequent runs. However, updated scripts are treated as new scripts and will report the run status
again.
IMPORTANT
Multiple log file paths separated using comma, period, newline or quotation marks with or without spaces will result
in log collection error. Spaces are also not allowed as separators between paths.
4. Select OK . Logs are collected the next time the Intune management agent on the device checks in with
Intune. This check-in usually occurs every 8 hours.
NOTE
Collected logs are encrypted on the device, transmitted and stored in Microsoft Azure storage for 30 days. Stored
logs are decrypted on demand and downloaded using Microsoft Endpoint Manager admin center.
In addition to the admin-specified logs, the Intune management agent logs are also collected from these folders:
/Library/Logs/Microsoft/Intune and ~/Library/Logs/Microsoft/Intune . The agent log file-names are
IntuneMDMDaemon date--time.log and IntuneMDMAgent date--time.log .
If any admin-specified file is missing or has the wrong file-extension, you will find these file-names listed in
LogCollectionInfo.txt .
0X87D300D1 2016214834 Log file size cannot exceed Ensure that compressed logs
60 MB. are less than 60 MB in size.
0X87D300D1 2016214831 The provided log file path Ensure that the provided file
must exist. The system user path is valid and accessible.
folder is an invalid location
for log files.
0X87D300D2 2016214830 Log collection file upload Retry the Collect logs
failed due to expiration of action.
upload URL.
0X87D300D3, 2016214829, 2016214827, Log collection file upload Retry the Collect logs
0X87D300D5, 0X87D300D7 2016214825 failed due to encryption action.
failure. Retry log upload.
0X87D300D6 2016214826 Log collection file upload Retry the Collect logs
failed due to zip error. Retry action.
log upload.
ERRO R C O DE ( H EX) ERRO R C O DE ( DEC ) ERRO R M ESSA GE REM EDIAT IO N ST EP S
2016214739 The logs were collected but Retry the Collect logs
couldn't be stored. action.
NOTE
The Sync action for devices in Microsoft Endpoint Manager Admin Console initiates an MDM check-in and does not force an
agent check-in.
Known issues
No script run status: In the unlikely event that a script is received on the device and the device goes offline
before the run status is reported, the device will not report run status for the script in the admin console.
Next steps
Create a compliance policy in Microsoft Intune
Assign apps to groups with Microsoft Intune
9/4/2020 • 8 minutes to read • Edit Online
After you've added an app to Microsoft Intune, you can assign the app to users and devices. It is
important to note that you can assign an app to a device whether or not the device is managed by
Intune.
NOTE
The Available deployment intent is only supported for device groups when targeting Android Enterprise fully
managed devices (COBO) and Android Enterprise corporate-owned personally-enabled (COPE) devices.
The following table lists the various options for assigning apps to users and devices:
DEVIC ES N OT EN RO L L ED W IT H
O P T IO N DEVIC ES EN RO L L ED W IT H IN T UN E IN T UN E
NOTE
Currently, you can assign iOS/iPadOS and Android apps (line-of-business and store-purchased apps) to devices
that aren't enrolled with Intune.
To receive app updates on devices that aren't enrolled with Intune, device users must go to their organization's
Company Portal and manually install app updates.
Assign an app
1. Sign in to the Microsoft Endpoint Manager admin center.
2. Select Apps > All apps .
3. In the Apps pane, select the app you want to assign.
4. In the Manage section of the menu, select Assignments .
5. Select Add Group to open the Add group pane that is related to the app.
6. For the specific app, select an assignment type :
Available for enrolled devices : Assign the app to groups of users who can install the
app from the Company Portal app or website.
Available with or without enrollment : Assign this app to groups of users whose
devices are not enrolled with Intune. Users must be assigned an Intune license, see Intune
Licenses.
Required : The app is installed on devices in the selected groups. Some platforms may
have additional prompts for the end user to acknowledge before app installation begins.
Uninstall : The app is uninstalled from devices in the selected groups if Intune has
previously installed the application onto the device via an "Available for enrolled devices"
or "Required" assignment using the same deployment. Web links cannot be removed after
deployment.
NOTE
For iOS/iPadOS apps only :
To configure what happens to managed apps when devices are no longer managed, you can
select the intended setting under Uninstall on device removal. For more information, see
App uninstall setting for iOS/iPadOS managed apps.
If you have created an iOS/iPadOS VPN profile that contains per-app VPN settings, you can
select the VPN profile under VPN. When the app is run, the VPN connection is opened. For
more information, see VPN settings for iOS/iPadOS devices.
For Android apps only : If you deploy an Android app as Available with or without
enrollment , reporting status will only be available on enrolled devices.
For Available for enrolled devices : The app is only displayed as available if the user logged
into the Company Portal is the primary user who enrolled the device and the app is applicable to
the device.
7. To select the groups of users that are affected by this app assignment, select Included Groups .
8. After you have selected one or more groups to include, select Select .
9. In the Assign pane, select OK to complete the included groups selection.
10. If you want to exclude any groups of users from being affected by this app assignment, select
Exclude Groups .
11. If you have chosen to exclude any groups, in Select groups , select Select .
12. In the Add group pane, select OK .
13. In the app Assignments pane, select Save .
The app is now assigned to the groups that you selected. For more information about including and
excluding app assignments, see Include and exclude app assignments.
User Required and Available Device Required Both exist, Required and Available
User Required and Available Device Uninstall Both exist, Intune resolves Required
(Required and Available)
User Available without enrollment User Required and Available Required and Available
GRO UP 1 IN T EN T GRO UP 2 IN T EN T RESULT IN G IN T EN T
User Available without enrollment Device Required Required and Available without
enrollment
User Available without enrollment Device Uninstall Uninstall and Available without
enrollment.
NOTE
For managed iOS store apps only, when you add these apps to Microsoft Intune and assign them as Required ,
the apps are automatically created with both Required and Available intents.
iOS Store apps (not iOS/iPadOS VPP apps) that are targeted with required intent will be enforced on the device
at the time of the device check-in and will also show in the Company Portal app.
When conflicts occur in Uninstall on device removal setting, the app is not removed from the device when
the device is no longer managed.
Store app No
VPP app No
Built-in app No
NOTE
"Available" assignment types: If you're updating this setting for "available for enrolled devices" or "available
with or without enrollment" groups, users who already have the managed app won't get the updated setting
until they sync the device with Intune and re-install the app.
Pre-existing assignments: Assignments that existed prior to the introduction of this setting are unmodified
and all managed apps will be removed on device removal from management.
Next steps
To learn more about monitoring app assignments, see How to monitor apps.
Include and exclude app assignments in Microsoft
Intune
9/4/2020 • 3 minutes to read • Edit Online
In Intune, you can determine who has access to an app by assigning groups of users to include and exclude.
Before you assign groups to the app, you must set the assignment type for an app. The assignment type makes
the app available, required, or uninstalls the app.
To set the availability of an app, you include and exclude app assignments to a group of users or devices by using
a combination of include and exclude group assignments. This capability can be useful when you make the app
available by including a large group, and then narrow the selected users by also excluding a smaller group. The
smaller group might be a test group or an executive group.
As a best practice, create and assign apps specifically for your user groups, and separately for your device groups.
For more information on groups, see Add groups to organize users and devices.
Important scenarios exist when including or excluding app assignments:
Exclusion takes precedence over inclusion in the following same group type scenarios:
Including user groups and excluding user groups when assigning apps
Including device groups and excluding device group when assigning apps
For example, if you assign a device group to the All corporate users user group, but exclude
members in the Senior Management Staff user group, All corporate users except the Senior
Management staff get the assignment, because both groups are user groups.
Intune doesn't evaluate user-to-device group relationships. If you assign apps to mixed groups, the results
may not be what you want or expect.
For example, if you assign a device group to the All Users user group, but exclude an All personal
devices device group. In this mixed group app assignment, All users get the app. The exclusion does not
apply.
As a result, it's not recommended to assign apps to mixed groups.
NOTE
When you set a group assignment for an app, the Not Applicable type is deprecated and replaced with exclude group
functionality.
Intune provides pre-created All Users and All Devices groups in the console. The groups have built-in optimizations for
your convenience. It's highly recommended that you use these groups to target all users and all devices instead of any "all
users" or "all devices" groups that you might create yourself.
Android enterprise supports including and excluding groups. You can leverage the built-in All Users and All Devices
groups for Android enterprise app assignment.
5. Select Add group to add the groups of users who are assigned the app.
6. In the Add group pane, select an Assignment type from the available assignment types.
7. For the assignment type, select Available with or without enrollment .
8. Select Included Groups to select the group of users that you want to make this app available to.
NOTE
When you add a group, if any other group has already been included for a specific assignment type, the app is
preselected and can't be modified for other include assignment types. The group that has been used can't be used
as an included group.
NOTE
Removing a group assignment does not remove the related app. The installed app will remain on the device.
To change the view of the Assignments list, group by Assignment type or by Included/Excluded .
Next steps
For more information about including and excluding group assignments for apps, see the Microsoft Intune
blog.
Learn how to monitor app information and assignments.
Windows 10 app deployment by using Microsoft
Intune
9/4/2020 • 5 minutes to read • Edit Online
Microsoft Intune supports a variety of app types and deployment scenarios on Windows 10 devices. After you've
added an app to Intune, you can assign the app to users and devices. This article provides more details on the
supported Windows 10 scenarios, and also covers key details to note when you're deploying apps to Windows.
Line-of-business (LOB) apps and Microsoft Store for Business apps are the app types supported on Windows 10
devices. The file extensions for Windows apps include .msi, .appx, and .appxbundle.
NOTE
To deploy modern apps, you need at least:
For Windows 10 1803, May 23, 2018—KB4100403 (OS Build 17134.81).
For Windows 10 1709, June 21, 2018—KB4284822 (OS Build 16299.522).
Only Windows 10 1803 and later support installing apps when there is no primary user associated.
LOB app deployment isn't supported on devices running Windows 10 Home editions.
LOB: Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
APPX/
MSIX
MSFB Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Offline
MSFB Yes Yes Yes Yes Yes Yes RS4+ No Yes Yes
Online
Web Yes Yes Yes Yes Yes Yes Yes2 Yes2 Yes Yes2
Apps
APP B USIN E EN T ER EDUC A S- H O LO L SURFA M O B IL
TYPE H OME P RO SS P RISE T IO N M O DE EN S C E H UB WC OS E
Store Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Link
1 To unlock app management, upgrade your HoloLens device to Holographic for Business.
2 Launch from the Company Portal only.
3 For Edge app to install successfully, devices must also be assigned an S-Mode policy.
NOTE
All Windows app types require enrollment.
NOTE
For Win32 apps built as Dual Mode apps, the admin must choose if the app will function as a User Mode or Machine Mode
app for all assignments associated with that instance. The deployment context can't be changed per assignment.
Apps can only be installed in the device context when supported by the device and the Intune app type. Device
context installs are supported on Windows 10 desktops and Teams devices, such as the Surface Hub. They aren't
supported on devices running Windows Holographic for Business, such as the Microsoft HoloLens.
You can install the following app types in the device context and assign these apps to a device group:
Win32 apps
Offline licensed Microsoft Store for Business apps
LOB apps (MSI, APPX and MSIX)
Microsoft 365 Apps for enterprise
Windows LOB apps (specifically APPX and MSIX) and Microsoft Store for Business apps (Offline apps) that you've
selected to install in device context must be assigned to a device group. The installation fails if one of these apps is
deployed in the user context. The following status and error appears in the admin console:
Status: Failed.
Error: A user can't be targeted with a device context install.
IMPORTANT
When used in combination with an Autopilot white glove provisioning scenario, there is no requirement for LOB apps and
Microsoft Store for Business apps deployed in device context to target a device group. For more information, see Windows
Autopilot white glove deployment.
NOTE
After you save an app assignment with a specific deployment, you can't change the context for that assignment, except for
modern apps. For modern apps, you can change the context from user context to device context.
If there's a conflict in policies on a single user or device, the following priorities apply:
A device context policy is a higher priority than a user context policy.
An install policy is a higher priority than an uninstall policy.
For more information, see Include and exclude app assignments in Microsoft Intune. For more information about
app types in Intune, see Add apps to Microsoft Intune.
Next steps
Assign apps to groups with Microsoft Intune
How to monitor apps
Deploying apps using Intune on the GCC High and
DoD Environments
9/4/2020 • 2 minutes to read • Edit Online
Microsoft Intune can be used by tenant administrators to distribute apps to their workforce. The workforce is the
company employee, the users of the apps. There are many types of apps that can be deployed from Intune on GCC
High or DoD environments. If an administrator needs to upload and distribute a Windows app intended for a GCC
High or DoD audience that is custom-made, created by third-party vendors, or as an offline app downloaded from
the Microsoft Store for Business, the admin can choose to distribute it as a line-of-business app.
NOTE
For commercial environments, a tenant admin can sync their Store for Business with Intune, however for GCC High and DoD
environments, this service is not available. Admins in this situation must deploy an app by uploading directly to Intune.
Distribute Offline Apps from the Store for Business using Intune
If you need to download an offline-licensed app from the Microsoft Store for Business, follow these steps to
download the application:
1. Sign in to the Store for Business.
2. Select Manage > Settings .
3. Under Shopping Experience , set Show offline apps to On .
When shopping for apps, if an offline version is available, you can choose to change the license type to offline. After
getting the app, you can then manage it by selecting Manage > Products & Ser vices in the Store for Business.
Additionally, you can download the app and its dependencies. Then, you can deploy this downloaded app (and its
dependencies) to users using Intune.
Compliance
Review the privacy and compliance statements of apps and compare them to the compliance, security and privacy
requirements of your organization when assessing the appropriate use of these services.
Next steps
To learn more about deploying and assigning apps, see Assign apps to groups with Microsoft Intune.
Monitor app information and assignments with
Microsoft Intune
9/4/2020 • 2 minutes to read • Edit Online
Intune provides several ways to monitor the properties of apps that you manage and to manage app
assignment status.
1. Sign in to the Microsoft Endpoint Manager admin center.
2. Select Apps > All apps .
3. In the list of apps, select an app to monitor. You'll then see the app pane, which includes an overview of the
device status and the user status.
NOTE
Android Store apps that are deployed as Available do not report their installation status.
For Managed Google Play apps deployed to Android Enterprise work profile devices, you can view the status and version
number of the app installed on a device using Intune.
Created The date and time when this revision was created. Note :
This date value is updated when an IT admin
changes app metadata, such as changing the app
categor y or app description.
Install Pending The number of apps that are in the process of being
installed.
Not Applicable The number of apps for which status is not applicable.
NOTE
Be aware that Android LOB apps (.APK) deployed as Available with or without enrollment only report app
installation status for enrolled devices. App installation status is not available for devices that are not enrolled in Intune.
Device name The name of the device on platforms that allow naming a
device. On other platforms, Intune creates a name from
other properties. This attribute isn't available to any other
device.
Last check-in The date of the device's last sync with Intune.
Next steps
To learn more about working with your Intune data, see Use the Intune Data Warehouse.
To learn about app configuration policies, see App configuration policies for Intune.
Intune discovered apps
9/4/2020 • 3 minutes to read • Edit Online
Intune discovered apps is a list of detected apps on the Intune enrolled devices in your tenant. It acts as a
software inventory for your tenant. Discovered apps is a separate report from the app installation reports. For
personal devices, Intune never collects information on applications that are unmanaged. On corporate devices, any
app whether it is a managed app or not is collected for this report. Below is the table mapping the expected
behavior. In general, the report refreshes every 7 days from the time of enrollment (not a weekly refresh for the
entire tenant). The only exception to this refresh period is application information collected through the Intune
Management Extension for Win32 Apps, which is collected every 24 hours.
NOTE
You can export the list of discovered apps to a .csv file by selecting Expor t from the Discovered apps pane.
For discovered Win32 apps, there currently is no aggregate count. This type of data can only be viewed on a per-device basis.
Intune also provides the list of discovered apps for the individual device in your tenant.
1. Sign in to the Microsoft Endpoint Manager admin center.
2. Select Devices > All Devices .
3. Select a device.
4. To view detected apps for this device, select Discovered Apps in the Monitor section.
F O R P ERSO N A L LY - O W N ED F O R C O M PA N Y - O W N ED
P L AT F O RM DEVIC ES DEVIC ES REF RESH C Y C L E
Windows 10 (Win32 Apps) Not Applicable MSI installed apps on the Every 24 hours from device
NOTE: Requires Intune device enrollment
Management Extension on
device
Windows 10 (Modern Apps) Only managed modern apps All modern apps installed on Every 7 days from device
the device enrollment
Windows 8.1 Only managed apps Only managed apps Every 7 days from device
enrollment
F O R P ERSO N A L LY - O W N ED F O R C O M PA N Y - O W N ED
P L AT F O RM DEVIC ES DEVIC ES REF RESH C Y C L E
Windows RT Only managed apps Only managed apps Every 7 days from device
enrollment
iOS/iPadOS Only managed apps All apps installed on the Every 7 days from device
device enrollment
macOS Only managed apps All apps installed on the Every 7 days from device
device enrollment
Android Only managed apps All apps installed on the Every 7 days from device
device enrollment
Android Enterprise Only managed apps Only apps installed in the Every 7 days from device
Work Profile enrollment
NOTE
Windows 10 co-managed devices, as shown in the client apps workload in Configuration Manager, do not currently
collect app inventory through the Intune Management Extension (IME) as per the above schedule. To mitigate this issue,
the client apps workload in Configuration Manager should be switched to Intune for the IME to be installed on the device
(IME is required for Win32 inventory and PowerShell deployment). Note that any changes or updates on this behavior are
announced in in development and/or what's new.
Personally-owned macOS devices enrolled before November 2019 may continue to show all apps installed on the device
until the devices are enrolled again.
Android Enterprise Fully Managed and Dedicated do not display discovered apps.
The number of discovered apps may not match the app install status count. Possibilities for inconsistencies include:
A targeting change of an installed managed app can cause the install count in the status pane to decrement, but
remain reported in the detected apps.
Targeting multiple instances of the same app in a tenant will result in different counts due to potential overlap of
users or devices. Each instance of the app will count overlapping users, but discovered apps will have duplicated
counts.
Discovered apps and app status are collected at different time intervals, which could cause a discrepancy in the
app counts.
Next steps
App types in Microsoft Intune
Monitor app information and assignments with Microsoft Intune
App configuration policies for Microsoft Intune
9/4/2020 • 8 minutes to read • Edit Online
App configuration policies can help you eliminate app setup up problems by letting you assign configuration
settings to a policy that is assigned to end-users before they run the app. The settings are then supplied
automatically when the app is configured on the end-users device, and end-users don't need to take action. The
configuration settings are unique for each app.
You can create and use app configuration policies to provide configuration settings for both iOS/iPadOS or
Android apps. These configuration settings allow an app to be customized by using app configuration and
management. The configuration policy settings are used when the app checks for these settings, typically the first
time the app is run.
An app configuration setting, for example, might require you to specify any of the following details:
A custom port number
Language settings
Security settings
Branding settings such as a company logo
If end-users were to enter these settings instead, they could do this incorrectly. App configuration policies can
help provide consistency across an enterprise and reduce helpdesk calls from end-users trying to configure
settings on their own. By using app configuration policies, the adoption of new apps can be easier and quicker.
The available configuration parameters are ultimately decided by the developers of the app. Documentation from
the application vendor should be reviewed to see if an app supports configuration and what configurations are
available. For some applications, Intune will populate the available configuration settings.
NOTE
In the Managed Google Play Store, apps that support configuration will be marked as such:
You will only see apps from Managed Google Play store, not the Google Play store, when using Managed Devices as the
Enrollment Type for Android devices. Managed Google Play Store, which you may also know as Android for Work (AfW) and
Android Enterprise, are the apps in the Work Profile that contain the app versions that support app configuration.
You can assign an app configuration policy to a group of end-users and devices by using a combination of include
and exclude assignments. Once you add an app configuration policy, you can set the assignments for the app
configuration policy. When you set the assignments for the policy, you can choose to include and exclude the
groups of end-users for which the policy applies. When you choose to include one or more groups, you can
choose to select specific groups to include or select built-in groups. Built-in groups include All Users , All
Devices , and All Users + All Devices .
You have two options to use app configuration policies with Intune:
Managed devices - The device is managed by Intune as the mobile device management (MDM) provider.
The app must be designed to support the app configuration.
Managed apps - An app that has been developed to integrate the Intune App SDK. This is known as
Mobile Application Management without enrollment (MAM-WE). You can also wrap an app to implement
and support the Intune App SDK. For more information about wrapping an app, see Prepare line-of-
business apps for app protection policies.
NOTE
Intune managed apps will check-in with an interval of 30 minutes for Intune App Configuration Policy status, when
deployed in conjunction with an Intune App Protection Policy. If an Intune App Protection Policy isn't assigned to
the user, then the Intune App Configuration Policy check-in interval is set to 720 minutes.
NOTE
For multi-identity apps, such as Microsoft Outlook, user preferences may be considered. Focused Inbox, for example, will
respect the user setting and not change the configuration. Other parameters do let you control whether a user can or
cannot change the setting. For more information, see Deploying Outlook for iOS/iPadOS and Android app configuration
settings.
Android app configuration policies
For Android app configuration policies, you can select the device enrollment type before creating an app
configuration profile. You can account for certificate profiles that are based on enrollment type (work profile, fully
managed, dedicated, and corporate-owned work profile). This update provides the following:
1. If a new profile is created and All Profile Types is selected for device enrollment type, you will not be able to
associate a certificate profile with the app config policy.
2. If a new profile is created and Work Profile only is selected, Work Profile certificate policies created under
Device Configuration can be utilized.
3. If a new profile is created and Fully Managed, Dedicated, and Corporate-Owned Work Profile Only is
selected, Fully Managed, Dedicated, and Corporate-Owned Work Profile certificate policies created
under Device Configuration can be utilized.
4. If you deploy a Gmail or Nine configuration profile to an Android Enterprise dedicated device which doesn’t
involve a user, it will fail because Intune can’t resolve the user.
IMPORTANT
Existing policies created prior to the release of this feature (April 2020 release - 2004) that do not have any certificate
profiles associated with the policy will default to All Profile Types for device enrollment type. Also, existing policies created
prior to the release of this feature that have certificate profiles associated with them will default to Work Profile only.
Existing policies will not remediate or issue new certificates.
Diagnostic Logs
iOS/iPadOS configuration on unmanaged devices
You can validate iOS/iPadOS configuration with the Intune Diagnostic Log on unmanaged devices for managed
app configuration. In addition to the below steps, you can access managed app logs using Microsoft Edge. For
more information, see Use Edge for iOS and Android to access managed app logs.
1. If not already installed on the device, download and install the Microsoft Edge from the App Store. For
more information, see Microsoft Intune protected apps.
2. Launch the Microsoft Edge and select about > intunehelp from the navigation bar.
3. Click Get Star ted .
4. Click Share Logs .
5. Use the mail app of your choice to send the log to yourself so they can be viewed on your PC.
6. Review IntuneMAMDiagnostics.txt in your text file viewer.
7. Search for ApplicationConfiguration . The results will look like the following:
{
(
{
Name = "com.microsoft.intune.mam.managedbrowser.BlockListURLs";
Value = "https://www.aol.com";
},
{
Name = "com.microsoft.intune.mam.managedbrowser.bookmarks";
Value = "Outlook Web|https://outlook.office.com||Bing|https://www.bing.com";
}
);
},
{
ApplicationConfiguration =
(
{
Name = IntuneMAMUPN;
Value =
"CMARScrubbedM:13c45c42712a47a1739577e5c92b5bc86c3b44fd9a27aeec3f32857f69ddef79cbb988a92f8241af6df8b3c
ed7d5ce06e2d23c33639ddc2ca8ad8d9947385f8a";
},
{
Name = "com.microsoft.outlook.Mail.NotificationsEnabled";
Value = false;
}
);
}
Your application configuration details should match the application configuration policies configured for your
tenant.
3. In the com.microsoft.windowsintune.companyportal folder, open the Files folder and open OMADMLog_0 .
4. Search for AppConfigHelper to find app configuration related messages. The results will look similar to the
following block of data:
2019-06-17T20:09:29.1970000 INFO AppConfigHelper 10888 02256 Returning app config JSON
[{"ApplicationConfiguration":
[{"Name":"com.microsoft.intune.mam.managedbrowser.BlockListURLs","Value":"https:\/\/www.aol.com"},
{"Name":"com.microsoft.intune.mam.managedbrowser.bookmarks","Value":"Outlook
Web|https:\/\/outlook.office.com||Bing|https:\/\/www.bing.com"},
{"Name":"com.microsoft.intune.mam.managedbrowser.homepage","Value":"https:\/\/www.arstechnica.com"}]},
{"ApplicationConfiguration":[{"Name":"IntuneMAMUPN","Value":"AdeleV@M365x935807.OnMicrosoft.com"},
{"Name":"com.microsoft.outlook.Mail.NotificationsEnabled","Value":"false"},
{"Name":"com.microsoft.outlook.Mail.NotificationsEnabled.UserChangeAllowed","Value":"false"}]}] for
user User-875363642
Troubleshooting
Using logs to show a configuration parameter
When the logs show a configuration parameter that is confirmed to be applying but doesn't seem to work, there
may be an issue with the configuration implementation by the app developer. Reaching out to that app developer
first, or checking their knowledge base, may save you a support call with Microsoft. If it is an issue with how the
configuration is being handled within an app, it would have to be addressed in a future updated version of that
app.
Next steps
Managed devices
Learn how to use app configuration with your iOS/iPadOS devices. See Add app configuration policies for
managed iOS/iPadOS devices.
Learn how to use app configuration with your Android devices. See Add app configuration policies for
managed Android devices.
Managed apps
Learn how to use app configuration with managed apps. See Add app configuration policies for managed apps
without device enrollment.
Add app configuration policies for managed
iOS/iPadOS devices
9/4/2020 • 7 minutes to read • Edit Online
Use app configuration policies in Microsoft Intune to provide custom configuration settings for an iOS/iPadOS
app. These configuration settings allow an app to be customized based on the app suppliers direction. You must
get these configuration settings (keys and values) from the supplier of the app. To configure the app, you specify
the settings as keys and values, or as XML containing the keys and values.
As the Microsoft Intune admin, you can control which user accounts are added to Microsoft Office applications on
managed devices. You can limit access to only allowed organization user accounts and block personal accounts on
enrolled devices. The supporting applications process the app configuration and remove and block unapproved
accounts. The configuration policy settings are used when the app checks for them, typically the first time it is run.
Once you add an app configuration policy, you can set the assignments for the app configuration policy. When
you set the assignments for the policy, you can choose to include and exclude the groups of users for which the
policy applies. When you choose to include one or more groups, you can choose to select specific groups to
include or select built-in groups. Built-in groups include All Users , All Devices , and All Users + All Devices .
NOTE
Intune provides pre-created All Users and All Devices groups in the console with built-in optimizations for your
convenience. It is highly recommended that you use these groups to target all users and all devices instead of any 'All
users' or 'All devices' groups you may have created yourself.
Once you have selected the included groups for your application configuration policy, you can also choose the
specific groups to exclude. For more information, see Include and exclude app assignments in Microsoft Intune.
TIP
This policy type is currently available only for devices running iOS/iPadOS 8.0 and later. It supports the following app
installation types:
Managed iOS/iPadOS app from the app store
App package for iOS
For more information about app installation types, see How to add an app to Microsoft Intune. For more information about
incorporating app config into your .ipa app package for managed devices, see Managed App Configuration in the iOS
developer documentation.
For details about using the configuration designer, see Use configuration designer. For details about
entering XML data, see Enter XML data.
9. Click Next to display the Assignments page.
10. In the dropdown box next to Assign to , select either Selected groups , All users , All devices , or All
users and all devies to assign the app configuration policy to.
11. Select All users in the dropdown box.
12. Click Select groups to exclude to display the related pane.
13. Choose the groups you want to exclude and then click Select .
NOTE
When adding a group, if any other group has already been included for a given assignment type, it is pre-selected
and unchangeable for other include assignment types. Therefore, that group that has been used, cannot be used as
an excluded group.
K EY VA L UES
NOTE
The following apps process the above app configuration and only allow organization accounts:
Edge for iOS (44.8.7 and later)
OneDrive for iOS (10.34 and later)
Outlook for iOS (2.99.0 and later)
Teams for iOS (2.0.15 and later)
<dict>
<key>userprincipalname</key>
<string>{{userprincipalname}}</string>
<key>mail</key>
<string>{{mail}}</string>
<key>partialupn</key>
<string>{{partialupn}}</string>
<key>accountid</key>
<string>{{accountid}}</string>
<key>deviceid</key>
<string>{{deviceid}}</string>
<key>userid</key>
<string>{{userid}}</string>
<key>username</key>
<string>{{username}}</string>
<key>serialnumber</key>
<string>{{serialnumber}}</string>
<key>serialnumberlast4digits</key>
<string>{{serialnumberlast4digits}}</string>
<key>udidlast4digits</key>
<string>{{udidlast4digits}}</string>
<key>aaddeviceid</key>
<string>{{aaddeviceid}}</string>
</dict>
Configure the Company Portal app to support iOS and iPadOS DEP
devices
DEP (Apple's Device Enrollment Program) enrollments are not compatible with the app store version of the
Company Portal app. However, you can configure the Company Portal app to support iOS/iPadOS DEP devices
using the following steps.
1. In Intune, add the Intune Company Portal app if necessary, by going to Intune > Apps > All apps > Add .
2. Go to Apps > App configuration policies , to create an app configuration policy for the Company Portal
app.
3. Create an app configuration policy with the XML below. More information on how to create an app
configuration policy and enter XML data can be found at Add app configuration policies for managed
iOS/iPadOS devices.
Use the Company Por tal on a DEP device enrolled with user affinity:
<dict>
<key>IntuneCompanyPortalEnrollmentAfterUDA</key>
<dict>
<key>IntuneDeviceId</key>
<string>{{deviceid}}</string>
<key>UserId</key>
<string>{{userid}}</string>
</dict>
</dict>
Use the Company Por tal on a DEP device enrolled without user affinity :
NOTE
The user signing in to Company Portal is set as the primary user of the device.
<dict>
<key>IntuneUDAUserlessDevice</key>
<string>{{SIGNEDDEVICEID}}</string>
</dict>
4. Deploy the Company Portal to devices with the app configuration policy targeted to desired groups. Be
sure to only deploy the policy to groups of devices that are already DEP enrolled.
5. Tell end users to sign into the Company Portal app when it is automatically installed.
Next steps
Continue to assign and monitor the app.
Add app configuration policies for managed Android
Enterprise devices
9/4/2020 • 6 minutes to read • Edit Online
App configuration policies in Microsoft Intune supply settings to Managed Google Play apps on managed Android
Enterprise devices. The app developer exposes Android-managed app configuration settings. Intune uses these
exposed setting to let the admin configure features for the app. The app configuration policy is assigned to your
user groups. The policy settings are used when the app checks for them, typically the first time the app runs.
NOTE
Not every app supports app configuration. Check with the app developer to see if their app supports app configuration
policies.
For details about using the configuration designer, see Use configuration designer. For details about
entering XML data, see Enter JSON data.
12. Click Next to display the Assignments page.
13. In the dropdown box next to Assign to , select either Selected groups , All users , All devices , or All
users and all devies to assign the app configuration policy to.
NOTE
When adding a group, if any other group has already been included for a given assignment type, it is pre-selected
and unchangeable for other include assignment types. Therefore, that group that has been used, cannot be used as
an excluded group.
O P T IO N EXA M P L E
Account ID fc0dc142-71d8-4b12-bbea-bae2a8514c81
Domain contoso.com
Mail john@contoso.com
User ID 3ec2c00f-b125-4519-acf0-302ac3761822
K EY C O M . M IC RO SO F T. IN T UN E. M A M . A L LO W EDA C C O UN T UP N S
K EY C O M . M IC RO SO F T. IN T UN E. M A M . A L LO W EDA C C O UN T UP N S
NOTE
The following apps process the above app configuration and only allow organization accounts:
Edge for Android (42.0.4.4048 and later)
Office, Word, Excel, PowerPoint for Android (16.0.9327.1000 and later)
OneDrive for Android (5.28 and later)
Outlook for Android (2.2.222 and later)
Teams for Android (1416/1.0.0.2020073101 and later)
Additional information
Assigning a Managed Google Play app to Android Enterprise devices
Deploying Outlook for iOS/iPadOS and Android app configuration settings
Next steps
Continue to assign and monitor the app.
Add app configuration policies for managed apps
without device enrollment
9/4/2020 • 2 minutes to read • Edit Online
You can use app configuration policies with managed apps that support the Intune App SDK, even on devices that
are not enrolled.
1. Sign in to the Microsoft Endpoint Manager admin center.
2. Choose the Apps > App configuration policies > Add > Managed apps .
3. On the Basics page, set the following details:
Name : The name of the profile that will appear in the Azure portal.
Description : The description of the profile that will appear in the Azure portal.
Device enrollment type : Managed apps is selected.
4. Choose either Select public apps or Select custom apps to choose the app that you are going to
configure. Select the app from the list of apps that you have approved and synchronized with Intune.
5. Click Next to display the Settings page.
6. The Settings page provides options that are displayed based on the app that you're configuring:
General configuration settings - For each general configuration setting that the app supports,
type the Name and Value .
Intune App SDK-enabled apps support configurations in key/value pairs. To learn more about which
key-value configurations are supported, consult the documentation for each app. Note that you can
use tokens that will be dynamically populated with data generated by the application. To delete a
general configuration setting, choose the ellipsis (… ) and select Delete . For more information, see
Configuration values for using tokens.
Outlook configuration settings - Outlook for iOS and Android offers administrators the ability to
customize the default configuration for several in-app settings. For more information, see Outlook
for iOS and Android - General app configuration scenarios.
S/MIME - Secure Multipurpose Internet Mail Extensions (S/MIME) is a specification that allows users
to send and receive digitally signed and encrypted emails.
Enable S/MIME - Specify whether or not S/MIME controls are enabled when composing an
email. Default value: Not configured .
Allow user to change setting - Specify if the user is allowed to change the setting. S/MIME
must be enabled. Default value: Yes .
For information about Outlook app configuration policy settings, see Deploying Outlook for iOS and
Android app configuration settings.
7. Click Next to display the Assignments page.
8. Click Select groups to include .
9. Select a group in the Select groups to include pane and click Select .
10. Click Select groups to exclude to display the related pane.
11. Choose the groups you want to exclude and then click Select .
NOTE
When adding a group, if any other group has already been included for a given assignment type, it is pre-selected
and unchangeable for other include assignment types. Therefore, that group that has been used, cannot be used as
an excluded group.
NOTE
The {{ and }} characters are used by token types only and must not be used for other purposes.
Next steps
Continue to assign and monitor the app as usual.
Use iOS app provisioning profiles to prevent your
apps from expiring
9/4/2020 • 2 minutes to read • Edit Online
Introduction
Apple iOS/iPadOS line-of-business apps that are assigned to iPhones and iPads are built with an included
provisioning profile and code that is signed with a certificate. When the app is run, iOS/iPadOS confirms the
integrity of the iOS/iPadOS app and enforces policies that are defined by the provisioning profile. The following
validations happen:
Installation file integrity - iOS/iPadOS compares the app's details with the enterprise signing certificate's
public key. If they differ, the app's content might have changed, and the app is not allowed to run.
Capabilities enforcement - iOS/iPadOS attempts to enforce the app's capabilities from the enterprise
provisioning profile (not individual developer provisioning profiles) that are in the app installation (.ipa) file.
The enterprise signing certificate that you use to sign apps typically lasts for three years. However, the provisioning
profile expires after a year. While the certificate is still valid, Intune gives you the tools to proactively assign a new
provisioning profile to devices that have apps that are nearing expiry. After the certificate expires, you must sign
the app again with a new certificate and embed a new provisioning profile with the key of the new certificate.
As the admin, you can include and exclude security groups to assign iOS/iPadOS app provisioning configuration.
For example, you can assign an iOS/iPadOS app provisioning configuration to All Users, but exclude an executive
group.
Next steps
Assign the profile to the required iOS/iPadOS devices. For more information, use the steps in How to assign device
profiles.
Configure the Microsoft Managed Home Screen app
for Android Enterprise
9/4/2020 • 13 minutes to read • Edit Online
The Managed Home Screen is the application used for corporate-owned Android Enterprise dedicated devices
enrolled via Intune and running in multi-app kiosk mode. For these devices, the Managed Home Screen acts as the
launcher for other approved apps to run on top of it. The Managed Home Screen provides IT admins the ability to
customize their devices and to restrict the capabilities that the end user can access.
NOTE
It is currently possible, and advisable, to set allow-listed applications and pinned web links through Apps and Device
configuration . For the full list of settings available in Device configuration that impact Managed Home Screen, see
Dedicated device settings.
First, navigate to the Microsoft Endpoint Manager admin center and select Apps > App configuration policies .
Add a configuration policy for Managed devices running Android and choose Managed Home Screen as the
associated app. Click on Configuration settings to configure the different available Managed Home Screen
settings.
Set Grid Size string Auto Allows you to set the grid
size for apps to be
positioned on the managed
home screen. You can set the
number of app rows and
columns to define grid size in
the following format
columns;rows . If you
define the grid size, the
maximum number of apps
that will be shown in a row
on the home screen would
be the number of rows you
set and the maximum
number of apps that will be
shown in a column in the
home screen would be the
number of columns you set.
Set device wall paper string Default Allows you to set a wallpaper
of your choice by entering
the URL of the image that
you want to set as a
wallpaper.
Set app icon size integer 2 Allows you to set the icon
size for apps displayed on
the home screen. You can
choose the following values
in this configuration for
different sizes - 0 (Smallest),
1 (Small), 2 (Regular), 3
(Large) and 4 (Largest).
Set allow-listed applications bundleArray FALSE Allows you to define the set
of apps visible on the home
screen from amongst the
apps installed on the device.
You can define the apps by
entering the app package
name of the apps that you
would like to make visible,
for example
com.microsoft.emmx would
make settings accessible on
the home screen. The apps
that you allow-list in this
section should already be
installed on the device in
order to be visible on the
home screen.
Set pinned web links bundleArray FALSE Allows you to pin websites
as quick launch icons on the
home screen. With this
configuration, you can define
the URL and add it to the
home screen for the end
user to launch in the
browser with a single tap.
Note: We recommend that
you create, assign and
approve Managed Google
Play web links to your
devices, which are treated
like allow-listed applications.
Enable virtual home button bool FALSE Turn this setting to True to
allow the end user to have
access to a Managed Home
Screen home button that will
return the user to the
Managed Home Screen from
the current task they are in.
Battery and Signal Strength bool True Turning this setting to True
indicator bar shows the battery and signal
strength indicator bar.
Enable easy access debug bool FALSE Turn this setting to True to
menu access the debug menu from
the Managed Settings app
or from swipe-down while in
Managed Home Screen. The
debug menu is currently
where the capability to exit
kiosk mode lives, and is
accessed by clicking the back
button about 15 times. Keep
this setting set to False to
keep the entry point to
debug menu only accessible
via the back button.
Show device info setting bool FALSE Turning this setting to True
allows the end user to access
quick info about the device
from the Managed Setting
app or swipe-down.
Accessible information
includes device's make,
model and serial number.
In addition to the list of configurable settings listed in the Configuration Designer table (above), the following
table provides the configuration keys you can only configure via JSON data.
The following is an example JSON script with all the available configuration keys included:
{
"kind": "androidenterprise#managedConfiguration",
"productId": "com.microsoft.launcher.enterprise",
"managedProperty": [
{
"key": "lock_home_screen",
"valueBool": true
},
{
"key": "wallpaper",
"valueString": "default"
},
{
"key": "icon_size",
"valueInteger": 2
},
{
"key": "app_folder_icon",
"valueInteger": 0
},
{
"key": "screen_orientation",
"valueInteger": 1
},
{
"key": "applications",
"valueBundleArray": [
{
{
"managedProperty": [
{
"key": "package",
"valueString": "app package name here"
}
]
}
]
},
{
"key": "weblinks",
"valueBundleArray": [
{
"managedProperty": [
{
"key": "link",
"valueString": "link here"
},
{
"key": "label",
"valueString": "weblink label here"
}
]
}
]
},
{
"key": "show_virtual_home",
"valueBool": false
},
{
"key": "virtual_home_type",
"valueString": "swipe_up"
},
{
"key": "show_virtual_status_bar",
"valueBool": true
},
{
"key": "exit_lock_task_mode_code",
"valueString": ""
},
{
"key": "show_wifi_setting",
"valueBool": false
},
{
"key": "show_bluetooth_setting",
"valueBool": false
},
{
"key": "show_flashlight_setting",
"valueBool": false
},
{
"key": "show_volume_setting",
"valueBool": false
},
{
"key": "show_device_info_setting",
"valueBool": false
},
{
"key": "show_managed_setting",
"valueBool": false
},
{
"key": "enable_easy_access_debugmenu",
"valueBool": false
"valueBool": false
},
{
"key": "enable_wifi_allowlist",
"valueBool": false
},
{
"key": "wifi_allowlist",
"valueBundleArray": [
{
"managedProperty": [
{
"key": "SSID",
"valueString": "name of Wi-Fi network 1 here"
}
]
},
{
"managedProperty": [
{
"key": "SSID",
"valueString": "name of Wi-Fi network 2 here"
}
]
}
]
},
{
"key": "grid_size",
"valueString": "4;5"
},
{
"key": "app_order_enabled",
"valueBool": true
},
{
"key": "apps_in_folder_ordered_by_name",
"valueBool": true
},
{
"key": "app_orders",
"valueBundleArray": [
{
"managedProperty": [
{
"key": "package",
"valueString": "com.Microsoft.emmx"
},
{
"key": "type",
"valueString": "application"
},
{
"key": "container",
"valueInteger": 1
},
{
"key": "position",
"valueInteger": 1
}
]
},
{
"managedProperty": [
{
"key": "folder_name",
"valueString": "Work"
},
{
"key": "type",
"valueString": "managed_folder"
},
{
"key": "container",
"valueInteger": 1
},
{
"key": "position",
"valueInteger": 2
}
]
},
{
"managedProperty": [
{
"key": "package",
"valueString": "com.microsoft.launcher.enterprise"
},
{
"key": "type",
"valueString": "application"
},
{
"key": "class",
"valueString": "com.microsoft.launcher.launcher"
},
{
"key": "container",
"valueInteger": 1
},
{
"key": "position",
"valueInteger": 3
}
]
}
]
},
{
"key": "managed_folders",
"valueBundleArray": [
{
"managedProperty": [
{
"key": "folder_name",
"valueString": "Folder name here"
},
{
"key": "applications",
"valueBundleArray": [
{
"managedProperty": [
{
"key": "package",
"valueString": "com.microsoft.emmx"
}
]
},
{
"managedProperty": [
{
"key": "package",
"valueString": "com.microsoft.bing"
}
]
},
{
"managedProperty": [
{
"key": "link",
"valueString": "https://microsoft.com/"
}
]
}
]
}
]
},
{
"managedProperty": [
{
"key": "folder_name",
"valueString": "Example folder name 2"
},
{
"key": "applications",
"valueBundleArray": [
{
"managedProperty": [
{
"key": "package",
"valueString": "com.microsoft.office.word"
}
]
}
]
}
]
}
]
}
]
}
Next steps
For more information about Android Enterprise dedicated devices, see Set up Intune enrollment of Android
Enterprise dedicated devices.
How to customize the Intune Company Portal apps,
Company Portal website, and Intune app
9/4/2020 • 14 minutes to read • Edit Online
The Company Portal apps, Company Portal website, and Intune app on Android are where users access company
data and can do common tasks. Common task may include enrolling devices, installing apps, and locating
information (such as for assistance from your IT department). Additionally, they allow users to securely access
company resources. The end-user experience provides several different pages, such as Home, Apps, App details,
Devices, and Device details. To quickly find apps within the Company Portal, you can filter the apps on the Apps
page.
NOTE
The Company Portal supports Configuration Manager applications. This feature allows end users to see both Configuration
Manager and Intune deployed applications in the Company Portal for co-managed customers. This new version of the
Company Portal will display Configuration Manager deployed apps for all co-managed customers. This support will help
administrators consolidate their different end user portal experiences. For more information, see Use the Company Portal
app on co-managed devices.
Branding
The following table provides the branding customization details for the end-user experience:
F IEL D N A M E M O RE IN F O RM AT IO N
Organization name This name is displayed throughout the messaging in the end-
user experience. It can be set to display in headers as well
using the Show in header setting. Max length is 40
characters.
Theme color Set theme color to show across end-user experience. We'll
automatically set the text color to black or white so that it's
most visible on top of your selected theme color.
Show in header Select whether the header in the end-user experiences should
display the Organization logo and name , the
Organization logo only , or the Organization name
only . The preview boxes below will only show the logos, not
the name.
F IEL D N A M E M O RE IN F O RM AT IO N
Upload logo for theme color background Upload the logo you want to show on top of your selected
theme color. For the best appearance, upload a logo with a
transparent background. You can see how this will look in the
preview box below the setting.
Maximum image size: 400 x 400 px
Maximum file size: 750KB
File type: PNG, JPG, or JPEG
Upload logo for white or light background Upload the logo you want to show on top of white or light-
colored backgrounds. For the best appearance, upload a logo
with a transparent background. You can see how this will look
on a white background in the preview box below the setting.
Maximum image size: 400 x 400 px
Maximum file size: 750KB
File type: PNG, JPG, or JPEG
Upload brand image Upload an image that reflects your organization's brand.
Recommended image width: Greater than 1125 px
(required to be at least 650 px)
Maximum image size: 1.3 MB
File type: PNG, JPG, or JPEG
It is displayed in these locations:
iOS/iPadOS Company Portal: Background image
on the user's profile page.
Windows Company Portal: Background image on
the user's profile page.
Company Portal website: Background image on
the user's profile page.
Android Intune app: In the drawer and as a
background image on the user's profile page.
NOTE
When a user is installing an iOS/iPadOS application from the Company Portal they will receive a prompt. This occurs when
the iOS/iPadOS app is linked to the app store, linked to a volume-purchase program (VPP), or linked to a line-of-business
(LOB) app. The prompt allows the users to accept the action or allow management of the app. The prompt will display your
company name, or when your company name is unavailable, Company Por tal will be displayed.
The following shows an example of the brand image in the Intune app for Android:
Support information
Enter your organization's support information, so employees can reach out with questions. This support
information will be displayed on Suppor t , Help & Suppor t , and Helpdesk pages across the end-user
experience.
F IEL D N A M E M A XIM UM L EN GT H M O RE IN F O RM AT IO N
Configuration
You can configure the Company Portal experience specifically for enrollment, privacy, notifications, app sources,
and self-service actions.
Enrollment
The following table provides enrollment-specific configuration details:
F IEL D N A M E M A XIM UM L EN GT H M O RE IN F O RM AT IO N
NOTE
Support for the device enrollment setting requires end users have these Company Portal versions:
Company Portal on iOS/iPadOS: version 4.4 or later
Company Portal on Android: version 5.0.4715.0 or later
IMPORTANT
The following settings do not apply to iOS/iPadOS devices configured to enroll with Automated Device Enrollment.
Regardless of how these setting are configured, iOS/iPadOS devices configured to enroll with Automated Device Enrollment
will enroll during the out of box flow and users will be prompted to sign in when they launch the Company Portal.
The following settings do apply to Android devices configured with Samsung Knox Mobile Enrollment (KME). If a device has
been configured for KME and device enrollment is set to Unavailable, the device will not be able to enroll during the out of
box flow.
A P P DETA IL S
STAT US ( O F A N
DEVIC E A P P T H AT
EN RO L L M EN T C H EC K L IST DEVIC E DETA IL S REQ UIRES
O P T IO N S DESC RIP T IO N P RO M P T S N OT IF IC AT IO N STAT US EN RO L L M EN T )
Privacy
The following table provides privacy-specific configuration details:
F IEL D N A M E M A XIM UM L EN GT H M O RE IN F O RM AT IO N
Privacy message in the Company Portal 520 Keep the Default or set a Custom
for iOS/iPadOS message to list the items that your
organization can't see on managed
iOS/iPadOS devices. You can use
markdown to add bullets, bolding,
italics, and links. Users will also see a list
of things that your organization can see
and do, but that list is automatically
generated by Intune and not
customizable.
Send a push notification to users when N/A Send a push notification to both your
their device ownership type changes Android and iOS Company Portal users
from personal to corporate (Android when their device ownership type has
and iOS/iPadOS only) been changed from personal to
corporate. By default, this push
notification is set to off. When device
ownership is set to corporate
ownership, Intune has greater access to
the device, which includes the full app
inventory, FileVault key rotation, phone
number retrieval, and a select few
remote actions. For more information,
see Change device ownership.
App sources
You can choose which additional app sources will be shown in Company Portal.
NOTE
The Company Portal supports Configuration Manager applications. This feature allows end users to see both Configuration
Manager and Intune deployed applications in the Company Portal for co-managed customers. For more information, see
Use the Company Portal app on co-managed devices.
F IEL D N A M E M A XIM UM L EN GT H M O RE IN F O RM AT IO N
NOTE
The Company Portal website will initially support the display of apps from other Microsoft services.
You can hide or show Azure AD Enterprise applications and Office Online applications in the Company
Portal for each end user. Show will cause the Company Portal to display the entire applications catalog from the
chosen Microsoft service(s) assigned to the user. Azure AD Enterprise applications are registered and assigned
via the Azure portal. Office Online applications are assigned using the licensing controls available in the M365
Admin Center. In the Microsoft Endpoint Manager admin center, select Tenant administration >
Customization to find this configuration setting. By default, each additional app source will be set to Hide .
Customizing user self-service actions for the Company Portal
You can customize the available self-service device actions that are shown to end users in the Company Portal app
and website. To help prevent unintended device actions, you can configure settings for the Company Portal app by
selecting Tenant Administration > Customization .
The following actions are available:
Hide Remove button on corporate Windows devices.
Hide Reset button on corporate Windows devices.
Hide Remove button on corporate iOS/iPadOS devices.
Hide Reset button on corporate iOS/iPadOS devices.
NOTE
These actions can be used to restrict device actions in the Company Portal app and website and do not implement any
device restriction policies. To restrict users from performing factory reset or MDM removal from settings, you must configure
device restriction policies.
NOTE
The user will see instructions about derived credentials based on the link that you have specified via Intune.
For more information about derived credentials for iOS/iPadOS devices, see Use derived credentials in Microsoft
Intune.
Home Alt+H
My profile Alt+U
Settings Alt+T
End users will also be able to see the available shortcuts in the Windows Company Portal app.
User self-service device actions from the Company Portal
Users can perform actions on their local or remote devices via the Company Portal app, Company Portal website,
or the Intune app on Android. The actions that a user can perform vary based on device platform and
configuration. In all cases, the remote device actions can only be performed by device's Primary User.
Available self-service device actions include the following:
Retire – Removes the device from Intune Management. In the company portal app and website, this shows as
Remove .
Wipe – This action initiates a device reset. In the company portal website this is shown as Reset , or Factor y
Reset in the iOS/iPadOS Company Portal App.
Rename – This action changes the device name that the user can see in the Company Portal. It does not change
the local device name, only the listing in the Company Portal.
Sync – This action initiates a device check-in with the Intune service. This shows as Check Status in the
Company Portal.
Remote Lock – This locks the device, requiring a PIN to unlock it.
Reset Passcode – This action is used to reset device passcode. On iOS/iPadOS devices the passcode will be
removed and the end user will be required to enter a new code in settings. On supported Android devices, a
new passcode is generated by Intune and temporarily displayed in the Company Portal.
Key Recover y – This action is used to recover a personal recovery key for encrypted macOS devices from the
Company Portal website.
To customize the available user self-service actions, see Customizing user self-service actions for the Company
Portal.
Self-Service Actions
Some platforms and configurations do not allow self-service device actions. This table below provides further
details about self-service actions:
A C T IO N W IN DO W S 10 ( 3) IO S/ IPA DO S ( 3) M A C O S ( 3) A N DRO ID ( 3)
disabled.
App logs
If you are using Azure Government, app logs are offered to the end user to decide how they will share when they
initiate the process to get help with an issue. However, if you are not using Azure Government, the Company Portal
will send app logs directly to Microsoft when the user initiates the process to get help with an issue. Sending the
app logs to Microsoft will make it easier to troubleshoot and resolve issues.
NOTE
Consistent with Microsoft and Apple policy, we do not sell any data collected by our service to any third parties for any
reason.
Next steps
Configure your organization's logo and brand color for new tab pages in Microsoft Edge for iOS and Android
Add apps
Configure Microsoft Launcher
9/4/2020 • 10 minutes to read • Edit Online
Microsoft Launcher is an Android application that lets users personalize their phone, stay organized on the go, and transfer from working from their
phone to their PC.
On Android Enterprise fully managed devices, Launcher allows enterprise IT admins to customize managed device home screens by selecting the
wallpaper, apps, and icon positions. This standardizes the look and feel of all managed Android devices across different OEM devices and system
versions.
NOTE
Once properties are configured via the Configuration Designer, the JSON data will also be updated to only reflect these properties. To add additional configuration
keys into the JSON Data, use the JSON script example to copy the necessary lines for each configuration key.
When editing previously created app configuration policies, if complex properties have been configured, the edit process will display the JSON Data
editor. All previously configured settings will be preserved and you can switch to use the configuration designer to modify supported settings.
Enrollment Type String Default Allows you to set the enrollment type
this policy should apply to. Currently,
the value Default refers to
CorporateOwnedBuisnessOnly .
There are no other supported
enrollment types at present. JSON key
name: management_mode_key
Home Screen App Order User Change Boolean True Allows you to specify if the Home
Allowed Screen App Order setting can be
changed by the end user.
If set to True , the app order
defined in the policy will only
be enforced for the initial
deployment. Subsequently, the
policy will not be enforced to
respect any changes the user
may have made.
If set to False , the app order
will be enforced on every sync.
Set Grid Size String Auto Allows you to set the grid size for
apps to be positioned on the home
screen. You can set the number of app
rows and columns to define grid size
in the following format:
columns;rows . If you define the grid
size, the maximum number of apps
that will be shown in a row on the
home screen would be the number of
rows you set and the maximum
number of apps that will be shown in
a column in the home screen would
be the number of columns you set.
Set Device Wallpaper String Null Allows you to set a wallpaper of your
choice by entering the URL of the
image that you want to set as a
wallpaper.
Set Device Wallpaper User Change Bool True Allows you to specify if the Set Device
Allowed Wallpaper setting can be changed by
the end user.
If set to True , the wallpaper in
the policy will only be enforced
for the initial deployment.
Subsequently, the policy will
not be enforced to respect any
changes the user may have
made.
If set to False , the wallpaper
will be enforced on every sync.
Feed Enable User Change Allowed Boolean True Allows you to specify if the Feed
Enable setting can be changed by the
end user.
If set to True , the feed will only
be enforced for the initial
deployment. Subsequently, the
policy will not be enforced to
respect any changes the user
may have made.
If set to False , the feed will be
enforced on every sync.
Search Bar Placement String Bottom Allows you to specify the placement
of search bar on the home screen.
If set to Bottom , the search
bar will be located on the
bottom of the home screen.
If set to Top , the search bar
will be located on the top of
the home screen.
If set to Hidden , the search
bar will be removed from the
home screen.
Search Bar Placement User Change Bool True Allows you to specify if the Search
Allowed Bar Placement setting can be
changed by the end user.
If set to True , the search bar
placement will only be
enforced for the initial
deployment. Subsequently, the
policy will not be enforced to
respect any changes the user
may have made.
If set to False , the placement
of search bar will be enforced
on every sync.
Dock Mode String Show Allows you to enable the dock on the
device when the user swipes to the
right on the home screen.
If set to Show , the dock will be
enabled.
If set to Hidden , the dock will
hide from the home screen,
but the user can display it
when it is needed.
If set to Disabled , the dock
will be disabled.
Dock Mode User Change Allowed String True Allows you to specify if the Dock
Mode setting can be changed by the
end user.
If set to True , the dock mode
setting will only be enforced
for the initial deployment.
Subsequently, the policy will
not be enforced to respect any
changes the user may have
made.
If set to False , the dock mode
setting will be enforced on
every sync.
Set Allow-Listed Applications BundleArray See: Set allow-listed applications Allows you to define the set of apps
JSON key: visible on the home screen from
com.microsoft.launcher.HomeScreen.Applications amongst the apps installed on the
device. You can define the apps by
entering the app package name of the
apps that you would like to make
visible, for example,
com.android.settings would make
settings accessible on the home
screen. The apps that you allow-list in
this section should already be installed
on the device in order to be visible on
the home screen.
Properties:
Package: The application
package name
Class: The application activity,
which is specific to a certain
app page. It would use the
default app page if this value is
empty.
C O N F IGURAT IO N K EY VA L UE T Y P E DEFA ULT VA L UE DESC RIP T IO N
Home Screen App Order BundleArray See: Home screen app order Allows you to specify the app order on
JSON key: the home screen.
com.microsoft.launcher.HomeScreen.AppOrder Properties:
Type: If you want to specify
positions of apps, tThe only
type supported is
application . If you want to
specify positions of web links,
the type is weblink .
Position: This specifies
application icon slot on home
screen. This starts from
position 1 on the top left, and
goes left to right, top to
bottom.
Package: This is application
package name used for
specifying app order.
Class: The is an application
activity, which is specific to a
certain app page. The default
app page will be used if this
value is empty. This property is
used for app.
Label: The is an application
activity, which is specific to a
certain app page. The default
app page will be used if this
value is empty. This property is
used for app.
Link : The url to be launched
after end user clicks the web
link icon. This property is used
for web link.
Set Pinned Web Links BundleArray See: Set Pinned Web Links This key allows you to pin website to
JSON key: the home screen as quick launch icon.
com.microsoft.launcher.HomeScreen.WebLinks That way you can make sure that end
user can have quick and easy access
to essential websites. You can modify
location of each web link icon in
'Home Screen App Order'
configuration.
Properties:
• Label: The weblink title
displayed on MS Launcher
home screen.
Link : The url to be launched
after end user clicks the web
link icon.
{
"key": "com.microsoft.launcher.HomeScreen.Applications",
"valueBundleArray":
[
{
"managedProperty": [
{
"key": "package",
"valueString": ""
},
{
"key": "class",
"valueString": ""
}
]
}
]
}
{
"key": "com.microsoft.launcher.HomeScreen.WebLinks",
"valueBundleArray": [
{
"managedProperty": [
{
"key": "label",
"valueString": ""
},
{
"key": "link",
"valueString": ""
}
]
}
]
},
{
"key": "com.microsoft.launcher.HomeScreen.AppOrder",
"valueBundleArray": [
{
"managedProperty": [
{
"key": "type",
"valueString": ""
},
{
"key": "position",
"valueInteger":
},
{
"key": "label",
"valueString": ""
},
{
"key": "link",
"valueString": ""
}
]
}
]
}
{
"kind": "androidenterprise#managedConfiguration",
"productId": "app:com.microsoft.launcher",
"managedProperty": [
{
"key": "management_mode_key",
"valueString": "Default"
},
{
"key": "com.microsoft.launcher.Feed.Enable.UserChangeAllowed",
"valueBool": false
},
{
"key": "com.microsoft.launcher.Feed.Enable",
"valueBool": true
},
{
"key": "com.microsoft.launcher.Wallpaper.Url.UserChangeAllowed",
"valueBool": false
},
{
"key": "com.microsoft.launcher.Wallpaper.Url",
"valueString": "http://www.contoso.com/wallpaper.png"
},
{
"key": "com.microsoft.launcher.HomeScreen.GridSize",
"valueString": "5;5"
},
{
"key": "com.microsoft.launcher.HomeScreen.Applications",
"valueBundleArray": [
{
"managedProperty": [
{
"key": "package",
"valueString": "com.ups.mobile.android"
},
{
"key": "class",
"valueString": ""
}
]
},
{
"managedProperty": [
{
"key": "package",
"valueString": "com.microsoft.teams"
},
{
"key": "class",
"valueString": ""
}
]
},
{
"managedProperty": [
{
"key": "package",
"valueString": "com.microsoft.bing"
},
{
"key": "class",
"valueString": ""
}
]
}
]
},
{
"key": "com.microsoft.launcher.HomeScreen.WebLinks",
"valueBundleArray": [
{
"managedProperty": [
{
"key": "label",
"valueString": "News"
},
{
"key": "link",
"valueString": "https://www.bbc.com"
}
]
}
]
},
{
"key": "com.microsoft.launcher.HomeScreen.AppOrder.UserChangeAllowed",
"valueBool": false
},
{
"key": "com.microsoft.launcher.HomeScreen.AppOrder",
"valueBundleArray": [
{
"managedProperty": [
{
"key": "type",
"key": "type",
"valueString": "application"
},
{
"key": "position",
"valueInteger": 17
},
{
"key": "package",
"valueString": "com.ups.mobile.android"
},
{
"key": "class",
"valueString": ""
}
]
},
{
"managedProperty": [
{
"key": "type",
"valueString": "application"
},
{
"key": "position",
"valueInteger": 18
},
{
"key": "package",
"valueString": "com.microsoft.teams"
},
{
"key": "class",
"valueString": ""
}
]
},
{
"managedProperty": [
{
"key": "type",
"valueString": "application"
},
{
"key": "position",
"valueInteger": 19
},
{
"key": "package",
"valueString": "com.microsoft.bing"
},
{
"key": "class",
"valueString": ""
}
]
},
{
"managedProperty": [
{
"key": "type",
"valueString": "weblink"
},
{
"key": "position",
"valueInteger": 20
},
{
"key": "label",
"valueString": "News"
},
{
"key": "link",
"valueString": "https://www.bbc.com"
}
]
}
]
}
]
}
Next steps
For more information about Android Enterprise fully managed devices, see Set up Intune enrollment of Android Enterprise fully manage devices.
Manage web access by using Edge for iOS and Android
with Microsoft Intune
9/4/2020 • 22 minutes to read • Edit Online
Edge for iOS and Android is designed to enable users to browse the web and supports multi-identity. Users can add a
work account, as well as a personal account, for browsing. There is complete separation between the two identities, which
is like what is offered in other Microsoft mobile apps.
Edge for iOS is supported on iOS 12.0 and later. Edge for Android is supported on Android 5 and later.
NOTE
Edge for iOS and Android doesn't consume settings that users set for the native browser on their devices, because Edge for iOS and
Android can't access these settings.
The richest and broadest protection capabilities for Microsoft 365 data are available when you subscribe to the Enterprise
Mobility + Security suite, which includes Microsoft Intune and Azure Active Directory Premium features, such as
conditional access. At a minimum, you will want to deploy a conditional access policy that only allows connectivity to Edge
for iOS and Android from mobile devices and an Intune app protection policy that ensures the browsing experience is
protected.
NOTE
New web clips (pinned web apps) on iOS devices will open in Edge for iOS and Android instead of the Intune Managed Browser when
required to open in a protected browser. For older iOS web clips, you must re-target these web clips to ensure they open in Edge for
iOS and Android rather than the Managed Browser.
NOTE
This policy ensures mobile users can access all Microsoft 365 endpoints from within Edge for iOS and Android. This policy also
prevents users from using InPrivate to access Microsoft 365 endpoints.
With Conditional Access, you can also target on-premises sites that you have exposed to external users via the Azure AD
Application Proxy.
IMPORTANT
To apply Intune app protection policies against apps on Android devices that are not enrolled in Intune, the user must also install the
Intune Company Portal. For more information, see What to expect when your Android app is managed by app protection policies.
NOTE
Device registration is a simple check-in with the Azure AD service. It doesn't require full device enrollment, and doesn't give IT any
additional privileges on the device.
IMPORTANT
For configuration scenarios that require device enrollment on Android, the devices must be enrolled in Android Enterprise and Edge
for Android must be deployed via the Managed Google Play store. For more information, see Set up enrollment of Android
Enterprise work profile devices and Add app configuration policies for managed Android Enterprise devices.
Each configuration scenario highlights its specific requirements. For example, whether the configuration scenario requires
device enrollment, and thus works with any UEM provider, or requires Intune App Protection Policies.
NOTE
With Microsoft Endpoint Manager, app configuration delivered through the MDM OS channel is referred to as a Managed Devices
App Configuration Policy (ACP); app configuration delivered through the App Protection Policy channel is referred to as a Managed
Apps App Configuration Policy.
IMPORTANT
Edge for Android does not support Chromium settings that are available in Managed Google Play.
K EY VA L UE
Homepage shortcut
This setting allows you to configure a homepage shortcut for Edge for iOS and Android. The homepage shortcut you
configure appears as the first icon beneath the search bar when the user opens a new tab in Edge for iOS and Android.
The user can't edit or delete this shortcut in their managed context. The homepage shortcut displays your organization's
name to distinguish it.
K EY VA L UE
K EY VA L UE
com.microsoft.intune.mam.managedbrowser.managedTopSites Specify set of value URLs. Each top site shortcut consists of a title
and URL. Separate the title and URL with the | character.
For example:
GitHub|https://github.com/||LinkedIn|https://www.linkedin.com
Industry news
You can configure the New Tab Page experience within Edge for iOS and Android to display industry news that is relevant
to your organization. When you enable this feature, Edge for iOS and Android uses your organization's domain name to
aggregate news from the web about your organization, organization's industry, and competitors, so your users can find
relevant external news all from the centralized new tab pages within Edge for iOS and Android. Industry News is off by
default.
K EY VA L UE
Bookmark experiences
Edge for iOS and Android offers organizations several options for managing bookmarks.
Managed bookmarks
For ease of access, you can configure bookmarks that you'd like your users to have available when they are using Edge for
iOS and Android.
Bookmarks only appear in the work or school account and are not exposed to personal accounts.
Bookmarks can't be deleted or modified by users.
Bookmarks appear at the top of the list. Any bookmarks that users create appear below these bookmarks.
If you have enabled Application Proxy redirection, you can add Application Proxy web apps by using either their
internal or external URL.
Ensure that you prefix all URLs with http:// or https:// when entering them into the list.
Bookmarks are created in a folder named after the organization's name which is defined in Azure Active Directory.
K EY VA L UE
My Apps bookmark
By default, users have the My Apps bookmark configured within the organization folder inside Edge for iOS and Android.
K EY VA L UE
com.microsoft.intune.mam.managedbrowser.MyApps true (default) shows My Apps within the Edge for iOS and
Android bookmarks
false hides My Apps within Edge for iOS and Android
K EY VA L UE
K EY VA L UE
K EY VA L UE
com.microsoft.intune.mam.managedbrowser.disabledFeatures password disables prompts that offer to save passwords for the
end user
inprivate disables InPrivate browsing
To disable multiple features, separate values with | . For
example, inprivate|password disables both InPrivate and
password storage.
NOTE
Edge for Android does not support disabling the password manager.
Disable extensions
You can disable the extension framework within Edge for Android to prevent users from installing any app extensions. To
do this, configure the following setting:
K EY VA L UE
K EY VA L UE
K EY VA L UE
NOTE
Edge for iOS and Android can block access to sites only when they are accessed directly. It doesn't block access when users use
intermediate services (such as a translation service) to access the site.
Use the following key/value pairs to configure either an allowed or blocked site list for Edge for iOS and Android.
K EY VA L UE
com.microsoft.intune.mam.managedbrowser.AllowListURLs The corresponding value for the key is a list of URLs. You enter all
the URLs you want to allow as a single value, separated by a pipe
| character.
Examples:
URL1|URL2|URL3
http://.contoso.com/|https://.bing.com/|https://expenses.contoso.com
K EY VA L UE
com.microsoft.intune.mam.managedbrowser.BlockListURLs The corresponding value for the key is a list of URLs. You enter all
the URLs you want to block as a single value, separated by a pipe
| character.
Examples:
URL1|URL2|URL3
http://.contoso.com/|https://.bing.com/|https://expenses.contoso.com
com.microsoft.intune.mam.managedbrowser.AllowTransitionOnBlo true (default) allows Edge for iOS and Android to transition
ck restricted sites. When personal accounts are not disabled, users
are prompted to either switch to the personal context to open the
restricted site, or to add a personal account. If
com.microsoft.intune.mam.managedbrowser.openInPrivateIfBlocke
d is set to true, users have the capability of opening the restricted
site in the InPrivate context.
false prevents Edge for iOS and Android from transitioning
users. Users are simply shown a message stating that the site
they are trying to access is blocked.
com.microsoft.intune.mam.managedbrowser.durationOfOpenInPri Enter the number of seconds that users will see the snack bar
vateSnackBar notification "Link opened with InPrivate mode. Your organization
requires the use of InPrivate mode for this content." By default,
the snack bar notification is shown for 7 seconds.
The following sites are always allowed regardless of the defined allow list or block list settings:
https://*.microsoft.com/*
http://*.microsoft.com/*
https://microsoft.com/*
http://microsoft.com/*
https://*.windowsazure.com/*
https://*.microsoftonline.com/*
https://*.microsoftonline-p.com/*
You can specify port numbers in the address. If you do not specify a port number, the values used are:
Port 80 for http
Port 443 for https
Using wildcards for the port number is not supported. For example, http://www.contoso.com:* and
http://www.contoso.com:*/ are not supported.
The following are examples of some of the inputs that you can't specify:
*.com
*.contoso/*
www.contoso.com/*images
www.contoso.com/*images*pigs
www.contoso.com/page*
IP addresses
https://*
http://*
http://www.contoso.com:*
http://www.contoso.com: /*
NOTE
Updated Application Proxy redirection data can take up to 24 hours to take effect in Edge for iOS and Android.
Target Edge for iOS with the following key/value pair, to enable Application Proxy:
K EY VA L UE
NOTE
Edge for Android does not consume this key. Instead, Edge for Android consumes Azure AD Application Proxy configuration
automatically as long as the signed-in Azure AD account has an App Protection Policy applied.
For more information about how to use Edge for iOS and Android and Azure AD Application Proxy in tandem for
seamless (and protected) access to on-premises web apps, see Better together: Intune and Azure Active Directory team up
to improve user access. This blog post references the Intune Managed Browser, but the content applies to Edge for iOS
and Android as well.
Manage NTLM single sign-on sites
Organizations may require users to authenticate with NTLM to access intranet web sites. By default, users are prompted to
enter credentials each time they access a web site that requires NTLM authentication as NTLM credential caching is
disabled.
Organizations can enable NTLM credential caching for particular web sites. For these sites, after the user enters
credentials and successfully authenticates, the credentials are cached by default for 30 days.
K EY VA L UE
com.microsoft.intune.mam.managedbrowser.NTLMSSOURLs The corresponding value for the key is a list of URLs. You enter all
the URLs you want to allow as a single value, separated by a pipe
| character.
Examples:
URL1|URL2
http://app.contoso.com/|https://expenses.contoso.com
NOTE
When both Allowed URLs and Blocked URLs are defined in the policy, only the allowed list is honored.
9. If you want to additional app configuration settings not exposed in the above policy, expand the General
configuration settings node and enter in the key value pairs accordingly.
10. When you are finished configuring the settings, choose Next .
11. On the Assignments section, choose Select groups to include . Select the Azure AD group to which you want to
assign the app configuration policy, and then choose Select .
12. When you are finished with the assignments, choose Next .
13. On the Create app configuration policy Review + Create blade, review the settings configured and choose
Create .
The newly created configuration policy is displayed on the App configuration blade.
Use Edge for iOS and Android to access managed app logs
Users with Edge for iOS and Android installed on their iOS or Android device can view the management status of all
Microsoft published apps. They can send logs for troubleshooting their managed iOS or Android apps by using the
following steps:
1. Open Edge for iOS and Android on your device.
2. Type about:intunehelp in the address box.
3. Edge for iOS and Android launches troubleshooting mode.
For a list of the settings stored in the app logs, see Review client app protection logs.
To see how to view logs on Android devices, see Send logs to your IT admin by email.
Next steps
What are app protection policies?
App configuration policies for Microsoft Intune
Manage collaboration experiences using Office for
iOS and Android with Microsoft Intune
9/4/2020 • 8 minutes to read • Edit Online
Office for iOS and Android delivers several key benefits including:
Combining Word, Excel, and PowerPoint in a way that simplifies the experience with fewer apps to download or
switch between. It requires far less phone storage than installing individual apps while maintaining virtually all
the capabilities of the existing mobile apps people already know and use.
Integrating Office Lens technology to unlock the power of the camera with capabilities like converting images
into editable Word and Excel documents, scanning PDFs, and capturing whiteboards with automatic digital
enhancements to make the content easier to read.
Adding new functionality for common tasks people often encounter when working on a phone—things like
making quick notes, signing PDFs, scanning QR codes, and transferring files between devices.
The richest and broadest protection capabilities for Microsoft 365 data are available when you subscribe to the
Enterprise Mobility + Security suite, which includes Microsoft Intune and Azure Active Directory Premium features,
such as conditional access. At a minimum, you will want to deploy a conditional access policy that allows
connectivity to Office for iOS and Android from mobile devices and an Intune app protection policy that ensures
the collaboration experience is protected.
NOTE
This policy ensures mobile users can access all Office endpoints using the applicable apps.
IMPORTANT
To apply Intune app protection policies against apps on Android devices that are not enrolled in Intune, the user must also
install the Intune Company Portal. For more information, see What to expect when your Android app is managed by app
protection policies.
Each configuration scenario highlights its specific requirements. For example, whether the configuration scenario
requires device enrollment, and thus works with any UEM provider, or requires Intune App Protection Policies.
NOTE
With Microsoft Endpoint Manager, app configuration delivered through the MDM OS channel is referred to as a Managed
Devices App Configuration Policy (ACP); app configuration delivered through the App Protection Policy channel is referred to
as a Managed Apps App Configuration Policy.
NOTE
At this time, only Office for Android supports org allowed accounts mode.
NOTE
If an App Protection Policy is targeted to the users, the recommendation is to deploy the general app configuration settings
in a Managed Apps enrollment model. This ensures the App Configuration Policy is deployed to both enrolled devices and
unenrolled devices.
K EY VA L UE
com.microsoft.office.NotesCreationEnabled true (default) enables Sticky Notes creation for the work or
school account
false disables Sticky Notes creation for the work or school
account
K EY VA L UE
com.microsoft.office.ShareNearby.IsAllowed.IntuneMAMOnly true (default) enables the Share Nearby feature for the work
or school account
false disables the Share Nearby feature for the work or school
account
com.microsoft.office.TransferFiles.IsAllowed.IntuneMAMOnly true (default) enables the Transfer Files feature for the work or
school account
false disables the Transfer Files feature for the work or school
account
Next steps
What are app protection policies?
App configuration policies for Microsoft Intune
Manage messaging collaboration access by using
Outlook for iOS and Android with Microsoft Intune
9/4/2020 • 4 minutes to read • Edit Online
The Outlook for iOS and Android app is designed to enable users in your organization to do more from their
mobile devices, by bringing together email, calendar, contacts, and other files.
The richest and broadest protection capabilities for Microsoft 365 data are available when you subscribe to the
Enterprise Mobility + Security suite, which includes Microsoft Intune and Azure Active Directory Premium features,
such as conditional access. At a minimum, you will want to deploy a conditional access policy that allows
connectivity to Outlook for iOS and Android from mobile devices and an Intune app protection policy that ensures
the collaboration experience is protected.
NOTE
This policy ensures mobile users can access all Office endpoints using the applicable apps.
2. Follow "Step 2: Configure an Azure AD Conditional Access policy for Exchange Online with ActiveSync (EAS)"
in Scenario 1: Office 365 apps require approved apps with app protection policies, which prevents Exchange
ActiveSync clients leveraging basic authentication from connecting to Exchange Online.
The above policies leverage the grant control Require app protection policy, which ensures that an Intune
App Protection Policy is applied to the associated account within Outlook for iOS and Android prior to
granting access. If the user isn't assigned to an Intune App Protection Policy, isn't licensed for Intune, or the
app isn't included in the Intune App Protection Policy, then the policy prevents the user from obtaining an
access token and gaining access to messaging data.
3. Finally, follow How to: Block legacy authentication to Azure AD with Conditional Access to block legacy
authentication for other Exchange protocols on iOS and Android devices; this policy should target only
Microsoft Exchange Online cloud app and iOS and Android device platforms. This ensures mobile apps using
Exchange Web Services, IMAP4, or POP3 protocols with basic authentication cannot connect to Exchange
Online.
IMPORTANT
To apply Intune app protection policies against apps on Android devices that are not enrolled in Intune, the user must also
install the Intune Company Portal. For more information, see What to expect when your Android app is managed by app
protection policies.
Next steps
What are app protection policies?
App configuration policies for Microsoft Intune
Manage team collaboration access by using Teams
for iOS and Android with Microsoft Intune
9/4/2020 • 5 minutes to read • Edit Online
Microsoft Teams is the hub for team collaboration in Microsoft 365 that integrates the people, content, and tools
your team needs to be more engaged and effective.
The richest and broadest protection capabilities for Microsoft 365 data are available when you subscribe to the
Enterprise Mobility + Security suite, which includes Microsoft Intune and Azure Active Directory Premium features,
such as conditional access. At a minimum, you will want to deploy a conditional access policy that allows
connectivity to Teams for iOS and Android from mobile devices and an Intune app protection policy that ensures
the collaboration experience is protected.
NOTE
This policy ensures mobile users can access all Office endpoints using the applicable apps.
IMPORTANT
To apply Intune app protection policies against apps on Android devices that are not enrolled in Intune, the user must also
install the Intune Company Portal. For more information, see What to expect when your Android app is managed by app
protection policies.
IMPORTANT
For configuration scenarios that require device enrollment on Android, the devices must be enrolled in Android Enterprise
and Teams for Android must be deployed via the Managed Google Play store. For more information, see Set up enrollment of
Android Enterprise work profile devices and Add app configuration policies for managed Android Enterprise devices.
Each configuration scenario highlights its specific requirements. For example, whether the configuration scenario
requires device enrollment, and thus works with any UEM provider, or requires Intune App Protection Policies.
NOTE
With Microsoft Endpoint Manager, app configuration delivered through the MDM OS channel is referred to as a Managed
Devices App Configuration Policy (ACP); app configuration delivered through the App Protection Policy channel is referred to
as a Managed Apps App Configuration Policy.
Only allow work or school accounts
Respecting the data security and compliance policies of our largest and highly regulated customers is a key pillar to
the Microsoft 365 value. Some companies have a requirement to capture all communications information within
their corporate environment, as well as, ensure the devices are only used for corporate communications. To support
these requirements, Teams for iOS and Android on enrolled devices can be configured to only allow a single
corporate account to be provisioned within the app.
You can learn more about configuring the org allowed accounts mode setting here:
Android setting
iOS setting
This configuration scenario only works with enrolled devices. However, any UEM provider is supported. If you are
not using Microsoft Endpoint Manager, you need to consult with your UEM documentation on how to deploy these
configuration keys.
Next steps
What are app protection policies?
App configuration policies for Microsoft Intune
Configure Google Chrome for Android devices using
Intune
9/4/2020 • 2 minutes to read • Edit Online
You can use an Intune app configuration policy to configure Google Chrome for Android devices. The settings for
the app can be automatically applied. For example, you can specifically set the bookmarks and the URLs that you
would like to block or allow.
Prerequisites
The user's Android Enterprise device must be enrolled in Intune. For more information, see Set up enrollment of
Android Enterprise work profile devices.
Google Chrome is added as a Managed Google Play app. For more information about Managed Google Play, see
Connect your Intune account to your Managed Google Play account.
4. Assign Google Chrome to a user group as a required app type. Google Chrome will be deployed
automatically when the device is enrolled into Intune.
For additional details about adding a Managed Google Play app to Intune, see Managed Google Play store apps.
3. Click Associated app to display the Associated app pane. Find and select Google Chrome . This list
contains Managed Google Play apps that you've approved and synchronized with Intune.
4. Click Configuration settings , select Use configuration designer , and then click Add to select the
configuration keys.
The above settings create bookmarks and block access to all URLs except baidu.com , yahoo.com ,
chromium.org , and chrome:// .
2. Launch Google Chrome and visit chrome://policy . We can confirm if the settings are applied successfully.
Additional information
Add app configuration policies for managed Android Enterprise devices
Chrome Enterprise policy list
Next steps
For more information about Android Enterprise fully managed devices, see Set up Intune enrollment of Android
Enterprise fully manage devices.
Use a VPN and per-app VPN policy on Android
Enterprise devices in Microsoft Intune
9/4/2020 • 8 minutes to read • Edit Online
Virtual private networks (VPN) allow users to access organization resources remotely, including from home, hotels,
cafes, and more. In Microsoft Intune, you can configure VPN client apps on Android Enterprise devices using an app
configuration policy. Then, deploy this policy with its VPN configuration to devices in your organization.
You can also create VPN policies that are used by specific apps. This feature is called per-app VPN. When the app is
active, it can connect to the VPN, and access resources through the VPN. When the app isn't active, the VPN isn't
used.
This feature applies to:
Android Enterprise
There are two ways to build the app configuration policy for your VPN client app:
Configuration designer
JSON data
This article shows you how to create a per-app VPN and VPN app configuration policy using both options.
NOTE
Many of the VPN client configuration parameters are similar. But, each app has its unique keys and options. Consult with your
VPN vendor if you have questions.
For Line of Business (LOB) apps, get the package ID from the vendor or application developer.
Certificates
This article assumes your VPN connection uses certificate-based authentication. It also assumes you successfully
deployed all the certificates in the chain needed for clients to successfully authenticate. Typically, this certificate
chain includes the client certificate, any intermediate certificates, and the root certificate.
For more information on certificates, see Use certificates for authentication in Microsoft Intune.
When your client authentication certificate profile is deployed, it creates a certificate token in the certificate profile.
This token is used to create the VPN app configuration policy.
If you’re not familiar with creating app configuration policies, see Add app configuration policies for managed
Android Enterprise devices.
4. Select Next .
5. In Settings , enter the following properties:
Configuration settings format : Select Use Configuration designer :
Add : Shows the list of configuration keys. Select all the configuration keys needed for your
configuration > OK .
In the following example, we selected a minimal list for AnyConnect VPN, including certificate-based
authentication and per-app VPN:
Configuration value : Enter the values for the configuration keys you selected. Remember, the key
names vary depending on the VPN Client app you're using. In the keys selected in our example:
Per App VPN Allowed Apps : Enter the application package ID(s) you collected earlier. For
example:
KeyChain Cer tificate Alias (optional): Change the Value type from string to cer tificate .
Select the client certificate profile to use with VPN authentication. For example:
Use JSON
Use this option if you don't have, or don't know all the required VPN settings used in the Configuration designer .
If you need help, consult your VPN vendor.
Get the certificate token
In these steps, create a temporary policy. The policy won't be saved. The intent is to copy the certificate token. You'll
use this token when creating the VPN policy using JSON (next section).
1. In the Microsoft Endpoint Manager admin center, select Apps > App configuration policies > Add >
Managed devices .
2. In Basics , enter the following properties:
Name : Enter any name. This policy is temporary, and won't be saved.
Platform : Select Android Enterprise .
Profile type : Select Work Profile Only .
Targeted app : Select the VPN client app you previously added.
3. Select Next .
4. In Settings , enter the following properties:
Configuration settings format : Select Use configuration designer .
Add : Shows the list of configuration keys. Select any key with a Value type of string . Select OK .
5. Change the Value type from string to cer tificate . This step lets you select the correct client certificate
profile that authenticates the VPN:
6. Immediately change the Value type back to string . The Configuration value changes to a token
{{cert:GUID}} :
7. Copy and paste this certificate token to another file, such as a text editor.
8. Discard this policy. Don't save it. The only purpose is to copy and paste the certificate token.
Create the VPN policy using JSON
1. In the Microsoft Endpoint Manager admin center, select Apps > App configuration policies > Add >
Managed devices .
2. In Basics , enter the following properties:
Name : Enter a descriptive name for the policy. Name your policies so you can easily identify them later.
For example, a good policy name is App config policy: JSON Cisco AnyConnect VPN policy for
Android Enterprise work profile devices in entire company .
Description : Enter a description for the policy. This setting is optional, but recommended.
Platform : Select Android Enterprise .
Profile type : Your options:
All profile types : This option supports username and password authentication. If you use
certificate-based authentication, don't use this option.
Fully Managed, Dedicated, and Corporate-Owned work profile only : This option supports
certificate-based authentication, and username and password authentication.
Work Profile Only : This option supports certificate-based authentication, and username and
password authentication.
Targeted app : Select the VPN client app you previously added.
3. Select Next .
4. In Settings , enter the following properties:
Configuration settings format : Select Enter JSON data . You can edit the JSON directly.
Download JSON template : Use this option to download, and update the template in any external
editor. Be careful with text editors that use Smar t quotes , as they may create invalid JSON.
After you enter the values needed for your configuration, remove all settings that have "STRING_VALUE" or
STRING_VALUE .
5. Select Next .
6. In Assignments , select the groups to assign the VPN app configuration policy.
Select Next .
7. In Review + create , review your settings. When you select Create , your changes are saved, and the policy
is deployed to your groups. The policy is also shown in the app configuration policies list.
JSON example for F5 Access VPN
{
"kind": "androidenterprise#managedConfiguration",
"productId": "app:com.f5.edge.client_ics",
"managedProperty": [
{
"key": "disallowUserConfig",
"valueBool": false
},
{
"key": "vpnConfigurations",
"valueBundleArray": [
{
"managedProperty": [
{
"key": "name",
"valueString": "MyCorpVPN"
},
},
{
"key": "server",
"valueString": "vpn.contoso.com"
},
{
"key": "weblogonMode",
"valueBool": false
},
{
"key": "fipsMode",
"valueBool": false
},
{
"key": "clientCertKeychainAlias",
"valueString": "{{cert:77333880-14e9-0aa0-9b2c-a1bc6b913829}}"
},
{
"key": "allowedApps",
"valueString": "com.microsoft.emmx"
},
{
"key": "mdmAssignedId",
"valueString": ""
},
{
"key": "mdmInstanceId",
"valueString": ""
},
{
"key": "mdmDeviceUniqueId",
"valueString": ""
},
{
"key": "mdmDeviceWifiMacAddress",
"valueString": ""
},
{
"key": "mdmDeviceSerialNumber",
"valueString": ""
},
{
"key": "allowBypass",
"valueBool": false
}
]
}
]
}
]
}
Additional information
Add app configuration policies for managed Android Enterprise devices
Android Enterprise device settings to configure VPN in Intune
Next steps
Create VPN profiles to connect to VPN servers in Intune
Manage volume-purchased apps and books with
Microsoft Intune
9/4/2020 • 2 minutes to read • Edit Online
Introduction
Some app stores give you the ability to purchase multiple licenses for an app or books that you want to use in
your company. Buying licenses in bulk can help you reduce the administrative overhead of tracking multiple
purchased copies of apps and books.
Microsoft Intune helps you manage apps and books that you purchased through such a program. You import
license information from the store, and track how many licenses you have used. This process helps to ensure that
you don't install more copies of the app or book than you own.
Apple lets you purchase multiple licenses for an app that you want to use in your organization on iOS/iPadOS and
macOS devices using Apple Business Manager or Apple School Manager. You can then synchronize your volume
purchase information with Intune and track your volume-purchased app use. Purchasing app licenses helps you
efficiently manage apps within your company and retain ownership and control of purchased apps.
Microsoft Intune helps you manage apps purchased through this program by:
Synchronizing location tokens you download from Apple Business Manager.
Tracking how many licenses are available and have been used for purchased apps.
Helping you install apps up to the number of licenses you own.
Additionally, you can synchronize, manage, and assign books you purchased from Apple Business Manager with
Intune to iOS/iPadOS devices. For more information, see How to manage iOS/iPadOS eBooks you purchased
through a volume-purchase program.
App Store sign-in Not required. Each end user must use a unique Apple
ID when prompted to sign in to App
Store.
Device configuration blocking access to Apps can be installed and updated The invitation to join Apple VPP
App Store using Company Portal. requires access to App Store. If you
have set a policy to disable App Store,
user licensing for VPP apps will not
work.
A C T IO N DEVIC E L IC EN SIN G USER L IC EN SIN G
Automatic app update As configured by the Intune admin in As configured by end user in personal
Apple VPP token settings. App Store settings. This cannot be
If the assignment type is available managed by the Intune admin.
for enrolled devices, available app
updates can also be installed from
the Company Portal by selecting
the Update action on the app
details page.
Licenses used 1 license per device. The license is 1 license for up to 5 devices using the
associated with the device. same personal Apple ID. The license is
associated with the user.
An end user associated with a
personal Apple ID and a Managed
Apple ID in Intune consumes 2 app
licenses.
License migration Apps can migrate silently from user to Apps cannot migrate from device to
device licenses. user licenses.
NOTE
Company Portal does not show device-licensed apps on User Enrollment devices because only user-licensed apps can be
installed on User Enrollment devices.
Prerequisites
An Apple Business Manager or Apple School Manager account for your organization.
Purchased app licenses assigned to one or more location tokens.
Downloaded location tokens.
IMPORTANT
A location token can only be used with one device management solution at a time. Before you start to use purchased
apps with Intune, revoke and remove any existing location tokens used with other mobile device management (MDM)
vendor.
A location token is only supported for use on one Intune tenant at a time. Do not reuse the same token for multiple
Intune tenants.
By default, Intune synchronizes the location tokens with Apple twice a day. You can initiate a manual sync at any time
from Intune.
After you have imported the location token to Intune, do not import the same token to any other device management
solution. Doing so might result in the loss of license assignment and user records.
IMPORTANT
For the best migration experience, migrate only one VPP purchaser per location. If each purchaser migrates to a unique
location, all licenses — assigned and unassigned — will move to Apps and Books.
Do not delete the existing legacy VPP token in Intune or apps and assignments associated with existing legacy VPP
token in Intune. These actions will require all app assignments to be recreated in Intune.
Migrate existing purchased VPP content and tokens to Apps and Books in Apple Business Manager or Apple
School Manager as follows:
1. Invite VPP purchasers to join your organization and direct each user to select a unique location.
2. Ensure that all VPP purchasers within your organization have completed step 1 before proceeding.
3. Verify that all purchased apps and licenses have migrated to Apps and Books in Apple Business Manager or
Apple School Manager.
4. Download the new location token by going to Apple Business (or School) Manager > Settings > Apps
and Books > My Ser ver Tokens .
5. Update the location token in Microsoft Endpoint Manager admin center by going to Tenant administration
> Connectors and tokens > Apple VPP tokens and manually upload the token.
WARNING
Changing the country/region will update the apps metadata and App Store URL on next sync with the
Apple service for apps created with this token. The app will not be updated if it does not exist in the new
country/region store.
NOTE
Automatic app updates for Apple VPP apps will automatically update for both Required and Available
install intents. For apps deployed with Available install intent, the automatic update generates a status
message for the IT admin informing that a new version of the app is available. This status message is
viewable by selecting the app, selecting Device Install Status, and checking the Status Details.
I grant Microsoft permission to send both user and device information to Apple. - You
must select I agree to proceed. To review what data Microsoft sends to Apple, see Data Intune
sends to Apple.
7. Click Next to display the Scope tags page.
8. Click Select scope tags to optionally add scope tags for the app. For more information, see Use role-based
access control (RBAC) and scope tags for distributed IT.
9. Click Next to display the Review + create page. Review the values and settings you entered for the VPP
token.
10. When you are done, click Create . The token is displayed in the list of tokens pane.
NOTE
Intune (or any other MDM for that matter) does not actually install VPP apps. Instead, Intune connects to your VPP
account and tells Apple which app licenses to assign to which devices. From there, all the actual installation is handled
between Apple and the device.
IN VIT E TO A P P L E VP P A P P IN STA L L P RO M P T F O R A P P L E
# SC EN A RIO P RO GRA M P RO M P T ID
4 BYOD – device N Y N
licensed
5 CORP – device N Y N
licensed (not
supervised device)
6 CORP – device N N N
licensed (supervised
device)
7 Kiosk mode N N N
(supervised device) –
device licensed
NOTE
It is not recommended to assign VPP apps to Kiosk-mode devices using user licensing.
Revoking app licenses
You can revoke all associated iOS/iPadOS or macOS volume-purchase program (VPP) app licenses based on a
given device, user, or app. But there are some differences between iOS/iPadOS and macOS platforms.
A C T IO N IO S/ IPA DO S MAC OS
Remove app assignment When you remove an app that was When you remove an app that was
assigned to a user, Intune reclaims the assigned to a user, Intune reclaims the
user or device license and uninstalls the user or device license. The app is not
app from the device. uninstalled from the device.
Revoke app license Revoking an app license reclaims the Revoking an app license reclaims the
app license from the user or device. You app license from the user or device. The
must change the assignment to macOS app with revoked license
Uninstall to remove the app from the remains usable on the device, but
device. cannot be updated until a license is
reassigned to the user or device.
According to Apple, such apps are
removed after a 30-day grace period.
However, Apple does not provide a
means for Intune to remove the app
using Uninstall assignment action.
NOTE
Intune reclaims app licenses when an employee leaves the company and is no longer part of the AAD groups.
When assigning a purchased app with Uninstall intent, Intune both reclaims the license and uninstalls the app.
App licenses are not reclaimed when a device is removed from Intune management.
NOTE
Intune cannot revoke app licenses after a token has been deleted.
To revoke the license of all VPP apps for a given VPP token, you must first revoke all app licenses associated with
the token, then delete the token.
Additional information
Apple provides direct assistance to create and renew VPP tokens. For more information, see Distribute content to
your users with the Volume Purchase Program (VPP) as part of Apple's documentation.
If Assigned to external MDM is indicated in the Intune portal, then you (the Admin) must remove the VPP
token from the 3rd party MDM before using the VPP token in Intune.
If status is Duplicate for a token, then multiple tokens with the same Token Location have been uploaded.
Remove the duplicate token to begin syncing the token again. You can still assign and revoke licenses for tokens
that are marked as duplicate. However, licenses for new apps and books purchased may not be reflected once a
token is marked as duplicate.
Next steps
See How to monitor apps for information to help you monitor app assignments.
See How to troubleshoot apps for information on troubleshooting app-related issues.
How to manage volume purchased apps from the
Microsoft Store for Business with Microsoft Intune
9/4/2020 • 4 minutes to read • Edit Online
The Microsoft Store for Business gives you a place to find and purchase apps for your organization, individually,
or in volume. By connecting the store to Microsoft Intune, you can manage volume-purchased apps from the
Azure portal. For example:
You can synchronize the list of apps you have purchased (or that are free) from the store with Intune.
Apps that are synchronized appear in the Intune administration console; you can assign these apps like any
other apps.
Both Online and Offline licensed versions of Apps are synchronized to Intune. App names will be appended
with "Online" or "Offline" in the portal.
You can track how many licenses are available, and how many are being used in the Intune administration
console.
Intune blocks assignment and installation of apps if there are an insufficient number of licenses available.
Apps managed by Microsoft Store for Business will automatically revoke licenses when a user leaves the
enterprise, or when the administrator removes the user and the user devices.
NOTE
If you disable access to the Store on managed devices (either manually, via policy or Group Policy), Online licensed apps will
fail to install.
NOTE
You could previously only associate one management tool to assign apps with the Microsoft Store for Business. You can
now associate multiple management tools with the store, for example, Intune and Configuration Manager.
You can now continue, and set up synchronization in the Intune console.
Configure synchronization
1. Sign in to the Microsoft Endpoint Manager admin center.
2. Select Tenant administration > Connectors and tokens > Microsoft Store for Business .
3. Click Enable .
4. If you haven't already done so, click the link to sign up for the Microsoft Store for Business and associate your
account as detailed previously.
5. From the Language drop-down list, choose the language in which apps from the Microsoft Store for Business
are displayed in the Azure portal. Regardless of the language in which they are displayed, they are installed in
the end user's language when available.
6. Click Sync to get the apps you've purchased from the Microsoft Store into Intune.
Synchronize apps
If you've already associated your Microsoft Store for Business account with your Intune admin credentials, you
can manually sync your Microsoft Store for Business apps with Intune using the following steps.
1. Select Tenant administration > Connectors and tokens > Microsoft Store for Business .
2. Click Sync to get the apps you've purchased from the Microsoft Store into Intune.
NOTE
Apps with encrypted app packages are currently not supported and will not be synchronized to Intune.
Assign apps
You assign apps from the store in the same way you assign any other Intune app. For more information, see How
to assign apps to groups with Microsoft Intune.
Offline apps can be targeted to user groups, device groups, or groups with users and devices. Offline apps can be
installed for a specific user on a device or for all users on a device.
When you assign a Microsoft Store for Business app, a license is used by each user who installs the app. If you
use all of the available licenses for an assigned app, you cannot assign any more copies. Take one of the following
actions:
Uninstall the app from some devices.
Reduce the scope of the current assignment, targeting only the users you have sufficient licenses for.
Buy more copies of the app from the Microsoft Store for Business.
Remove apps
To remove an app that is synced from the Microsoft Store for Business, you need to log into the Microsoft Store
for Business and refund the app. The process is the same whether the app is free or not. For a free app, the store
will refund $0. The example below shows a refund for a free app.
NOTE
Removing an app's visibility in the private store won't keep Intune from syncing the app. You must refund the app to fully
remove the app.
Next steps
Manage volume-purchased apps and books with Microsoft Intune
How to manage iOS/iPadOS eBooks you purchased
through a volume-purchase program with Microsoft
Intune
9/4/2020 • 3 minutes to read • Edit Online
The Apple Volume Purchase Program (VPP) lets you purchase multiple licenses for a book that you want to
distribute to users in your company. You can distribute books from the Business, or Education stores.
Microsoft Intune helps you synchronize, manage, and assign books that you purchased through this program. You
can import license information from the store and track how many of the licenses you have used.
The procedures to manage books are similar to managing VPP apps.
Next steps
See How to monitor apps for information to help you monitor book assignments.
How to wipe only corporate data from Intune-
managed apps
9/4/2020 • 4 minutes to read • Edit Online
When a device is lost or stolen, or if the employee leaves your company, you want to make sure company app
data is removed from the device. But you might not want to remove personal data on the device, especially if the
device is an employee-owned device.
NOTE
The iOS/iPadOS, Android, and Windows 10 platforms are the only platforms currently supported for wiping corporate data
from Intune managed apps. Intune managed apps are applications that include the Intune APP SDK and have a licensed
user account for your organization. Deployment of Application Protection Policies are not required to enable app selective
wipe.
To selectively remove company app data, create a wipe request by using the steps in this topic. After the request is
finished, the next time the app runs on the device, company data is removed from the app. In addition to creating
a wipe request, you can configure a selective wipe of your organization's data as a new action when the conditions
of Application Protection Policies (APP) Access settings are not met. This feature helps you automatically protect
and remove sensitive organization data from applications based on pre-configured criteria.
IMPORTANT
Contacts synced directly from the app to the native address book are removed. Any contacts synced from the native
address book to another external source can't be wiped. Currently, this only applies to the Microsoft Outlook app.
Additionally, you are able to see the device name, and its device type, which can be helpful when reading the
reports.
IMPORTANT
The user must open the app for the wipe to occur, and the wipe may take up to 30 minutes after the request was made.
App protection policies (APP) are rules that ensure an organization's data remains safe or contained in a
managed app. A policy can be a rule that is enforced when the user attempts to access or move "corporate"
data, or a set of actions that are prohibited or monitored when the user is inside the app. A managed app is an
app that has app protection policies applied to it, and can be managed by Intune.
Mobile Application Management (MAM) app protection policies allows you to manage and protect your
organization's data within an application. With MAM without enrollment (MAM-WE), a work or school-
related app that contains sensitive data can be managed on almost any device, including personal devices in
bring-your-own-device (BYOD) scenarios. Many productivity apps, such as the Microsoft Office apps, can be
managed by Intune MAM. See the official list of Microsoft Intune protected apps available for public use.
NOTE
Mobile app management policies should not be used with third-party mobile app management or secure
container solutions.
Not enrolled in any mobile device management solution: These devices are typically employee
owned devices that aren't managed or enrolled in Intune or other MDM solutions.
IMPORTANT
You can create mobile app management policies for Office mobile apps that connect to Microsoft 365 services. You can
also protect access to Exchange on-premises mailboxes by creating Intune app protection policies for Outlook for
iOS/iPadOS and Android enabled with hybrid Modern Authentication. Before using this feature, make sure you meet the
Outlook for iOS/iPadOS and Android requirements. App protection policies are not supported for other apps that
connect to on-premises Exchange or SharePoint services.
IMPORTANT
The Intune Company Portal is required on the device to receive App Protection Policies on Android. For more
information, see the Intune Company Portal access apps requirements.
For BYOD devices not enrolled in any MDM solution, App protection policies can help protect company data at
the app level. However, there are some limitations to be aware of, such as:
You can't deploy apps to the device. The end user has to get the apps from the store.
You can't provision certificate profiles on these devices.
You can't provision company Wi-Fi and VPN settings on these devices.
NOTE
The Outlook mobile app currently only supports Intune App Protection for Microsoft Exchange Online and
Exchange Server with hybrid modern authentication and does not support Exchange in Office 365 Dedicated.
NOTE
Although Edge is in "corporate" context, user can intentionally move OneDrive "corporate" context files to an unknown
personal cloud storage location. To avoid this, see Manage restricted web sites and configure the allowed/blocked site list
for Edge.
For more information about multi-identity in Intune, see MAM and multi-identity.
Intune app PIN
The Personal Identification Number (PIN) is a passcode used to verify that the correct user is accessing the
organization's data in an application.
PIN prompt
Intune prompts for the user's app PIN when the user is about to access "corporate" data. In multi-identity apps
such as Word, Excel, or PowerPoint, the user is prompted for their PIN when they try to open a "corporate"
document or file. In single-identity apps, such as line-of-business apps managed using the Intune App
Wrapping Tool, the PIN is prompted at launch, because the Intune SDK knows the user's experience in the app is
always "corporate".
PIN prompt, or corporate credential prompt, frequency
The IT admin can define the Intune app protection policy setting Recheck the access requirements after
(minutes) in the Intune admin console. This setting specifies the amount of time before the access
requirements are checked on the device, and the application PIN screen, or corporate credential prompt, is
shown again. However, important details about PIN that affect how often the user will be prompted are:
The PIN is shared among apps of the same publisher to improve usability:
On iOS/iPadOS, one app PIN is shared amongst all apps of the same app publisher . For example, all
Microsoft apps share the same PIN. On Android, one app PIN is shared amongst all apps.
The Recheck the access requirements after (minutes) behavior after a device reboot:
A timer tracks the number of minutes of inactivity that determine when to show the Intune app PIN, or
corporate credential prompt next. On iOS/iPadOS, the timer is unaffected by device reboot. Thus, device
reboot has no effect on the number of minutes the user has been inactive from an iOS/iPadOS app with
Intune PIN (or corporate credential) policy targeted. On Android, the timer is reset on device reboot. As such,
Android apps with Intune PIN (or corporate credential) policy will likely prompt for an app PIN, or corporate
credential prompt, regardless of the 'Recheck the access requirements after (minutes)' setting value after a
device reboot .
The rolling nature of the timer associated with the PIN:
Once a PIN is entered to access an app (app A), and the app leaves the foreground (main input focus) on the
device, the timer gets reset for that PIN. Any app (app B) that shares this PIN will not prompt the user for PIN
entry because the timer has reset. The prompt will show up again once the 'Recheck the access requirements
after (minutes)' value is met again.
For iOS/iPadOS devices, even if the PIN is shared between apps from different publishers, the prompt will show
up again when the Recheck the access requirements after (minutes) value is met again for the app that is
not the main input focus. So, for example, a user has app A from publisher X and app B from publisher Y, and
those two apps share the same PIN. The user is focused on app A (foreground), and app B is minimized. After
the Recheck the access requirements after (minutes) value is met and the user switches to app B, the PIN
would be required.
NOTE
In order to verify the user's access requirements more often (i.e. PIN prompt), especially for a frequently used app, it is
recommended to reduce the value of the 'Recheck the access requirements after (minutes)' setting.
NOTE
For example, if app A is built with a version prior to 7.1.12 and app B is built with a version greater than or equal to
7.1.12 from the same publisher, the end user will need to set up PINs separately for A and B if both are installed on an
iOS/iPadOS device. If an app C that has SDK version 7.1.9 is installed on the device, it will share the same PIN as app A.
An app D built with 7.1.14 will share the same PIN as app B.
If only apps A and C are installed on a device, then one PIN will need to be set. The same applies to if only apps B and D
are installed on a device.
NOTE
Full device wipe, and selective wipe for MDM can only be achieved on devices enrolled with Intune mobile device
management (MDM).
Next steps
How to create and deploy app protection policies with Microsoft Intune
Available Android app protection policy settings with Microsoft Intune
Available iOS/iPadOS app protection policy settings with Microsoft Intune
See also
Third-party apps such as the Salesforce mobile app work with Intune in specific ways to protect corporate data.
To learn more about how the Salesforce app in particular works with Intune (including MDM app configurations
settings), see Salesforce App and Microsoft Intune.
Data protection framework using app protection
policies
9/4/2020 • 13 minutes to read • Edit Online
As more organizations implement mobile device strategies for accessing work or school data, protecting against
data leakage becomes paramount. Intune's mobile application management solution for protecting against data
leakage is App Protection Policies (APP). APP are rules that ensure an organization's data remains safe or
contained in a managed app, regardless of whether the device is enrolled. For more information, see App
protection policies overview.
When configuring App Protection Policies, the number of various settings and options enable organizations to
tailor the protection to their specific needs. Due to this flexibility, it may not be obvious which permutation of
policy settings are required to implement a complete scenario. To help organizations prioritize client endpoint
hardening endeavors, Microsoft has introduced a new taxonomy for security configurations in Windows 10, and
Intune is leveraging a similar taxonomy for its APP data protection framework for mobile app management.
The APP data protection configuration framework is organized into three distinct configuration scenarios:
Level 1 enterprise basic data protection – Microsoft recommends this configuration as the minimum data
protection configuration for an enterprise device.
Level 2 enterprise enhanced data protection – Microsoft recommends this configuration for devices where
users access sensitive or confidential information. This configuration is applicable to most mobile users
accessing work or school data. Some of the controls may impact user experience.
Level 3 enterprise high data protection – Microsoft recommends this configuration for devices run by an
organization with a larger or more sophisticated security team, or for specific users or groups who are at
uniquely high risk (users who handle highly sensitive data where unauthorized disclosure causes
considerable material loss to the organization). An organization likely to be targeted by well-funded and
sophisticated adversaries should aspire to this configuration.
Preview Production tenant Mobile capability End user scenario 7-14 days, post
owners, UX validation, user facing Quality Assurance
documentation
DEP LO Y M EN T RIN G T EN A N T A SSESSM EN T T EA M S O UT P UT T IM EL IN E
As the above table indicates, all changes to the App Protection Policies should be first performed in a pre-
production environment to understand the policy setting implications. Once testing is complete, the changes can
be moved into production and applied to a subset of production users, generally, the IT department and other
applicable groups. And finally, the rollout can be completed to the rest of the mobile user community. Rollout to
production may take a longer amount of time depending on the scale of impact regarding the change. If there is
no user impact, the change should roll out quickly, whereas, if the change results in user impact, rollout may need
to go slower due to the need to communicate changes to the user population.
When testing changes to an APP, be aware of the delivery timing. The status of APP delivery for a given user can
monitored. For more information, see How to monitor app protection policies.
Individual APP settings for each app can be validated on devices using Edge and the URL about:Intunehelp. For
more information, see Review client app protection logs and Use Edge for iOS and Android to access managed
app logs.
Data Transfer Send org data to other apps All apps iOS/iPadOS, Android
Data Transfer Receive data from other All apps iOS/iPadOS, Android
apps
Data Transfer Restrict cut, copy, and paste Any app iOS/iPadOS, Android
between apps
Access requirements
SET T IN G VA L UE P L AT F O RM N OT ES
App PIN when device PIN is Require iOS/iPadOS, Android If the device is enrolled in
set Intune, administrators can
consider setting this to "Not
required" if they are
enforcing a strong device
PIN via a device compliance
policy.
Conditional launch
SET T IN G
SET T IN G DESC RIP T IO N VA L UE / A C T IO N P L AT F O RM N OT ES
App conditions Offline grace period 720 / Block access iOS/iPadOS, Android
(minutes)
App conditions Offline grace period 90 / Wipe data (days) iOS/iPadOS, Android
Device conditions SafetyNet device Basic integrity and Android This setting
attestation certified devices / configures
Block access Google's
SafetyNet
Attestation on
end user devices.
Basic integrity
validates the
integrity of the
device. Rooted
devices,
emulators, virtual
devices, and
devices with signs
of tampering fail
basic integrity.
Basic integrity
and certified
devices validates
the compatibility
of the device with
Google's services.
Only unmodified
devices that have
been certified by
Google can pass
this check.
Device conditions Require threat scan N/A / Block access Android This setting ensures
on apps that Google's Verify
Apps scan is turned
on for end user
devices. If configured,
the end user will be
blocked from access
until they turn on
Google's app
scanning on their
Android device.
Data Transfer Send org data to Policy managed apps iOS/iPadOS, Android With iOS/iPadOS,
other apps administrators
can configure this
value to be
"Policy managed
apps", "Policy
managed apps
with OS sharing",
or "Policy
managed apps
with Open-
In/Share filtering".
Policy managed
apps with OS
sharing is
available when
the device is also
enrolled with
Intune. This
setting allows
data transfer to
other policy
managed apps, as
well as file
transfers to other
apps that have
are managed by
Intune.
Policy managed
apps with Open-
In/Share filtering
filters the OS
Open-in/Share
dialogs to only
display policy
managed apps.
For more
information, see
iOS app
protection policy
settings.
Data Transfer Restrict cut, copy, and Policy managed apps iOS/iPadOS, Android
paste between apps with paste in
Functionality Org data notifications Block Org Data iOS/iPadOS, Android For a list of apps that
support this setting,
see iOS app
protection policy
settings and Android
app protection policy
settings.
Conditional launch
SET T IN G
SET T IN G DESC RIP T IO N VA L UE / A C T IO N P L AT F O RM N OT ES
Device conditions Min patch version Format: YYYY-MM- Android Android devices can
DD receive monthly
Example: 2020-01-01 security patches, but
/ Block access the release is
dependent on OEMs
and/or carriers.
Organizations should
ensure that deployed
Android devices do
receive security
updates before
implementing this
setting. See Android
Security Bulletins for
the latest patch
releases.
Data transfer Receive data from Policy managed apps iOS/iPadOS, Android
other apps
Access requirements
SET T IN G VA L UE P L AT F O RM
Conditional launch
SET T IN G
SET T IN G DESC RIP T IO N VA L UE / A C T IO N P L AT F O RM N OT ES
Device conditions Max allowed threat Secured / Block iOS/iPadOS, Android Unenrolled
level access devices can be
inspected for
threats using
Mobile Threat
Defense. For
more information,
see Mobile Threat
Defense for
unenrolled
devices.
If the device is
enrolled, this
setting can be
skipped in favor
of deploying
Mobile Threat
Defense for
enrolled devices.
For more
information, see
Mobile Threat
Defense for
enrolled devices.
Next steps
Administrators can incorporate the above configuration levels within their ring deployment methodology for
testing and production use by importing the sample Intune App Protection Policy Configuration Framework JSON
templates with Intune's PowerShell scripts.
See also
How to create and deploy app protection policies with Microsoft Intune
Available Android app protection policy settings with Microsoft Intune
Available iOS/iPadOS app protection policy settings with Microsoft Intune
Third-party apps such as the Salesforce mobile app work with Intune in specific ways to protect corporate data.
To learn more about how the Salesforce app in particular works with Intune (including MDM app
configurations settings), see Salesforce App and Microsoft Intune.
How to create and assign app protection policies
9/4/2020 • 11 minutes to read • Edit Online
Learn how to create and assign Microsoft Intune app protection policies (APP) for users of your organization.
This topic also describes how to make changes to existing policies.
VA L UE DESC RIP T IO N
Target to apps on all devices types Use this option to target your policy to apps on devices
of any management state. Choose No to target apps on
specific devices types. For information, see Target app
protection policies based on device management state
Device types Use this option to specify whether this policy applies to
MDM managed devices or unmanaged devices. For
iOS/iPadOS APP policies, select from Unmanaged and
Managed devices. For Android APP policies, select from
Unmanaged , Android device administrator , and
Android Enterprise .
Public apps Click Select public apps to choose the apps to target.
The app(s) you have selected will appear in the public and custom apps list.
6. Click Next to display the Data protection page.
This page provides settings for data loss prevention (DLP) controls, including cut, copy, paste, and save-as
restrictions. These settings determine how users interact with data in the apps that this app protection
policy applies.
Data protection settings :
iOS/iPadOS data protection - For information, see iOS/iPadOS app protection policy settings -
Data protection.
Android data protection - For information, see Android app protection policy settings - Data
protection.
7. Click Next to display the Access requirements page.
This page provides settings to allow you to configure the PIN and credential requirements that users
must meet to access apps in a work context.
Access requirements settings :
iOS/iPadOS access requirements - For information, see iOS/iPadOS app protection policy settings
- Access requirements.
Android access requirements - For information, see Android app protection policy settings -
Access requirements.
8. Click Next to display the Conditional launch page.
This page provides settings to set the sign-in security requirements for your app protection policy. Select
a Setting and enter the Value that users must meet to sign in to your company app. Then select the
Action you want to take if users do not meet your requirements. In some cases, multiple actions can be
configured for a single setting.
Conditional launch settings :
iOS/iPadOS conditional launch - For information, see iOS/iPadOS app protection policy settings -
Conditional launch.
Android conditional launch - For information, see Android app protection policy settings -
Conditional launch.
9. Click Next to display the Assignments page.
The Assignments page allows you to assign the app protection policy to groups of users. You must
apply the policy to a group of users to have the policy take effect.
10. Click Next: Review + create to review the values and settings you entered for this app protection
policy.
11. When you are done, click Create to create the app protection policy in Intune.
TIP
These policy settings are enforced only when using apps in the work context. When end users use the app to do a
personal task, they aren't affected by these policies. Note that when you create a new file it is considered a
personal file.
IMPORTANT
It can take time for app protection policies to apply to existing devices. End users will see a notification on the
device when the app protection policy is applied. Apply your app protection policies to devices before applying
condidtional access rules.
End users can download the apps from the App store or Google Play. For more information, see:
What to expect when your Android app is managed by app protection policies
What to expect when your iOS/iPadOS app is managed by app protection policies
Change existing policies
You can edit an existing policy and apply it to the targeted users. However, when you change existing policies,
users who are already signed in to the apps won't see the changes for an eight-hour period.
To see the effect of the changes immediately, the end user must sign out of the app, and then sign back in.
To change the list of apps associated with the policy
1. In the App protection policies pane, select the policy you want to change.
2. In the Intune App Protection pane, select Proper ties .
3. Next to the section titled Apps, select Edit .
4. The Apps page allows you to choose how you want to apply this policy to apps on different devices. You
must add at least one app.
Target to apps on all devices types Use this option to target your policy to apps on devices
of any management state. Choose No to target apps on
specific devices types. Additional app configuration may
be required for this setting. For more information, see
Target app protection policies based on device
management state.
Device types Use this option to specify whether this policy applies to
MDM managed devices or unmanaged devices. For
iOS/iPadOS APP policies, select from Unmanaged and
Managed devices. For Android APP policies, select from
Unmanaged , Android device administrator , and
Android Enterprise .
Public apps Click Select public apps to choose the apps to target.
The app(s) you have selected will appear in the public and custom apps list.
5. Click Review + create to review the apps selected for this policy.
6. When you are done, click Save to update the app protection policy.
To change the list of user groups
1. In the App protection policies pane, select the policy you want to change.
2. In the Intune App Protection pane, select Proper ties .
3. Next to the section titled Assignments, select Edit .
4. To add a new user group to the policy, on the Include tab choose Select groups to include , and select
the user group. Choose Select to add the group.
5. To exclude a user group, on the Exclude tab choose Select groups to exclude , and select the user
group. Choose Select to remove the user group.
6. To delete groups that were added previously, on either the Include or Exclude tabs, select the ellipsis (...)
and select Delete .
7. Click Review + create to review the user groups selected for this policy.
8. After your changes to the assignments are ready, select Save to save the configuration and deploy the
policy to the new set of users. If you select Cancel before you save your configuration, you will discard
all changes you've made to the Include and Exclude tabs.
To change policy settings
1. In the App protection policies pane, select the policy you want to change.
2. In the Intune App Protection pane, select Proper ties .
3. Next to the section corresponding to the settings you want to change, select Edit . Then change the
settings to new values.
4. Click Review + create to review the updated settings for this policy.
5. Select the Save to save your changes. Repeat the process to select a settings area and modify and then
save your changes, until all your changes are complete. You can then close the Intune App Protection -
Properties pane.
NOTE
For specific iOS/iPadOS support information about app protection policies based on device management state, see MAM
protection policies targeted based on management state.
Policy settings
To see a full list of the policy settings for iOS/iPadOS and Android, select one of the following links:
iOS/iPadOS policies
Android policies
Next steps
Monitor compliance and user status
See also
What to expect when your Android app is managed by app protection policies
What to expect when your iOS/iPadOS app is managed by app protection policies
Android app protection policy settings in Microsoft
Intune
9/4/2020 • 23 minutes to read • Edit Online
This article describes the app protection policy settings for Android devices. The policy settings that are
described can be configured for an app protection policy on the Settings pane in the Azure portal. There are
three categories of policy settings: data protection settings, access requirements, and conditional launch. In this
article, the term policy-managed apps refers to apps that are configured with app protection policies.
IMPORTANT
The Intune Company Portal is required on the device to receive App Protection Policies for Android devices. For more
information, see the Intune Company Portal access apps requirements.
The Intune Managed Browser has been retired. Use Microsoft Edge for your protected Intune browser experience.
Data protection
Data Transfer
SET T IN G H O W TO USE DEFA ULT VA L UE
Backup org data to Android Select Block to prevent this app from Allow
backup ser vices backing up work or school data to the
Android Backup Service.
Send org data to other apps Specify what apps can receive data All apps
from this app:
Policy managed apps : Allow
transfer only to other policy-
managed apps.
All apps : Allow transfer to any
app.
None : Do not allow data
transfer to any app, including
other policy-managed apps.
There are some exempt apps and
services to which Intune may
allow data transfer by default. In
addition, you can create your own
exemptions if you need to allow
data to transfer to an app that
doesn't support Intune APP. For
more information, see Data
transfer exemptions.
This policy may also apply to
Android App Links. General web
links are managed by the Open
app links in Intune Managed
Browser policy setting.
Note
Intune doesn't currently support
the Android Instant Apps
feature. Intune will block any
data connection to or from the
app. For more information, see
Android Instant Apps in the
Android Developer
documentation.
If Send org data to other
apps is configured to All
apps , text data may still be
transferred via OS sharing to
the clipboard.
Save copies of org data Choose Block to disable the use of Allow
the Save As option in this app. Choose
Allow if you want to allow the use of
Save As. Note: This setting is
supported for Microsoft Excel,
OneNote, PowerPoint, and Word. It
may also be supported by third-party
and LOB apps.
SET T IN G H O W TO USE DEFA ULT VA L UE
Allow user to save copies Users can save to the selected services 0 selected
to selected ser vices (OneDrive for Business, SharePoint,
and Local Storage). All other services
will be blocked.
Dialer App Package ID When a specific dialer app has been Blank
selected, you must provide the app
package ID.
Dialer App Name When a specific dialer app has been Blank
selected, you must provide the name
of the dialer app.
Receive data from other apps Specify what apps can transfer data to All apps
this app:
Policy managed apps : Allow
transfer only from other policy-
managed apps.
All apps : Allow data transfer
from any app.
None : Do not allow data
transfer from any app,
including other policy-
managed apps.
There are some exempt apps and
services from which Intune may
allow data transfer. See Data
transfer exemptions for a full list of
apps and services.
SET T IN G H O W TO USE DEFA ULT VA L UE
Restrict cut, copy and paste Specify when cut, copy, and paste Any app
between other apps actions can be used with this app.
Choose from:
Blocked : Do not allow cut,
copy, and paste actions
between this app and any
other app.
Policy managed apps : Allow
cut, copy, and paste actions
between this app and other
policy-managed apps.
Policy managed with paste
in : Allow cut or copy between
this app and other policy-
managed apps. Allow data
from any app to be pasted into
this app.
Any app : No restrictions for
cut, copy, and paste to and
from this app.
Cut and copy character limit Specify the number of characters that 0
for any app may be cut or copied from org data
and accounts. This will allow sharing of
the specified number of characters
when it would be otherwise blocked
by the "Restrict cut, copy, and paste
with other apps" setting.
Default Value = 0
Note : Requires Intune Company
Portal version 5.0.4364.0 or later.
Screen capture and Google Select Block to block screen capture Block
Assistant and the Google Assistant
capabilities of the device when using
this app. Choosing Allow will also blur
the App-switcher preview image when
using this app with a work or school
account.
Approved keyboards Select Require and then specify a list of Not required
approved keyboards for this policy.
Users who aren't using an
approved keyboard receive a
prompt to download and install an
approved keyboard before they
can use the protected app. This
setting requires the app to have
the Intune SDK for Android
version 6.2.0 or above.
SET T IN G H O W TO USE DEFA ULT VA L UE
Note
A user assigned
multiple app protection
policies will be allowed
to use only the
approved keyboards
common to all policies.
Encryption
SET T IN G H O W TO USE DEFA ULT VA L UE
SET T IN G H O W TO USE DEFA ULT VA L UE
Encr ypt org data on enrolled Select Require to enforce encrypting Require
devices org data with Intune app layer
encryption on all devices. Select Not
required to not enforce encrypting
org data with Intune app layer
encryption on enrolled devices.
Functionality
SET T IN G H O W TO USE DEFA ULT VA L UE
Sync app with native contacts Choose Block to prevent the app Allow
app from saving data to the native
Contacts app on the device. If you
choose Allow , the app can save data
to the native Contacts app on the
device.
Restrict web content transfer Specify how web content (http/https Not configured
with other apps links) are opened from policy-
managed applications. Choose from:
Any app : Allow web links in
any app.
SET T IN G
Intune Managed Browser :
H O W TO USE DEFA ULT VA L UE
Allow web content to open
only in the Intune Managed
Browser. This browser is a
policy-managed browser.
Microsoft Edge : Allow web
content to open only in the
Microsoft Edge. This browser is
a policy-managed browser.
Unmanaged browser : Allow
web content to open only in
the unmanaged browser
defined by Unmanaged
browser protocol setting.
The web content will be
unmanaged in the target
browser.
Note : Requires Intune
Company Portal version
5.0.4415.0 or later.
Policy-managed browsers
On Android, your end users can
choose from other policy-
managed apps that support
http/https links if neither Intune
Managed Browser nor Microsoft
Edge are installed.
If a policy-managed browser is
required but not installed,
your end users will be
prompted to install the
Microsoft Edge.
If a policy-managed browser is
required, Android App Links
are managed by the Allow
app to transfer data to
other apps policy setting.
Intune device enrollment
If you are using Intune to
manage your devices, see
Manage Internet access using
managed browser policies
with Microsoft Intune.
Policy-managed Microsoft
Edge
The Microsoft Edge browser
for mobile devices (iOS/iPadOS
and Android) supports Intune
app protection policies. Users
who sign in with their
corporate Azure AD accounts
in the Microsoft Edge browser
application will be protected
by Intune. The Microsoft Edge
browser integrates the APP
SDK and supports all of its
data protection policies, with
the exception of preventing:
Save-as : The Microsoft
Edge browser does not
allow a user to add direct,
SET T IN G H O W TO USE DEFA ULT VA L UE
in-app connections to
cloud storage providers
(such as OneDrive).
Contact sync: The
Microsoft Edge browser
does not save to native
contact lists.
Note: The APP SDK cannot
determine if a target app is a
browser. On Android devices,
other managed browser apps that
support the http/https intent are
allowed.
Org data notifications Specify how much org data is shared Allow
via OS notifications for org accounts.
This policy setting will impact the local
device and any connected devices
such as wearables and smart speakers.
Apps may provide additional controls
to customize notification behavior or
may choose to not honor all values.
Select from:
Block : Do not share
notifications.
If not supported by the
application, notifications
will be allowed.
Block org data : Do not share
org data in notifications. For
example, "You have new mail";
"You have a meeting"
If not supported by the
application, notifications
will be blocked.
Allow : Shares org data in the
notifications
Note : This setting requires app
support. Outlook for Android
4.0.95 or later supports this
setting.
Data transfer exemptions
There are some exempt apps and platform services that Intune app protection policies allow data transfer to
and from. For example, all Intune-managed apps on Android must be able to transfer data to and from the
Google Text-to-speech, so that text from your mobile device screen can be read aloud. This list is subject to
change and reflects the services and apps considered useful for secure productivity.
Full exemptions
These apps and services are fully allowed for data transfer to and from Intune-managed apps.
Conditional exemptions
These apps and services are only allowed for data transfer to and from Intune-managed apps under certain
conditions.
com.android.providers.media Android media content provider The media content provider allowed
only for the ringtone selection action.
A P P / SERVIC E N A M E DESC RIP T IO N EXEM P T IO N C O N DIT IO N
com.google.android.gms; Google Play Services packages These packages are allowed for Google
com.google.android.gsf Cloud Messaging actions, such as
push notifications.
For more information, see Data transfer policy exceptions for apps.
Access requirements
SET T IN G H O W TO USE
PIN for access Select Require to require a PIN to use this app. The user is
prompted to set up this PIN the first time they run the app
in a work or school context.
PIN type Set a requirement for either numeric or passcode type PINs
before accessing an app that has app protection policies
applied. Numeric requirements involve only numbers, while
a passcode can be defined with at least 1 alphabetical letter
or at least 1 special character.
Simple PIN Select Allow to allow users to use simple PIN sequences like
1234, 1111, abcd or aaaa. Select Blocks to prevent them
from using simple sequences. Simple sequences are checked
in 3 character sliding windows. If Block is configured, 1235
or 1112 would not be accepted as PIN set by the end user,
but 1122 would be allowed.
Select minimum PIN length Specify the minimum number of digits in a PIN sequence.
Default value = 4
SET T IN G H O W TO USE
Fingerprint instead of PIN for access (Android Select Allow to allow the user to use fingerprint
6.0+) authentication instead of a PIN for app access.
Override fingerprint with PIN after timeout To use this setting, select Require and then configure an
inactivity timeout.
Timeout (minutes of inactivity) Specify a time in minutes after which either a passcode or
numeric (as configured) PIN will override the use of a
fingerprint. This timeout value should be greater than the
value specified under 'Recheck the access requirements after
(minutes of inactivity)'.
Default value = 30
PIN reset after number of days Select Yes to require users to change their app PIN after a
set period of time, in days.
Default value = No
Number of days Configure the number of days before the PIN reset is
required.
Default value = 90
Select number of previous PIN values to This setting specifies the number of previous PINs that
maintain Intune will maintain. Any new PINs must be different from
those that Intune is maintaining.
Default value = 0
SET T IN G H O W TO USE
App PIN when device PIN is set Select Not required to disable the app PIN when a device
lock is detected on an enrolled device with Company Portal
configured.
Work or school account credentials for access Choose Require to require the user to sign in with their
work or school account instead of entering a PIN for app
access. When set to Require , and PIN or biometric prompts
are turned on, both corporate credentials and either the PIN
or biometric prompts are shown.
Recheck the access requirements after (minutes of Configure the following setting:
inactivity) Timeout : This is the number of minutes before the
access requirements (defined earlier in the policy) are
rechecked. For example, an admin turns on PIN and
Blocks rooted devices in the policy, a user opens an
Intune-managed app, must enter a PIN, and must
be using the app on a non-rooted device. When
using this setting, the user won't have to enter a PIN
or undergo another root-detection check on any
Intune-managed app for a period of time equal to
the configured value.
NOTE
To learn more about how multiple Intune app protection settings configured in the Access section to the same set of
apps and users work on Android, see Intune MAM frequently asked questions and Selectively wipe data using app
protection policy access actions in Intune.
Conditional launch
Configure conditional launch settings to set sign-in security requirements for your app protection policy.
By default, several settings are provided with pre-configured values and actions. You can delete some settings,
like the Min OS version. You can also select additional settings from the Select one dropdown.
SET T IN G H O W TO USE
SET T IN G H O W TO USE
Max PIN attempts Specify the number of tries the user has to successfully
enter their PIN before the configured action is taken. This
policy setting format supports a positive whole number.
Actions include:
Reset PIN - The user must reset their PIN.
Wipe data - The user account that is associated
with the application is wiped from the device.
Default value = 5
Offline grace period The number of minutes that MAM apps can run offline.
Specify the time (in minutes) before the access requirements
for the app are rechecked. Actions include:
Block access (minutes) - The number of minutes
that MAM apps can run offline. Specify the time (in
minutes) before the access requirements for the app
are rechecked. After this period expires, the app
requires user authentication to Azure Active
Directory (Azure AD) so that the app can continue to
run.
Jailbroken/rooted devices There is no value to set for this setting. Actions include:
Block access - Prevent this app from running on
jailbroken or rooted devices. The user continues to
be able to use this app for personal tasks, but will
have to use a different device to access work or
school data in this app.
Wipe data - The user account that is associated
with the application is wiped from the device.
SET T IN G H O W TO USE
Disabled account There is no value to set for this setting. Actions include:
Block access - When we have confirmed the user
has been disabled in Azure Active Directory, the app
blocks access to work or school data.
Wipe data - When we have confirmed the user has
been disabled in Azure Active Directory, the app will
perform a selective wipe of the users' account and
data.
Min app version Specify a value for the minimum operating system value.
Actions include:
Warn - The user sees a notification if the app
version on the device doesn't meet the requirement.
This notification can be dismissed.
Block access - The user is blocked from access if
the app version on the device does not meet the
requirement.
Wipe data - The user account that is associated
with the application is wiped from the device.
As apps often have distinct versioning schemes between
them, create a policy with one minimum app version
targeting one app (for example, Outlook version policy).
Min patch version Require devices have a minimum Android security patch
released by Google.
Warn - The user will see a notification if the Android
version on the device doesn't meet the requirement.
This notification can be dismissed.
Block access - The user will be blocked from access
if the Android version on the device doesn't meet
this requirement.
Wipe data - The user account that is associated
with the application is wiped from the device.
This policy setting supports the date format of YYYY-MM-
DD.
SET T IN G H O W TO USE
SafetyNet device attestation App protection policies support some of Google Play
Protect's APIs. This setting in particular configures Google's
SafetyNet Attestation on end user devices. Specify either
Basic integrity or Basic integrity and cer tified
devices . Basic integrity tells you about the general
integrity of the device. Rooted devices, emulators, virtual
devices, and devices with signs of tampering fail basic
integrity. Basic integrity & cer tified devices tells you
about the compatibility of the device with Google's services.
Only unmodified devices that have been certified by Google
can pass this check. Actions include:
Warn - The user sees a notification if the device
does not meet Google's SafetyNet Attestation scan
based on the value configured. This notification can
be dismissed.
Block access - The user is blocked from access if
the device does not meet Google's SafetyNet
Attestation scan based on the value configured.
Wipe data - The user account that is associated
with the application is wiped from the device.
For commonly asked questions related to this setting, see
Frequently asked questions about MAM and app
protection.
Require threat scan on apps App protection policies support some of Google Play
Protect's APIs. This setting in particular ensures that
Google's Verify Apps scan is turned on for end user devices.
If configured, the end user will be blocked from access until
they turn on Google's app scanning on their Android device.
Actions include:
Warn - The user sees a notification if Google's Verify
Apps scan on the device is not turned on. This
notification can be dismissed.
Block access - The user is blocked from access if
Google's Verify Apps scan on the device is not turned
on.
Results from Google's Verify Apps scan are surfaced in the
Potentially Harmful Apps report in the console.
SET T IN G H O W TO USE
Min Company Por tal version By using the Min Company Por tal version , you can
specify a specific minimum defined version of the Company
Portal that is enforced on an end user device. This
conditional launch setting allows you to set values to Block
access , Wipe data , and Warn as possible actions when
each value is not met. The possible formats for this value
follows the pattern [Major].[Minor], [Major].[Minor].[Build],
or [Major].[Minor].[Build].[Revision]. Given that some end
users may not prefer a forced update of apps on the spot,
the 'warn' option may be ideal when configuring this setting.
The Google Play Store does a good job of only sending the
delta bytes for app updates, but this can still be a large
amount of data that the user may not want to utilize if they
are on data at the time of the update. Forcing an update
and thereby downloading an updated app could result in
unexpected data charges at the time of the update. For
more information, see Android policy settings.
Max allowed device threat level App protection policies can take advantage of the Intune-
MTD connector. Specify a maximum threat level acceptable
to use this app. Threats are determined by your chosen
Mobile Threat Defense (MTD) vendor app on the end user
device. Specify either Secured, Low, Medium, or High.
Secured requires no threats on the device and is the most
restrictive configurable value, while High essentially requires
an active Intune-to-MTD connection. Actions include:
Block access - The user will be blocked from access
if the threat level determined by your chosen Mobile
Threat Defense (MTD) vendor app on the end user
device doesn't meet this requirement.
Wipe data - The user account that is associated
with the application is wiped from the device.
For more information on using this setting, see Enable the
Mobile Threat Defense connector in Intune for unenrolled
devices.
iOS app protection policy settings
9/4/2020 • 22 minutes to read • Edit Online
This article describes the app protection policy settings for iOS/iPadOS devices. The policy settings that are
described can be configured for an app protection policy on the Settings pane in the Azure portal when you
make a new policy.
There are three categories of policy settings: Data relocation, Access requirements, and Conditional launch. In
this article, the term policy-managed apps refers to apps that are configured with app protection policies.
IMPORTANT
The Intune Managed Browser has been retired. Use Microsoft Edge for your protected Intune browser experience.
Data protection
Data Transfer
SET T IN G H O W TO USE DEFA ULT VA L UE
Backup Org data to iTunes and Select Block to prevent this app from Allow
iCloud backups backing up work or school data to
iTunes and iCloud. Select Allow to
allow this app to back up of work or
school data to iTunes and iCloud.
Send Org data to other apps Specify what apps can receive data All apps
from this app:
All apps : Allow transfer to any
app. The receiving app will
have the ability to read and
edit the data.
None : Do not allow data
transfer to any app, including
other policy-managed apps. If
the user performs a managed
open-in function and transfers
a document, the data will be
encrypted and unreadable.
Policy managed apps : Allow
transfer only to other policy-
managed apps.
Note: Users may be able
to transfer content via
Open-in or Share
extensions to unmanaged
apps on unenrolled devices
or enrolled devices that
allow sharing to
unmanaged apps.
Transferred data is
encrypted by Intune and
unreadable by unmanaged
apps.
Policy managed apps with
SET T IN G H O W TO USE DEFA ULT VA L UE
OS sharing : Only allow data
transfer to other policy
managed apps, as well as file
transfers to other MDM
managed apps on enrolled
devices.
Note: The Policy
managed apps with OS
sharing value is applicable
to MDM enrolled devices
only. If this setting is
targeted to a user on an
unenrolled device, the
behavior of the Policy
managed apps value
applies. Users will be able
to transfer unencrypted
content via Open-in or
Share extensions to any
application allowed by the
iOS MDM
allowOpenFromManagedt
oUnmanaged setting,
assuming the sending app
has the IntuneMAMUPN
configured; for more
information, see How to
manage data transfer
between iOS apps in
Microsoft Intune. See
https://developer.apple.co
m/business/documentatio
n/Configuration-Profile-
Reference.pdf for more
information on this
iOS/iPadOS MDM setting.
Policy managed apps with
Open-In/Share filtering :
Allow transfer only to other
policy managed apps, and filter
OS Open-in/Share dialogs to
only display policy managed
apps. To configure the filtering
of the Open-In/Share dialog,
it requires both the app(s)
acting as the file/document
source and the app(s) that can
open this file/document to
have the Intune SDK for iOS
version 8.1.1 or above.
Note: Users may be able
to transfer content via
Open-in or Share
extensions to unmanaged
apps if Intune private data
type are supported by the
app. Transferred data is
encrypted by Intune and
unreadable by unmanaged
apps.
In addition, when set to Policy
SET T IN G H O W TO USE DEFA ULT VA L UE
managed apps or None , the
Spotlight search (enables searching
data within apps) and Siri shortcuts
iOS features are blocked.
This policy can also apply to
iOS/iPadOS Universal Links.
General web links are managed by
the Open app links in Intune
Managed Browser policy
setting.
There are some exempt apps and
services to which Intune may
allow data transfer by default. In
addition, you can create your own
exemptions if you need to allow
data to transfer to an app that
doesn't support Intune APP. See
data transfer exemptions for more
information.
Save copies of org data Select Block to disable the use of the
Save As option in this app. Select
Allow if you want to allow the use of Allow
Save As.
Allow user to save copies Users can save to the selected services 0 selected
to selected ser vices (OneDrive for Business, SharePoint,
and Local Storage). All other services
are blocked. OneDrive for Business:
you can save files to OneDrive for
Business and SharePoint Online.
SharePoint: you can save files to on-
premises SharePoint. Local Storage:
you can save files to local storage.
SET T IN G H O W TO USE DEFA ULT VA L UE
Dialer App URL Scheme When any dialer app has been Blank
selected, you must provide the dialer
app URL scheme that is used to
launch the dialer app on iOS devices.
For more information, see Apple's
documentation about Phone Links.
SET T IN G H O W TO USE DEFA ULT VA L UE
Receive data from other apps Specify what apps can transfer data to All apps
this app:
All apps : Allow data transfer
from any app.
None : Do not allow data
transfer from any app,
including other policy-
managed apps.
Policy managed apps : Allow
transfer only from other
policy-managed apps.
All apps with incoming
Org data : Allow data transfer
from any app. Treat all
incoming data without a user
identity as data from your
organization. The data will be
marked with the MDM
enrolled user's identity as
defined by the IntuneMAMUPN
setting.
Note: The All apps with
incoming Org data
value is applicable to MDM
enrolled devices only. If
this setting is targeted to a
user on an unenrolled
device, the behavior of the
Any apps value applies.
There are some exempt apps and
services from which Intune may allow
data transfer. See data transfer
exemptions for a full list of apps and
services. Multi-identity MAM enabled
applications on non-enrolled
iOS/iPadOS devices ignore this policy
and allow all incoming data.
Restrict cut, copy and paste Specify when cut, copy, and paste Any app
between other apps actions can be used with this app.
Select from:
Blocked : Don't allow cut, copy,
and paste actions between this
app and any other app.
Policy managed apps : Allow
cut, copy, and paste actions
between this app and other
policy-managed apps.
Policy managed with paste
in : Allow cut or copy between
this app and other policy-
managed apps. Allow data
from any app to be pasted into
this app.
Any app : No restrictions for
cut, copy, and paste to and
from this app.
SET T IN G H O W TO USE DEFA ULT VA L UE
Cut and copy character limit Specify the number of characters that 0
for any app may be cut or copied from Org data
and accounts. This will allow sharing of
the specified number of characters to
any application, regardless of the
Restrict cut, copy, and paste with
other apps setting.
Default Value = 0
Note : Requires app to have
Intune SDK version 9.0.14 or later.
Encryption
SET T IN G H O W TO USE DEFA ULT VA L UE
SET T IN G H O W TO USE DEFA ULT VA L UE
Functionality
SET T IN G H O W TO USE DEFA ULT VA L UE
Sync app with native contacts Select Block to prevent the app from Allow
app saving data to the native Contacts
app on the device. If you select Allow ,
the app can save data to the native
Contacts app on the device.
Printing Org data Select Block to prevent the app from Allow
printing work or school data. If you
leave this setting to Allow , the default
value, users will be able to export and
print all Org data.
Restrict web content transfer Specify how web content (http/https Not configured
with other apps links) are opened from policy-
managed applications. Choose from:
Any app : Allow web links in
any app.
Intune Managed Browser :
Allow web content to open
only in the Intune Managed
Browser. This browser is a
policy-managed browser.
SET T IN G H O W TO USE DEFA ULT VA L UE
Microsoft Edge : Allow web
content to open only in the
Microsoft Edge. This browser is
a policy-managed browser.
Unmanaged browser : Allow
web content to open only in
the unmanaged browser
defined by Unmanaged
browser protocol setting.
The web content will be
unmanaged in the target
browser.
Note : Requires app to have
Intune SDK version 11.0.9 or
later.
If you're using Intune to manage your
devices, see Manage Internet access
using managed browser policies with
Microsoft Intune.
If a policy-managed browser is
required but not installed, your end
users will be prompted to install the
Microsoft Edge.
If a policy-managed browser is
required, iOS/iPadOS Universal
Links are managed by the Allow
app to transfer data to other
apps policy setting.
Intune device enrollment
If you are using Intune to manage
your devices, see Manage Internet
access using managed browser
policies with Microsoft Intune.
Policy-managed Microsoft
Edge
The Microsoft Edge browser for
mobile devices (iOS/iPadOS and
Android) supports Intune app
protection policies. Users who sign
in with their corporate Azure AD
accounts in the Microsoft Edge
browser application will be
protected by Intune. The
Microsoft Edge browser integrates
the Intune SDK and supports all
of its data protection policies, with
the exception of preventing:
Save-as : The Microsoft Edge
browser does not allow a user
to add direct, in-app
connections to cloud storage
providers (such as OneDrive).
Contact sync: The Microsoft
Edge browser does not save to
native contact lists.
Org data notifications Specify how Org data is shared via OS Allow
notifications for Org accounts. This
policy setting will impact the local
device and any connected devices
such as wearables and smart speakers.
Apps may provide additional controls
to customize notification behavior or
may choose to not honor all values.
Select from:
Blocked : Do not share
notifications.
If not supported by the
application, notifications
will be allowed.
Block org Data : Do not share
Org data in notifications, for
example.
"You have new mail"; "You
have a meeting".
If not supported by the
application, notifications
will be blocked.
Allow : Shares Org data in the
notifications.
Note : This setting requires app
support. At this time, Outlook for
iOS version 4.34.0 or later
supports this setting.
NOTE
None of the data protection settings control the Apple managed open-in feature on iOS/iPadOS devices. To use manage
Apple open-in, see Manage data transfer between iOS/iPadOS apps with Microsoft Intune.
skype Skype
IMPORTANT
App Protection policies created before June 15, 2020 include tel and telprompt URL scheme as part of the default data
transfer exemptions. These URL schemes allow managed apps to initiate the dialer. The App Protection policy setting
Transfer telecommunication data to has replaced this functionality. Administrators should remove tel;telprompt;
from the data transfer exemptions and rely on the App Protection policy setting, provided the managed apps that
initiate dialer functionality include the Intune SDK 12.7.0 or later.
Access requirements
SET T IN G H O W TO USE DEFA ULT VA L UE
Touch ID instead of PIN for Select Allow to allow the user to use Allow
access (iOS 8+) Touch ID instead of a PIN for app
access.
Override Touch ID with To use this setting, select Require and Require
PIN after timeout then configure an inactivity timeout.
Face ID instead of PIN for Select Allow to allow the user to use Allow
access (iOS 11+) facial recognition technology to
authenticate users on iOS/iPadOS
devices. If allowed, Face ID must be
used to access the app on a Face ID
capable device.
App PIN when device PIN is Select Disable to disable the app PIN Enable
set when a device lock is detected on an
enrolled device with Company Portal
configured.
Work or school account Select Require to require the user to Not required
credentials for access sign in with their work or school
account instead of entering a PIN for
app access. If you set this to Require ,
and PIN or biometric prompts are
turned on, both corporate credentials
and either the PIN or biometric
prompts are shown.
SET T IN G H O W TO USE DEFA ULT VA L UE
NOTE
To learn more about how multiple Intune app protection settings configured in the Access section to the same set of
apps and users work on iOS/iPadOS, see Intune MAM frequently asked questions and Selectively wipe data using app
protection policy access actions in Intune.
Conditional launch
Configure conditional launch settings to set sign-in security requirements for your access protection policy.
By default, several settings are provided with pre-configured values and actions. You can delete some of these,
like the Min OS version. You can also select additional settings from the Select one dropdown.
SET T IN G H O W TO USE
SET T IN G H O W TO USE
Max PIN attempts Specify the number of tries the user has to successfully
enter their PIN before the configured action is taken. This
policy setting format supports a positive whole number.
Actions include:
Reset PIN - The user must reset their PIN.
Wipe data - The user account that is associated
with the application is wiped from the device.
Default value = 5
SET T IN G H O W TO USE
Offline grace period The number of minutes that MAM apps can run offline.
Specify the time (in minutes) before the access requirements
for the app are rechecked. Actions include:
Block access (minutes) - The number of minutes
that MAM apps can run offline. Specify the time (in
minutes) before the access requirements for the app
are rechecked. After the configured period expires,
the app blocks access to work or school data until
network access is available. This policy-setting format
supports a positive whole number.
Jailbroken/rooted devices There is no value to set for this setting. Actions include:
Block access - Prevent this app from running on
jailbroken or rooted devices. The user continues to
be able to use this app for personal tasks, but must
use a different device to access work or school data
in this app.
Wipe data - The user account that is associated
with the application is wiped from the device.
Disabled account There is no value to set for this setting. Actions include:
Block access - When we have confirmed the user
has been disabled in Azure Active Directory, the app
blocks access to work or school data.
Wipe data - When we have confirmed the user has
been disabled in Azure Active Directory, the app will
perform a selective wipe of the users' account and
data.
SET T IN G H O W TO USE
Min app version Specify a value for the minimum operating system value.
Actions include:
Warn - The user sees a notification if the app
version on the device doesn't meet the requirement.
This notification can be dismissed.
Block access - The user is blocked from access if
the app version on the device doesn't meet the
requirement.
Wipe data - The user account that is associated
with the application is wiped from the device.
As apps often have distinct versioning schemes between
them, create a policy with one minimum app version
targeting one app (for example, Outlook version policy).
Min SDK version Specify a minimum value for the Intune SDK version. Actions
include:
Block access - The user is blocked from access if
the app's Intune app protection policy SDK version
doesn't meet the requirement.
Wipe data - The user account that is associated
with the application is wiped from the device.
To learn more about the Intune app protection policy SDK,
see Intune App SDK overview. As apps often have distinct
Intune SDK version between them, create a policy with one
min Intune SDK version targeting one app (for example,
Intune SDK version policy for Outlook).
Max allowed device threat level App protection policies can take advantage of the Intune-
MTD connector. Specify a maximum threat level acceptable
to use this app. Threats are determined by your chosen
Mobile Threat Defense (MTD) vendor app on the end user
device. Specify either Secured, Low, Medium, or High.
Secured requires no threats on the device and is the most
restrictive configurable value, while High essentially requires
an active Intune-to-MTD connection. Actions include:
Block access - The user will be blocked from access
if the threat level determined by your chosen Mobile
Threat Defense (MTD) vendor app on the end user
device doesn't meet this requirement.
Wipe data - The user account that is associated
with the application is wiped from the device.
Note: Requires app to have Intune SDK version 12.0.15 or
above.
Learn more
Learn about LinkedIn information and features in your Microsoft apps.
Learn about LinkedIn account connections release on the Microsoft 365 Roadmap page.
Learn about Configuring LinkedIn account connections.
For more information about data that is shared between users' LinkedIn and Microsoft work or school
accounts, see LinkedIn in Microsoft applications at your work or school.
Selectively wipe data using app protection policy
conditional launch actions in Intune
9/4/2020 • 6 minutes to read • Edit Online
Using Intune app protection policies, you can configure settings to block end users from accessing a corporate app
or account. These settings target data relocation and access requirements set by your organization for things like
jail-broken devices and minimum OS versions.
You can explicitly choose to wipe your company's corporate data from the end user's device as an action to take for
non-compliance by using these settings. For some settings, you will be able to configure multiple actions, such as
block access and wipe data based on different specified values.
6. Select a Setting and enter the Value that users must meet to sign in to your company app.
7. Select the Action you want to take if users do not meet your requirements. In some cases, multiple actions
can be configured for a single setting. For more information, see How to create and assign app protection
policies.
Policy settings
The app protection policy settings table has columns for Setting , Value , and Action .
iOS policy settings
For iOS/iPadOS, you will be able to configure actions for the following settings using the Setting dropdown:
Max PIN attempts
Offline grace period
Jailbroken/rooted devices
Min OS version
Min app version
Min SDK version
Device model(s)
Max allowed device threat level
To use the Device model(s) setting, input a semi-colon separated list of iOS/iPadOS model identifiers. These
values are not case-sensitive. Besides within Intune Reporting for the 'Device model(s)' input, you can find an
iOS/iPadOS model identifier in this 3rd party GitHub repository.
Example input: iPhone5,2;iPhone5,3
On end-user devices, the Intune client would take action based on a simple matching of device model strings
specified in Intune for Application Protection Policies. Matching depends entirely on what the device reports. You
(the IT administrator) are encouraged to ensure that the intended behavior occurs by testing this setting based on
a variety of device manufacturers and models, and targeted to a small user group. The default value is Not
configured .
Set one of the following actions:
Allow specified (Block non-specified)
Allow specified (Wipe non-specified)
What happens if the IT admin inputs a different list of iOS/iPadOS model identifier(s) between
policies targeted to the same apps for the same Intune user?
When conflicts arise between two app protection policies for configured values, Intune typically takes the most
restrictive approach. Thus, the resultant policy sent down to the targeted app being opened by the targeted Intune
user would be an intersection of the listed iOS/iPadOS model identifier(s) in Policy A and Policy B targeted to the
same app/user combination. For example, Policy A specifies "iPhone5,2;iPhone5,3", while Policy B specifies
"iPhone5,3", the resultant policy that the Intune user targeted by both Policy A and Policy B will be "iPhone5,3".
Android policy settings
For Android, you will be able to configure actions for the following settings using the Setting dropdown:
Max PIN attempts
Offline grace period
Jailbroken/rooted devices
Min OS version
Min app version
Min patch version
Device manufacturer(s)
SafetyNet device attestation
Require threat scan on apps
Min Company Portal version
Max allowed device threat level
By using the Min Company Por tal version , you can specify a specific minimum defined version of the Company
Portal that is enforced on an end user device. This conditional launch setting allows you to set values to Block
access , Wipe data , and Warn as possible actions when each value is not met. The possible formats for this value
follow the pattern [Major].[Minor], [Major].[Minor].[Build], or [Major].[Minor].[Build].[Revision]. Given that some
end users may not prefer a forced update of apps on the spot, the 'warn' option may be ideal when configuring
this setting. The Google Play Store does a good job of only sending the delta bytes for app updates, but this can
still be a large amount of data that the user may not want to utilize if they are on data at the time of the update.
Forcing an update and thereby downloading an updated app could result in unexpected data charges at the time of
the update. The Min Company Por tal version setting, if configured, will affect any end user who gets gets
version 5.0.4560.0 of the Company Portal and any future versions of the Company Portal. This setting will have no
effect on users using a version of Company Portal that is older than the version that this feature is released with.
End users using app auto-updates on their device will likely not see any dialogs from this feature, given that they
will likely be on the latest Company Portal version. This setting is Android only with app protection for enrolled
and unenrolled devices.
To use the Device manufacturer(s) setting, input a semi-colon separated list of Android manufacturers. These
values are not case-sensitive. Besides Intune Reporting, you can find the Android manufacturer of a device under
the device settings.
Example input: Manufacturer A;Manufacturer B
NOTE
These are some common manufacturers reported from devices using Intune, and can be used as input:
Asus;Blackberry;Bq;Gionee;Google;Hmd
global;Htc;Huawei;Infinix;Kyocera;Lemobile;Lenovo;Lge;Motorola;Oneplus;Oppo;Samsung;Sharp;Sony;Tecno;Vivo;Vodafone;Xia
omi;Zte;Zuk
On end-user devices, the Intune client would take action based on a simple matching of device model strings
specified in Intune for Application Protection Policies. Matching depends entirely on what the device reports. You
(the IT administrator) are encouraged to ensure that the intended behavior occurs by testing this setting based on
a variety of device manufacturers and models, and targeted to a small user group. The default value is Not
configured .
Set one of the following actions:
Allow specified (Block on non-specified)
Allow specified (Wipe on non-specified)
What happens if the IT admin inputs a different list of Android manufacturer(s) between policies
targeted to the same apps for the same Intune user?
When conflicts arise between two app protection policies for configured values, Intune typically takes the most
restrictive approach. Thus, the resultant policy sent down to the targeted app being opened by the targeted Intune
user would be an intersection of the listed Android manufacturers in Policy A and Policy B targeted to the same
app/user combination. For example, Policy A specifies "Google;Samsung", while Policy B specifies "Google", the
resultant policy that the Intune user targeted by both Policy A and Policy B will be "Google".
Additional settings and actions
By default, the table will have populated rows as settings configured for Offline grace period , and Max PIN
attempts , if the Require PIN for access setting is set to Yes .
To configure a setting, select a setting from the dropdown under the Setting column. Once a setting is selected,
the editable text box will become enabled under the Value column in the same row, if a value is required to be set.
Also, the dropdown will become enabled under the Action column with the set of conditional launch actions
applicable to the setting.
The following list provides the common list of actions:
Block access – Block the end user from accessing the corporate app.
Wipe data – Wipe the corporate data from the end user's device.
Warn – Provide dialog to end user as a warning message.
In some cases, such as the Min OS version setting, you can configure the setting to perform all applicable actions
based on different version numbers.
Once a setting is fully configured, the row will appear in a read-only view and be available to be edited at any time.
In addition, the row will appear to have a dropdown available for selection in the Setting column. Settings that
have already been configured and do not allow multiple actions will not be available for selection in the dropdown.
Next steps
Learn more information on Intune app protection policies, see:
How to create and assign app protection policies
iOS/iPadOS app protection policy settings
Android app protection policy settings in Microsoft Intune
How to create exceptions to the Intune App
Protection Policy (APP) data transfer policy
9/4/2020 • 3 minutes to read • Edit Online
As an administrator, you can create exceptions to the Intune App Protection Policy (APP) data transfer policy. An
exception allows you to specifically choose which unmanaged apps can transfer data to and from managed apps.
Your IT must trust the unmanaged apps that you include in the exception list.
WARNING
You are responsible for making changes to the data transfer exception policy. Additions to this policy allow unmanaged apps
(apps that are not managed by Intune) to access data protected by managed apps. This access to protected data may result
in data security leaks. Only add data transfer exceptions for apps that your organization must use, but that do not support
Intune APP (Application Protection Policies). Additionally, only add exceptions for apps that you do not consider to be data
leak risks.
Within an Intune Application Protection Policy, setting Allow app to transfer data to other apps to Policy
managed apps means that the app can transfer data only to apps managed by Intune. If you need to allow data to
be transferred to specific apps that don't support Intune APP, you can create exceptions to this policy by using
Select apps to exempt . Exemptions allow applications managed by Intune to invoke unmanaged applications
based on URL protocol (iOS/iPadOS) or package name (Android). By default, Intune adds vital native applications to
this list of exceptions.
NOTE
Modifying or adding to the data transfer policy exceptions doesn't impact other App Protection Policies, such as cut, copy,
and paste restrictions.
NOTE
Microsoft does not have a method to manually find the URL protocol for creating app exceptions for third-party applications.
Example
By adding the Webex package as an exception to the MAM data transfer policy, Webex links inside a managed
Outlook email message are allowed to open directly in the Webex application. Data transfer is still restricted in
other unmanaged apps.
iOS/iPadOS Webex example: To exempt the Webex app so that it's allowed to be invoked by Intune
managed apps, you must add a data transfer exception for the following string: wbx
iOS/iPadOS Maps example: To exempt the native Maps app so that it's allowed to be invoked by Intune
managed apps, you must add a data transfer exception for the following string: maps
Android Webex example: To exempt the Webex app so that it's allowed to be invoked by Intune managed
apps, you must add a data transfer exception for the following string: com.cisco.webex.meetings
Android SMS example: To exempt the native SMS app so that it's allowed to be invoked by Intune managed
apps across different messaging apps and Android devices, you must add data transfer exceptions for the
following strings: com.google.android.apps.messaging
com.android.mms
com.samsung.android.messaging
Next steps
Create and deploy app protection policies
iOS/iPadOS app protection policy settings - Data transfer exemptions
Android app protection policy settings - Data transfer exemptions
How to validate your app protection policy setup in
Microsoft Intune
9/4/2020 • 2 minutes to read • Edit Online
Validate that your app protection policy is correctly set up and working. This guidance applies to app protection
policies in the Azure portal.
What to check
If testing shows that your app protection policy behavior isn't functioning as expected, check these items:
Are the users licensed for app protection?
Are the users licensed for Microsoft 365?
Is the status of each of the users' app protection apps as expected. The possible statuses for the apps are
Checked in and Not checked in .
User app protection status
1. Sign in to the Microsoft Endpoint Manager admin center.
2. Select Apps > Monitor > App protection status , and then select the Assigned users tile.
3. On the App repor ting page, select Select user to bring up a list of users and groups.
4. Search for and select a user from the list, then choose Select user . At the top of the App repor ting pane, you
can see whether the user is licensed for app protection. You can also see whether the user has a license for
Microsoft 365 and the app status for all of the user's devices.
What to do
Here are the actions to take based on the user status:
If the user isn't licensed for app protection, assign an Intune license to the user.
If the user isn't licensed for Microsoft 365, get a license for the user.
If a user's app is listed as Not checked in , check if you've correctly configured an app protection policy for that
app.
Ensure that these conditions apply across all users to which you want app protection policies to apply.
See also
What is Intune app protection policy?
Licenses that include Intune
Assign licenses to users so they can enroll devices in Intune
How to validate your app protection policy setup
How to monitor app protection policies
Understand App Protection Policy delivery timing
9/4/2020 • 2 minutes to read • Edit Online
Learn the different deployment windows for app protection policies to understand when changes should appear
on your end-user devices.
A P P P ROT EC T IO N
USER STAT E B EH AVIO R RET RY IN T ERVA L ( SEE N OT E) W H Y DO ES T H IS H A P P EN ?
Tenant Not Onboarded Wait for next retry interval. 24 hours Occurs when you have not
App Protection is not active setup your tenant for
for the user. Intune.
User Not Licensed Wait for next retry interval. 12 hours - However, on Occurs when you have not
App Protection is not active Android devices this interval licensed the user for Intune.
for the user. requires Intune APP SDK
version 5.6.0 or later.
Otherwise for Android
devices, the interval is 24
hours.
User Not Assigned App Wait for next retry interval. 12 hours Occurs when you have not
Protection Policies App Protection is not active assigned APP settings to the
for the user. user.
User Assigned App Wait for next retry interval. 12 hours Occurs when you have not
Protection Policies but app is App Protection is not active added the app to APP.
not defined in the App for the user.
Protection Policies
User Successfully Registered App Protection is applied Intune Service defined based Occurs when the user has
for Intune MAM per policy settings. Updates on user load. Typically 30 successfully registered with
occur based on retry mins. the Intune service for MAM
interval configuration.
NOTE
Retry intervals may require active app use to occur, meaning the app is launched and in use. If the retry interval is 24 hours
and the user waits 48 hours to launch the app, the Application Protection client will retry at 48 hours.
This article describes app protection policies for extensions in Microsoft Intune.
NOTE
LinkedIn integration is currently unavailable for United States Government customers and for organizations with Exchange
Online mailboxes hosted in Australia, Canada, China, France, Germany, India, South Korea, United Kingdom, Japan, and South
Africa.
The Intune SDK and Intune app protection policies don't include support for managing LinkedIn account
connections, but there are other ways to manage them. You can disable LinkedIn account connections for your
entire organization, or you can enable LinkedIn account connections for selected user groups in your organization.
These settings affect LinkedIn connections across Microsoft 365 apps on all platforms (web, mobile, and desktop).
You can:
Enable or disable LinkedIn account connections for your tenant in the Azure portal.
Enable or disable LinkedIn account connections for your organization's Office 2016 apps using Group Policy.
If LinkedIn integration is enabled for your tenant, when users in your organization connect their LinkedIn and
Microsoft work or school accounts, they have two options:
They can give permission to share data between both accounts. This means that they give permission for their
LinkedIn account to share data with their Microsoft work or school account, as well as their Microsoft work or
school account to share data with their LinkedIn account. Data that is shared with LinkedIn leaves the online
services.
They can give permission to share data only from their LinkedIn account to their Microsoft work and school
account
If a user consents to sharing data between accounts, as with Office add-ins, LinkedIn integration uses existing
Microsoft Graph APIs. LinkedIn integration uses only a subset of the APIs available to Office add-ins and supports
various exclusions.
Read permissions for People Allows the app to read a scored list of people relevant to the
signed-in user. The list can include local contacts, contacts
from social networking or your organization's directory, and
people from recent communications (such as email and Skype).
Read permissions for Calendars Allows the app to read events in user calendars. Includes the
meetings in signed-in user calendars, their times, locations,
and attendees.
Read permissions for User Profile Allows users to sign in to the app, and allows the app to read
the profile of signed-in users. It also allows the app to read
basic company information for signed-in users.
Subscriptions This scope isn't available and not yet in use. It includes
subscriptions provided by the user's organization to Microsoft
apps and services, such as Microsoft 365.
Insights This scope isn't available and not yet in use. It includes the
interests associated with the signed-in user's account based
on their use of Microsoft services.
Learn more
Learn about LinkedIn information and features in your Microsoft apps.
Learn about LinkedIn account connections release on the Microsoft 365 Roadmap page.
Learn about Configuring LinkedIn account connections.
For more information about data that is shared between users' LinkedIn and Microsoft work or school accounts,
see LinkedIn in Microsoft applications at your work or school.
How to monitor app protection policies
9/4/2020 • 9 minutes to read • Edit Online
You can monitor the status of the app protection policies that you've applied to users from the Intune app
protection pane in Intune. Additionally, you can find information about the users affected by app protection
policies, policy compliance status, and any issues that your users might be experiencing.
There are three different places to monitor app protection policies:
Summary view
Detailed view
Reporting view
The retention period for app protection data is 90 days. Any app instances that have checked in to the Intune
service within the past 90 days is included in the app protection status report. An app instance is a unique user +
app + device.
NOTE
For more information, see How to create and assign app protection policies.
Summary view
1. Sign in to the Microsoft Endpoint Manager admin center.
2. Select Apps > Monitor > App protection status .
The following list provides details about app protection status:
Assigned users : The total number of assigned users in your company who are using an app that is
associated with a policy in a work context and are protected and licensed, as well as the assigned users that
are unprotected and unlicensed.
Flagged users : The number of users who are experiencing issues with their devices. Jailbroken
(iOS/iPadOS) and rooted (Android) devices are reported under Flagged users . Also, users with devices
that are flagged by the Google SafetyNet device attestation check (if turned on by the IT admin) are
reported here.
Users with potentially harmful apps : The number of users who may have a harmful app on their
Android device detected by Google Play Protect.
User status for iOS and User status for Android : The number of users who have used an app who
have a policy assigned to them in a work context for the related platform. This information shows the
number of users managed by the policy, as well as the number of users who are using an app that is not
targeted by any policy in a work context. You might consider adding these users to the policy.
Top Protected iOS/iPadOS Apps and Top Protected Android Apps : Based on the most used
iOS/iPadOS and Android apps, this information shows the number of protected and unprotected apps by
platform.
Top Configured iOS/iPadOS Apps Without Enrollment and Top Configured Android Apps
Without Enrollment : Based on the most used iOS/iPadOS and Android apps for unenrolled devices, this
information shows the number of configured apps by platform (as in, using an app configuration policy).
NOTE
If you have multiple policies per platform, a user is considered managed by policy when they have at least one policy
assigned to them.
Detailed view
You can get to the detailed view of the summary by choosing the Flagged users tile, and the Users with
potentially harmful apps tile.
Flagged users
The detailed view shows the error message, the app that was accessed when the error happened, the device OS
platform affected, and a time stamp. The error is typically for jailbroken (iOS/iPadOS) or rooted (Android) devices.
Also, users with devices that are flagged by the 'SafetyNet device attestation' conditional launch check are
reported here with the reason as reported by Google. For a user to be removed from the report, the status of the
device itself needs to have changed, which happens after the next root detection check (or jailbreak
check/SafetyNet check happens) that needs to report a positive result. If the device is truly remediated, the refresh
on the Flagged Users report will happen when the pane reloads.
Users with potentially harmful apps
Users with devices that are flagged by the Require threat scan on apps conditional launch check are reported
here, with the threat category as reported by Google. If there are apps listed in this report that are being deployed
through Intune, contact the app developer for the app, or remove the app from being assigned to your users. The
detailed view shows:
User : The name of the user.
App package ID : This is the way the Android OS uniquely determines an app.
If the app is MAM-enabled : Whether or not the app is being deployed through Microsoft Intune.
The threat categor y : What Google-determined threat category this app falls into.
Email : The email of the user.
Device Name : Names of any devices that are associated with the user's account.
A time stamp : This is the date of the last sync that Google did with Microsoft Intune regarding potentially
harmful apps.
Reporting view
You can find the same reports at the top of the App protection status pane. To view these reports, select Apps
> App protection status > Repor ts . The Repor ts pane provides several reports based on user and app,
including the following:
User report
You can search for a single user and check the compliance status for that user. The App repor ting pane shows
the following information for a selected user:
Icon : Displays whether the app status is up-to-date.
App Name : The name of the app.
Device Name : Devices that are associated with the user's account.
Device Type : The type of device or operating system the device is running.
Policies : The policies associated with the app.
Status :
Checked in : The policy was deployed to the user, and the app was used in the work context at least
once.
Not checked in : The policy was deployed to the user, but the app hasn't been used in the work context
since then.
Last Sync : When the app was last synced with Intune.
NOTE
The Last Sync column represents the same value in both the in-console User status report and the App Protection Policy
exportable .csv report. The difference is a small delay in synchronization between the value in the two reports.
The time referenced in Last Sync is when Intune last saw the app instance. When a user launches an app, it might notify the
Intune App Protection service at that launch time, depending on when it last checked in. See the retry interval times for
App Protection Policy check-in. If a user hasn't used that particular app in the last check-in interval (which is usually 30
minutes for active usage), and they launch the app, then:
The App Protection Policy exportable .csv report has the newest time, within 1 minute (minimum) to 30 minutes
(maximum).
The User status report has the newest time instantly.
For example, consider a targeted and licensed user who launches a protected app at 12:00 PM:
If this is a sign in for the first time, that means the user was signed out before, and doesn't have an app instance
registration with Intune. After the user signs in, the user gets a new app instance registration, and can be checked-in
immediately (with the same time delays listed previously for future check-ins). Thus, the Last Sync time is 12:00 PM in
the User status report, and 12:01 PM (or 12:30 PM at latest) in the App Protection Policy report.
If the user is just launching the app, the Last Sync time reported depends on when the user last checked in.
2. On the App repor ting pane, choose Select user to search for an Azure Active Directory user.
3. Select the user from the list. You can see the details of the compliance status for that user.
NOTE
If the users you searched for do not have the MAM policy deployed to them, you see a message informing you that the
user is not targeted by any MAM policies.
App report
You can search by platform and app, and then this report will provide two different app protection statuses that
you can select before generating the report. The statuses can be Protected or Unprotected .
User status for managed MAM activity (Protected ): This report outlines the activity of each managed MAM
app, on a per-user basis. It shows all apps targeted by MAM policies for each user, and the status of each
app as checked in with MAM policies. The report also includes the status of each app that was targeted with
a MAM policy, but was never checked in.
User status for unmanaged MAM activity (Unprotected ): This report outlines the activity of MAM-enabled
apps that are currently unmanaged, on a per-user basis. This might happen because:
These apps are either being used by a user or an app that isn't currently targeted by a MAM policy.
All apps are checked in, but aren't getting any MAM policies.
2. Choose Yes to save your report, and then choose Save As . Select the folder you want to save the report in.
NOTE
Intune provides additional device reporting fields, including App Registration ID, Android manufacturer, model, and security
patch version, as well as iOS/iPadOS model. In Intune, you access these fields by selecting Apps > App protection status
> App Protection Repor t: iOS/iPadOS, Android . In addition, these parameters help you configure the Allow list for
the device manufacturer (Android), the Allow list for the device model (Android and iOS/iPadOS), and the minimum
Android security patch version setting.
See also
Manage data transfer between iOS/iPadOS apps
What to expect when your Android app is managed by app protection policies
What to expect when your iOS/iPadOS app is managed by app protection policies
Get ready for Windows Information Protection in
Windows 10
9/4/2020 • 2 minutes to read • Edit Online
Enable mobile application management (MAM) for Windows 10 by setting the MAM provider in Azure AD. Setting
a MAM provider in Azure AD allows you to define the enrollment state when creating a new Windows Information
Protection (WIP) policy with Intune. The enrollment state can be either MAM or mobile device management (MDM).
Next steps
Create a WIP policy
Create and deploy Windows Information Protection
(WIP) policy with Intune
9/4/2020 • 7 minutes to read • Edit Online
You can use Windows Information Protection (WIP) policies with Windows 10 apps to protect apps without device
enrollment.
Prerequisites
You must configure the MAM provider before you can create a WIP policy. Learn more about how to configure
your MAM provider with Intune.
IMPORTANT
WIP does not support multi-identity, only one managed identity can exist at a time. For more information about the
capabilities and limitations of WIP, see Protect your enterprise data using Windows Information Protection (WIP).
TIP
For related information about creating WIP policies for Intune, including available settings and how to configure them, see
Create a Windows Information Protection (WIP) policy with MAM using the Azure portal for Microsoft Intune in the
Windows Security documentation library.
WIP Learning
After you add the apps you want to protect with WIP, you need to apply a protection mode by using WIP
Learning .
Before you begin
WIP Learning is a report that allows you to monitor your WIP-enabled apps and WIP-unknown apps. The
unknown apps are the ones not deployed by your organization's IT department. You can export these apps from
the report and add them to your WIP policies to avoid productivity disruption before they enforce WIP in "Block"
mode.
In addition to viewing information about WIP-enabled apps, you can view a summary of the devices that have
shared work data with websites. With this information, you can determine which websites should be added to
group and user WIP policies. The summary shows which website URLs are accessed by WIP-enabled apps.
When working with WIP-enabled apps and WIP-unknown apps, we recommend that you start with Silent or
Allow Overrides while verifying with a small group that you have the right apps on your protected apps list.
After you're done, you can change to your final enforcement policy, Block .
What are the protection modes?
Block
WIP looks for inappropriate data sharing practices and stops the user from completing the action. Blocked actions
can include sharing info across non-corporate-protected apps, and sharing corporate data between other people
and devices outside of your organization.
Allow Overrides
WIP looks for inappropriate data sharing, warning users when they do something deemed potentially unsafe.
However, this mode lets the user override the policy and share the data, logging the action to your audit log.
Silent
WIP runs silently, logging inappropriate data sharing, without blocking anything that would have been prompted
for employee interaction while in Allow Override mode. Unallowed actions, like apps inappropriately trying to
access a network resource or WIP-protected data, are still stopped.
Off (not recommended)
WIP is turned off and doesn't help to protect or audit your data.
After you turn off WIP, an attempt is made to decrypt any WIP-tagged files on the locally attached drives. Note that
previous decryption and policy info isn't automatically reapplied if you turn WIP protection back on.
Add a protection mode
1. From the App policy pane, choose the name of your policy, then choose Required settings .
2. Select a setting and then choose Save .
Use WIP Learning
1. Open the Azure portal. Choose All ser vices . Type Intune in the text box filter.
2. Choose Intune > Apps .
3. Choose App protection status > Repor ts > Windows Information Protection learning .
Once you have the apps showing up in the WIP Learning logging report, you can add them to your app
protection policies.
After you created your WIP app protection policy, you need to deploy it to your organization using MAM.
1. On the App policy pane, choose your newly created app protection policy, choose User groups > Add
user group .
A list of user groups, made up of all the security groups in your Azure Active Directory, opens in the Add
user group pane.
2. Choose the group you want your policy to apply to, then choose Select to deploy the policy.
Next steps
Learn more about Windows Information Protection, see Protect your enterprise data using Windows Information
Protection (WIP).
How to manage data transfer between iOS apps in
Microsoft Intune
9/4/2020 • 6 minutes to read • Edit Online
To help protect company data, restrict file transfers to only the apps that you manage. You can manage iOS apps in
the following ways:
Protect Org data for work or school accounts by configuring an app protection policy for the apps. which
we call policy managed apps. See Microsoft Intune protected apps.
Deploy and manage the apps through iOS device management, which requires devices to enroll in a Mobile
Device Management (MDM) solution. The apps you deploy can be policy managed apps or other iOS
managed apps.
The Open-in management feature for enrolled iOS devices can limit file transfers between iOS managed apps.
Set Open-in management restrictions in configuration settings and then deploy them using your MDM solution.
When a user installs the deployed app, the restrictions you set are applied.
NOTE
In Intune, the App Configuration policy enrollment type must be set to Managed Devices . Additionally, the app
needs to be either installed from the Intune Company Portal (if set as available) or pushed as required to the device.
NOTE
Deploy IntuneMAMUPN app configuration settings to the target managed app which sends data, not the receiving
app.
4. Deploy the Open in management policy using Intune or your third-party MDM provider to enrolled
devices.
Example 1: Admin experience in Intune or third-party MDM console
1. Go to the admin console of Intune or your third-party MDM provider. Go to the section of the console in
which you deploy application configuration settings to enrolled iOS devices.
2. In the Application Configuration section, enter the following setting for each policy managed app that will
transfer data to iOS managed apps:
key = IntuneMAMUPN, value = username@company.com
The exact syntax of the key/value pair may differ based on your third-party MDM provider. The following
table shows examples of third-party MDM providers and the exact values you should enter for the
key/value pair.
T H IRD- PA RT Y M DM
P RO VIDER C O N F IGURAT IO N K EY VA L UE T Y P E C O N F IGURAT IO N VA L UE
NOTE
The user can add and use their personal accounts with Word. App protection policies don't apply when the user uses
Word outside of a work-context.
See also
What is Intune app protection policy
Review client app protection logs
9/4/2020 • 12 minutes to read • Edit Online
Learn about the settings you can review in the app protection logs. Access logs by enabling Intune Diagnostics on a
mobile client.
The process to enable and collect logs varies by platform:
iOS/iPadOS devices - Use Microsoft Edge for iOS/iPadOS to collect logs. For details, see Use Edge for iOS
and Android to access managed app logs.
Windows 10 devices - Use MDMDiag and event logs. See, Diagnose MDM failures in Windows 10 in the
Windows client management content, and the blog Troubleshooting Windows 10 Intune Policy Failures.
Android devices - Use Microsoft Edge for Android to collect logs. For details, see Use Edge for iOS and
Android to access managed app logs.
NOTE
On Android Fully Managed devices, in certain instances the Intune Company Portal app may be visible under all apps.
This may happen when an app associated with an app protection policy is either not installed or not launched.
The following tables list the App protection policy setting name and supported values that are recorded in the log.
In addition, each setting identifies the policy setting found within Microsoft Endpoint Manager portal. For detailed
information on each setting, see iOS/iPadOS app protection policy settings and Android app protection policy
settings in Microsoft Intune.
AllowedAndroidModelsElseBlock Empty if not set, otherwise list of No administration control for this
allowed models setting.
AllowedAndroidModelsElseWipe Empty if not set, otherwise list of No administration control for this
allowed models setting.
SET T IN G IN M IC RO SO F T EN DP O IN T
NAME VA L UE DETA IL S M A N A GER A P P P ROT EC T IO N P O L IC Y
Next steps
To learn more about app protection policies, see What are app protection policies?
Intune offers a number of tools to help you troubleshoot issues in your environment. For more information, see
Use the troubleshooting portal to help users.
Use the troubleshooting portal to help users at your
company
3/20/2020 • 4 minutes to read • Edit Online
The troubleshooting portal lets help desk operators and Intune administrators view user information to address
user help requests. Organizations that include a help desk can assign the Help desk operator to a group of
users. The help desk operator role can use the Troubleshoot pane.
The Troubleshoot pane also shows user enrollment issues. Details about the issue and suggested remediation
steps can help administrators and help desk operators troubleshoot problems. Certain enrollment issues aren't
captured and some errors might not have remediation suggestions.
For steps on adding a help desk operator role, see Role-based administration control (RBAC) with Intune
When a user contacts support with a technical issue with Intune, the help desk operator enters the user's name.
Intune shows useful data that can help resolve many tier-1 issues, including:
User status
Assignments
Compliance issues
Device not responding
Device not getting VPN or Wi-Fi settings
App installation failure
NOTE
You can also access the troubleshooting pane by pointing your browser to: https://aka.ms/intunetroubleshooting.
TA B L E C O L UM N DESC RIP T IO N
Enrollment start The start time when the user first began enrolling.
Failure details
When you choose a failure row, more details are provided.
Potential remediations Suggested steps to resolve the error. Some failures may not
have remediations.
Resources (Optional) Links for further reading or areas in the portal to take action.
Enrollment errors
ERRO R DETA IL S
iOS/iPadOS Timeout or Failure A timeout between the device and Intune due to the user
taking too long to complete enrollment.
User not found or licensed The user is missing a license or has been removed from the
service.
Device already enrolled Someone attempted to enroll a device by using the Company
Portal on a device that is still enrolled by another user.
Not onboarded into Intune An enrollment was attempted when the Intune mobile device
management (MDM) authority wasn't configured.
Device not supported The device doesn't meet the minimum requirements for
Intune enrollment.
Enrollment restrictions not met This enrollment was blocked due to an admin configured
enrollment restriction.
Device version too low The admin has configured an enrollment restriction requiring
a higher device version.
Device version too high The admin has configured an enrollment restriction requiring
a lower device version.
Device cannot be enrolled as personal The admin has configured an enrollment restriction to block
personal enrollments and the failed device wasn't predefined
as corporate.
Device platform blocked The admin has configured an enrollment restriction that
blocks this device's platform.
Bulk token expired The bulk token in the provisioning package has expired.
ERRO R DETA IL S
Autopilot device or details not found The Autopilot device wasn't found when attempting to enroll.
Autopilot profile not found or not assigned The device doesn't have an active Autopilot profile.
Autopilot enrollment method unexpected The device attempted to enroll by using a non-allowed
method.
Autopilot device removed The device attempting to enroll has been removed from
Autopilot for this account.
Device cap reached This enrollment was blocked due to an admin configured
device limit restriction.
Apple onboarding All iOS/iPadOS devices were blocked from enrolling at this
time due to a missing or expired Apple MDM push certificate
within Intune.
Device not preregistered The device wasn't pre-registered as corporate and all personal
enrollments were blocked by an admin.
Feature not supported The user was likely attempting to enroll via a method not
compatible with your Intune configuration.
Next steps
You can learn more about Role-based administration control (RBAC) to define roles in your organizational device,
mobile application management, data protection tasks. For more information, see Role-based administration
control (RBAC) with Intune.
Learn about any known issues in Microsoft Intune. For more information, see Known issues in Microsoft Intune.
Learn how to create a support ticket a get help when you need it. Get support.
Troubleshoot app installation issues
9/4/2020 • 5 minutes to read • Edit Online
On Microsoft Intune MDM-managed devices, sometimes app installations can fail. When these app installs fail, it
can be challenging to understand the failure reason or troubleshoot the issue. Microsoft Intune provides app
installation failure details that allow help desk operators and Intune administrators to view app information to
address user help requests. The troubleshooting pane within Intune provides failure details, including details about
managed apps on a user's device. Details about the end-to-end lifecycle of an app are provided under each
individual device in the Managed Apps pane. You can view installation issues, such as when the app was created,
modified, targeted, and delivered to a device.
NOTE
For specific app installation error code information, see Intune app installation error reference.
6. Select Managed Apps from selected device pane. A list of managed apps is displayed.
7. Select an app from the list where Installation Status indicates a failure.
NOTE
The same app could be assigned to multiple groups but with different intended actions (intents) for the app. For
instance, a resolved intent for an app will show excluded if the app is excluded for a user during app assignment.
For more information, see How conflicts between app intents are resolved.
If an installation failure occurs for a required app, either you or your helpdesk will be able to sync the device and
retry the app install.
The app installation error details will indicate the problem. You can use these details to determine the best action to
take to resolve the problem. For more information about troubleshooting app installation issues, see Android app
installation errors and iOS app installation errors.
NOTE
You can also access the troubleshooting pane by pointing your browser to: https://aka.ms/intunetroubleshooting.
IMPORTANT
The Collect logs option will not be enabled when the Win32 app has been successfully installed on the device.
Before you can collect Win32 app log information, the Intune management extension must be installed on the Windows
client. The Intune management extension is installed when a PowerShell script or a Win32 app is deployed to a user or device
security group. For more information, see Intune Management extension - Prerequisites.
NOTE
Log collection will take less than two hours. Supported file types: .log,.txt,.dmp,.cab,.zip,.xml,.evtx, and.evtl. A
maximum of 25 file paths are allowed.
3. Once the log files have been collected, you can select the logs link to download the log files.
Win32 app log details - Download logs
NOTE
A notification will be displayed indicating the success of the app log collection.
NOTE
To better recognize ARM64 apps in the Company Portal, consider adding ARM64 to the name of your ARM64 apps.
Next steps
For additional Intune troubleshooting information, see Use the troubleshooting portal to help users at your
company.
Learn about any known issues in Microsoft Intune. For more information, see Intune Customer Success.
Need extra help? See How to get support for Microsoft Intune.
Intune app installation error reference
4/2/2020 • 15 minutes to read • Edit Online
In addition to following the provided steps to troubleshoot application errors, you can also learn about specific app
errors based on the returned error codes. Once you have matched an error code, use the additional description and
information to help resolve the error.
0xC7D14FBA -942583878 The app installation was The download of the APK
canceled because the succeeded, but before the
installation (APK) file was user installed the app the file
deleted after download, but was removed from the
before installation. device. This could happen if
there was a large time
difference between
download and install. For
example, the user canceled
the original install, waited,
and then clicked the
notification to try again. This
error message is returned
this for only DA scenarios.
KNOX scenarios can be done
silently. We do present a
notification to retry so the
user can accept instead of
cancel. If the app is an
available app, the
notification can be
dismissed. However, if the
app is required, it cannot be
dismissed.
0xC7D14FBB -942583877 The app installation was The device was rebooted
canceled because the during the APK installation
process was restarted during process, resulting in a
installation. canceled installation. This
error message is returned
for both DA and KNOX
devices. Intune presents a
notification that users can
click to retry. If the app is an
available app, the
notification can be
dismissed. However, if the
app is required, it cannot be
dismissed.
ERRO R C O DE ( H EX) ERRO R C O DE ( DEC ) ERRO R M ESSA GE/ C O DE DESC RIP T IO N
0x87D1041C -2016345060 The application was not The user explicitly uninstalled
detected after installation the app. This error is not
completed successfully. returned from the client. It is
an error produced when the
app was installed at one
point, but then the user
uninstalled it. This error
should only occur for
required applications. Users
can uninstall non-required
apps. This error can only
happen in DA. KNOX blocks
the uninstall of managed
apps. The next sync will
repost the notification on
the device for the user to
install. The user can ignore
the notification. This error
will continue to be reported
until the user installs the
app.
0xC7D14FB2 -942583886 The download failed because This error occurs when the
of an unknown error. download fails. This error can
commonly occur due to Wi-
Fi issues or slow
connections. This error is
returned for only DA
scenarios. For KNOX
scenarios, the user is not
prompted to install, this can
be done silently. Intune
presents a notification that
users can click to retry. If the
app is an available app, the
notification can be
dismissed. However, if the
app is required, it cannot be
dismissed.
0xC7D15078 -942583688 The download failed because This error occurs when the
of an unknown error. The download fails. This error can
policy will be retried the next commonly occur due to Wi-
time the device syncs. Fi issues or slow
connections. This error is
returned for only DA
scenarios. For KNOX
scenarios, the user is not
prompted to install, this can
be done silently.
ERRO R C O DE ( H EX) ERRO R C O DE ( DEC ) ERRO R M ESSA GE/ C O DE DESC RIP T IO N
0xC7D14FB1 -942583887 The end user canceled the The user explicitly uninstalled
app installation. the app. This error is
returned when the Android
OS install activity was
canceled by the user. The
user pressed the cancel
button when the OS install
prompt was presented or
clicked away from the
prompt. This error is
returned for only DA
scenarios. For KNOX
scenarios, the user is not
prompted to install, this can
be done silently. Intune
presents a notification that
users can click to retry. If the
app is an available app, the
notification can be
dismissed. However, if the
app is required, it cannot be
dismissed. Ask the user not
to cancel the install.
0xC7D1507C -942583684 The file download service The OS ended the download
was unexpectedly stopped. process before it was
The policy will be retried the completed. This error can
next time the device syncs. occur when the device has
low battery or the download
is taking too long. This error
is returned for only DA
scenarios. For KNOX
scenarios, the user is not
prompted to install, this can
be done silently. Manually
sync the device or wait for
24 hours and check the
status.
ERRO R C O DE ( H EX) ERRO R C O DE ( DEC ) ERRO R M ESSA GE/ C O DE DESC RIP T IO N
0xc7d14fb7 -942583881 The app installation APK file Android OS has the
used for the upgrade does limitation of requiring the
not match the signature for signing cert for the upgrade
the current app on the version to be exactly the
device. same as the cert used to
sign the existing version. If
the developer cannot use
the same cert to sign the
new version, you will need to
uninstall the existing app
and re-deploy the new app
rather than upgrade the
existing app.
0xc7d14fb9 -942583879 The end user canceled the Educate the user to accept
app installation. the Intune deployed app
and install the app when
prompted.
0xc7d14fbc -942583876 Uninstall of the app was The app install process was
canceled because the terminated by the OS or the
process was restarted during device was restarted. Retry
installation. the install and collect
Company Portal logs if this
error occurs again.
0xC7D14FB1 -942583887 The end user canceled the The user explicitly uninstalled
app installation. the app. This error is
returned when the Android
OS install activity was
canceled by the user. The
user pressed the cancel
button when the OS install
prompt was presented or
clicked away from the
prompt. This error is
returned for only DA
scenarios. For KNOX
scenarios, the user is not
prompted to install, this can
be done silently. Intune
presents a notification that
users can click to retry. If the
app is an available app, the
notification can be
dismissed. However, if the
app is required, it cannot be
dismissed. Ask the user not
to cancel the install.
0xC7D14FB9 -942583879 The end user canceled the Educate the user to accept
app installation. (At the the Intune deployed app
accept prompt) and install the app when
prompted.
0x87D12906 -2016335610 Apple MDM Agent error: Apple MDM Agent returned
App installation command that the installation
failed with no error reason command failed.
specified. Retry app
installation.
0x87D1313D -2016333507 Could not retrieve license for Sync the associated VPP
the app with iTunes Store ID token, then sync the device
with Intune. If the issue
persists, remove group
assignment and reassign the
VPP app as device-licensed.
If the issue still persists,
revoke the app license from
the device by navigating to
Apps > iOS > select VPP
app > App licenses >
select device. Then, revoke
license and try re-assigning
the app to the user group or
device group. If the issue still
persists, revoke all VPP
licenses for the device by
going to Devices > iOS >
select device > Over view >
Revoke licenses , then
retire the device and re-
enroll to Intune.
0x87D13B66 -2016330906 The app is managed, but has Either the user explicitly
expired or been removed by uninstalled the app, or the
the user. app is expired but failed to
download, or the app
detection does not match
the response from the
device. Additionally, this
error could occur based on
an iOS/iPadOS 9.2.2
platform bug.
0x87D13B60 -2016330912 The app is scheduled for This error typically occurs
installation, but needs a with iOS Store apps which
redemption code to are paid apps.
complete the transaction.
0x87D1041C -2016345060 The application was not The app detection process
detected after installation did not match with the
completed successfully. response from the device.
0x87D13B62 -2016330910 The user rejected the offer to During initial app install, the
install the app. user clicked cancel. Ask the
user to accept the install
request the next time.
DESC RIP T IO N / T RO UB L ESH O
ERRO R C O DE ( H EX) ERRO R C O DE ( DEC ) ERRO R M ESSA GE/ C O DE OT IN G T IP S
0x87D13B63 -2016330909 The user rejected the offer to The end user clicked cancel
update the app. during the update process.
Deploy as required or
educate the user to accept
the upgrade prompt.
0x87D13B93 -2016330861 Can only install VPP apps on The apps must be obtained
Shared iPad. using Apple Volume
Purchase Program to install
on a Shared iPad.
0x87D13B94 -2016330860 Can't install apps when App The App Store must be
Store is disabled. enabled for the user to
install the app.
0x87D13B95 -2016330859 Can't find VPP license for Try revoking and reassigning
app. the app license.
0x87D13B96 -2016330858 Can't install system apps Installing apps that are pre-
with your MDM provider. installed by the iOS/iPadOS
operating system is not a
supported scenario.
0x87D13B97 -2016330857 Can't install apps when All use of the device is
device is in Lost Mode. blocked in Lost Mode.
Disable Lost Mode to install
apps.
0x87D13B98 -2016330856 Can't install apps when Try adding this device to an
device is in kiosk mode. exclude group for kiosk
mode configuration policy to
install apps.
0x87D13B9C -2016330852 Can't install 32-bit apps on The device doesn't support
this device. installing 32-bit apps. Try
deploying the 64-bit version
of the app.
0x87D13B99 -2016330855 User must sign in to the App The user needs to sign in to
Store. the App Store before the
app can be installed.
0x87d13b7f -2016330881 Needed app configuration App requires app config but
policy not present, ensure no app config is targeted.
policy is targeted to same Admin should make sure the
groups. groups the app is targeted
to also has the required app
config targeted to the
groups.
0x87d13b68 -2016330904 User declined app Ask the user to accept app
management management.
0x87D13B9D -2016330851 The latest version of the app This error message is
failed to update from an displayed if the app is
earlier version. installed and managed but
with the incorrect version on
the device. This situation
includes when a device has
received a command to
update an app but the new
version has not yet been
installed and reported back.
This error will be reported
for the first check-in of a
device after the upgrade has
been deployed, and will
occur until the device
reports that the new version
is installed, or fails due to a
different error.
0x87D13B9F -2016330849 The VPP App has an update This code is returned when a
available VPP app is installed but
there is a newer version
available.
DESC RIP T IO N / T RO UB L ESH O
ERRO R C O DE ( H EX) ERRO R C O DE ( DEC ) ERRO R M ESSA GE/ C O DE OT IN G T IP S
0x87D13B9E 2016330850 Can't enforce app uninstall The app is already installed
setting. Retry installing the on the device but the
app. "uninstall on retire" setting
does not match the
configured value. Advise the
user to request the app-
install from Company Portal
to attempt applying the
"uninstall on retire" setting
again.
Next steps
For additional Intune troubleshooting information, see Use the troubleshooting portal to help users at your
company.
Learn about any known issues in Microsoft Intune. For more information, see Intune Customer Success.
Need extra help? See How to get support for Microsoft Intune.
Troubleshoot mobile application management
9/4/2020 • 12 minutes to read • Edit Online
This topic provides solutions to common problems that have occurred when using Intune App Protection (also
referred to as MAM or mobile application management).
If this information does not solve your problem, see How to get support for Microsoft Intune to find more ways to
get help.
Policy not applied to Skype for Business App protection policy without device Skype for Business must be set up for
enrollment, made in the Azure portal, is modern authentication. Please follow
not applying to the Skype for Business instructions in Enable your tenant for
app on iOS/iPadOS and Android modern authentication to set up
devices. modern authentication for Skype.
Office app policy not applied App protection policies are not applying Confirm that the user is licensed for
to any supported Office App for any Intune and the Office apps are targeted
user. by a deployed app protection policy. It
can take up to 8 hours for a newly
deployed app protection policy to be
applied.
Admin can't configure app protection IT administrator user is unable to The following user roles have access to
policy in Azure portal configure app protection policies in the Azure portal:
Azure portal. Global administrator, which you
can set up in the Microsoft 365
admin center
Owner, which you can set up in
the Azure portal.
Contributor, which you can set
up in the Azure portal.
Refer to Role-based administration
control (RBAC) with Microsoft Intune for
help setting up these roles.
User accounts missing from app Admin console reports do not show If a user is newly targeted by an app
protection policy reports user accounts to which app protection protection policy, it can take up to 24
policy was recently deployed. hours for that user to show up in
reports as a targeted user.
Policy changes not working Changes and updates to app protection If applicable, the end-user can log out
policy can take up to 8 hours to apply. of the app and log back in to force sync
with service.
ISSUE DESC RIP T IO N RESO L UT IO N
App protection policy not working with App protection policy is not applying to Please ensure you are using User
DEP Apple DEP devices. Affinity with Apple Device Enrollment
Program (DEP). User Affinity is required
for any app that requires user
authentication under DEP.
Data transfer policy not working with The Allow app to transfer data to See How to manage data transfer
iOS/iPadOS other apps and Allow app to between iOS/iPadOS apps in Microsoft
receive data from other apps Intune.
policies do not successfully manage
data transfer in iOS/iPadOS.
iOS The end-user can use the iOS/iPadOS Intune app protection policy cannot
share extension to open work or school control the iOS/iPadOS share extension
data in unmanaged apps, even with the without managing the device. Therefore,
data transfer policy set to Managed Intune encr ypts "corporate" data
apps only or No apps. Doesn't this before sharing it outside the app .
leak data? You can validate this by attempting to
open the "corporate" file outside of the
managed app. The file should be
encrypted and unable to be opened
outside the managed app.
iOS Why is the end-user prompted to This is needed when App Based
install the Microsoft Authenticator Conditional Access is applied, see
app Require approved client app.
P L AT F O RM SC EN A RIO EXP L A N AT IO N
Android Why does the end-user need to On Android, much of app protection
install the Company Por tal app , functionality is built into the Company
even if I'm using MAM app protection Portal app. Device enrollment is not
without device enrollment? required even though the
Company Por tal app is always
required . For app protection without
enrollment, the end-user just needs to
have the Company Portal app installed
on the device.
iOS/Android App Protection policy not applied on Since Outlook supports both corporate
draft email in the Outlook app and personal context, it does not
enforce MAM on draft email.
iOS/Android App Protection policy not applied on Since WXP supports both corporate and
new documents in WXP personal context, it does not enforce
(Word,Excel,PowerPoint) MAM on new documents until they are
saved in an identified corporate location
like OneDrive.
iOS/Android Apps not allowing Save As to Local The App behavior for this setting is
Storage when policy is enabled controlled by the App Developer.
Android Android has more restrictions than Android is an open platform and the
iOS/iPadOS on what "native" apps can "native" app association can be changed
access MAM protected content by the end-user to potentially unsafe
apps. Apply Data transfer policy
exceptions to exempt specific apps.
Android Azure Information Protection (AIP) can AIP honors the MAM policy for 'Disable
Save as PDF when Save As is prevented printing' when Save as PDF is used.
iOS Opening PDF attachments in Outlook This can occur if the user has not
app fails with "Action Not Allowed authenticated to Acrobat Reader for
Intune, or has used thumbprint to
authenticate to their organization. Open
Acrobat Reader beforehand and
authenticate using UPN credentials.
iOS, Android Sign-in : To protect its data, your The end-user must sign in with their
organization needs to manage this app. work or school account in order to use
To complete this action, sign in with this app, which requires an app
your work or school account. protection policy. In order for the policy
to apply, the user must authenticate
against Azure Active Directory.
iOS, Android Restar t Required : Your organization is The app has just received an Intune app
now protecting its data in this app. You protection policy and must restart in
need to restart the app to continue. order for the policy to apply.
P L AT F O RM M ESSA GE O R DIA LO G EXP L A N AT IO N
iOS, Android Action Not Allowed : Your The IT administrator has set the Allow
organization only allows you to open app to receive data from other
work or school data in this app. apps to Managed apps only .
Therefore, the end-user can only
transfer data into this app from other
apps that have an app protection policy.
iOS, Android Action Not Allowed : Your The IT administrator has set the Allow
organization only allows you to transfer app to transfer data to other apps
its data to other managed apps. to Managed apps only . Therefore,
the end-user can only transfer data out
of this app to other apps that have an
app protection policy.
iOS, Android Wipe Aler t : Your organization has The IT administrator has initiated an
removed its data associated with this app wipe using Intune app protection.
app. To continue, restart the app.
Android Company Por tal required : To use On Android, much of app protection
your work or school account with this functionality is built into the Company
app, you must install the Intune Portal app. Device enrollment is not
Company Portal app. Click "Go to store" required even though the
to continue. Company Por tal app is always
required . For app protection without
enrollment, the end-user just needs to
have the Company Portal app installed
on the device.
App Not Set Up : This app has not Failure to detect a required app Make sure an iOS app protection policy
been set up for you to use. Contact protection policy for the app. is deployed to the user's security group
your IT administrator for help. and targets this app.
Welcome to the Intune Managed Failure to detect a required app Make sure an iOS app protection policy
Browser : This app works best when protection policy for the Intune is deployed to the user's security group
managed by Microsoft Intune. You can Managed Browser app. and targets the Intune Managed
always use this app to browse the web, Browser app.
and when it is managed by Microsoft The user can still use the app to browse
Intune you gain access to additional the web, but the app is not managed by
data protection features. Intune.
Sign-in Failed : We can't sign you in Failure to enroll the user with the MAM Make sure an iOS app protection policy
right now. Please try again later. service after the user attempts to sign is deployed to the user's security group
in with their work or school account. and targets this app.
Account Not Set Up : Your The user account does not have an Make sure the user's account has an
organization has not set up your Intune A Direct license. Intune license assigned in the Microsoft
account to access work or school data. 365 admin center.
Please contact your IT administrator for
help.
ERRO R M ESSA GE O R DIA LO G C A USE REM EDIAT IO N
Device Non-Compliant : This app Intune detected the user is on a Reset the device to default factory
cannot be used because you are using a jailbroken device. settings. Follow these instructions from
jailbroken device. Contact your IT the Apple support site.
administrator for help.
Internet Connection Required : You The device is not connected to the Connect the device to a WiFi or Data
must be connected to the Internet to Internet. network.
verify that you can use this app.
Unknown Failure : Try restarting this An unknown failure occurred. Wait a while and try again. If the error
app. If the problem persists, contact persists, create a support ticket with
your IT administrator for help. Intune.
Accessing Your Organization's Intune detects the user attempted to Have the user sign in with the account
Data : The work or school account you sign in with second work or school whose username is pre-populated by
specified does not have access to this account that is different from the MAM the sign-in screen. You may need to
app. You may have to sign in with a enrolled account for the device. Only configure the user UPN setting for
different account. Contact your IT one work or school account can be Intune.
administrator for help. managed by MAM at a time per device.
Or, have the user sign in with the new
work or school account and remove the
existing MAM enrolled account.
Connection Issue : An unexpected Unexpected failure. Wait a while and try again. If the error
connection issue occurred. Check your persists, create a support ticket with
connection and try again. Intune.
Aler t : This app can no longer be used. Failure to validate the app's certificate. Make sure the app version is up-to-
Contact your IT administrator for more date.
information.
Reinstall the app.
Error : This app has encountered a Failure to read the MAM app PIN from Restart the device. Make sure the app
problem and must close. If this error the Apple iOS Keychain. version is up-to-date.
persists, please contact your IT
administrator. Reinstall the app.
App not set up : This app has not Failure to detect a required app Make sure an Android app protection
been set up for you to use. Contact protection policy for the app. policy is deployed to the user's security
your IT administrator for help. group and targets this app.
Failed app launch : There was an issue Intune detected valid app protection Make sure the app version is up-to-
launching your app. Try updating the policy for the app, but the app is date.
app or the Intune Company Portal app. crashing during MAM initialization.
If you need help, contact your IT Make sure the Intune Company Portal
administrator. app is installed and up-to-date on the
device.
No apps found : There are no apps on The user tried to open work or school Make sure an Android app protection
this device that your organization data with another app, but Intune policy is deployed to the user's security
allows to open this content. Contact cannot find any other managed apps group and targets at least one other
your IT administrator for help. that are allowed to open the data. MAM-enabled app that can open the
data in question.
Sign-in failed : Try to sign in again. If Failure to authenticate the account with Make sure the user signs in with the
this problem persists, contact your IT which the user attempted to sign in. work or school account that is already
administrator for help. enrolled with the Intune MAM service
(the first work or school account that
was successfully signed into in this app).
Internet connection required : You The device is not connected to the Connect the device to a WiFi or Data
must be connected to the Internet to Internet. network.
verify that you can use this app.
Device noncompliant : This app can't Intune detected the user is on a rooted Reset the device to default factory
be used because you are using a rooted device. settings.
device. Contact your IT administrator
for help.
Account not set up : This app must The user account does not have an Make sure the user's account has an
be managed by Microsoft Intune, but Intune A Direct license. Intune license assigned in the Microsoft
your account has not been set up. 365 admin center.
Contact your IT administrator for help.
Unable to register the app : This app Failure to automatically enroll the app Clear the app's data.
must be managed by Microsoft Intune, with the MAM service when app
but we were unable to register this app protection policy is required. Send logs to Intune through the
at this time. Contact your IT Company Portal app or file a support
administrator for help. ticket. For more information, see How
to get support for Microsoft Intune.
Next steps
Validating your mobile application management setup
Learn how to use log files to troubleshoot Intune App Protection policy, see
https://techcommunity.microsoft.com/t5/Intune-Customer-Success/Support-Tip-Troubleshooting-Intune-app-
protection-policy-using/ba-p/330372
For additional Intune troubleshooting information, see Use the troubleshooting portal to help users at your
company.
Learn about any known issues in Microsoft Intune. For more information, see Known issues in Microsoft Intune.
Need extra help? See How to get support for Microsoft Intune.
Review client app protection logs
9/4/2020 • 12 minutes to read • Edit Online
Learn about the settings you can review in the app protection logs. Access logs by enabling Intune Diagnostics on
a mobile client.
The process to enable and collect logs varies by platform:
iOS/iPadOS devices - Use Microsoft Edge for iOS/iPadOS to collect logs. For details, see Use Edge for iOS
and Android to access managed app logs.
Windows 10 devices - Use MDMDiag and event logs. See, Diagnose MDM failures in Windows 10 in the
Windows client management content, and the blog Troubleshooting Windows 10 Intune Policy Failures.
Android devices - Use Microsoft Edge for Android to collect logs. For details, see Use Edge for iOS and
Android to access managed app logs.
NOTE
On Android Fully Managed devices, in certain instances the Intune Company Portal app may be visible under all
apps. This may happen when an app associated with an app protection policy is either not installed or not launched.
The following tables list the App protection policy setting name and supported values that are recorded in the log.
In addition, each setting identifies the policy setting found within Microsoft Endpoint Manager portal. For detailed
information on each setting, see iOS/iPadOS app protection policy settings and Android app protection policy
settings in Microsoft Intune.
AllowedAndroidModelsElseBlock Empty if not set, otherwise list of No administration control for this
allowed models setting.
AllowedAndroidModelsElseWipe Empty if not set, otherwise list of No administration control for this
allowed models setting.
SET T IN G IN M IC RO SO F T EN DP O IN T
NAME VA L UE DETA IL S M A N A GER A P P P ROT EC T IO N P O L IC Y
Next steps
To learn more about app protection policies, see What are app protection policies?
Intune offers a number of tools to help you troubleshoot issues in your environment. For more information, see
Use the troubleshooting portal to help users.
Troubleshooting app protection policy deployment in
Intune
9/4/2020 • 11 minutes to read • Edit Online
Introduction
This article helps you understand and troubleshoot problems when you apply app protection policies in Microsoft
Intune. Follow the sections that apply to your situation.
Basic steps
Collect initial data
Before you begin troubleshooting, you should collect some basic information that can help you better understand
the problem and reduce the time to find a resolution.
Collect the following information:
What policy setting isn't applied? Is any policy applied?
What is the user experience? Have users installed and started the targeted app?
When did the problem start? Has app protection ever worked?
Which platform (Android or iOS) has the problem?
How many users are affected? Are all devices or only some devices affected?
How many devices are affected? Are all devices or only some devices affected?
Although Intune app protection policy doesn't require a mobile device management (MDM) service, are affected
users using Intune or a third-party EMM?
Are all managed apps or only specific apps affected? For example, are LOB apps that have Intune App SDK
affected but store apps are not?
Now, you can start troubleshooting based on the answers to these questions.
Verify prerequisites
The next step in troubleshooting is to check whether all prerequisites are met.
Although you can use Intune app protection policies independent of any MDM solution, the following prerequisites
must be met:
The user must have an Intune license assigned.
The user must belong to a security group that is targeted by an app protection policy. The same app
protection policy must target the specific app that's used.
For Android devices, the Company Portal app is required to receive app protection policies.
If you use Word, Excel, or PowerPoint apps, the following additional requirements must be met:
The user must have a license for Microsoft 365 Apps for business or enterprise linked to the user's Azure
Active Directory (Azure AD) account. The subscription must include the Office apps on mobile devices
and can include a cloud storage account with OneDrive for Business. Microsoft 365 licenses can be
assigned in the Microsoft 365 admin center by following these instructions.
The user must have a managed location that's configured by using the granular Save as functionality.
This command is located under the Save Copies of Org Data application protection policy setting. For
example, if the managed location is OneDrive, the OneDrive app should be configured in the user's Word,
Excel, or PowerPoint app.
If the managed location is OneDrive, the app must be targeted by the app protection policy that's
deployed to the user.
NOTE
The Office mobile apps currently support only SharePoint Online and not SharePoint on-premises.
If you use Intune app protection policies together with on-premises resources (Microsoft Skype for Business
and Microsoft Exchange Server), you must enable Hybrid Modern Authentication (HMA) for Skype for
Business and Exchange.
Intune app protection policies require that the identity of the user is consistent between the app and Intune App
SDK. The only way to guarantee this consistency is through modern authentication. There are scenarios in which
apps may work in an on-premises configuration without modern authentication. However, the outcomes are not
consistent or guaranteed.
For more information about how to enable HMA for Skype for Business hybrid and on-premises configurations, see
the following articles:
Hybrid
Hybrid Modern Auth for SfB and Exchange goes GA
On-premises
Modern Auth for SfB OnPrem with Azure AD
Check app protection policy status
To check your app protection status, follow these steps:
1. Sign in to the Microsoft Endpoint Manager admin center.
2. Select Apps > Monitor > App protection status , and then select the Assigned users tile.
3. On the App repor ting page, select Select user to bring up a list of users and groups.
4. Search for and select one of the affected users from the list, then select Select user . At the top of the App
reporting pane, you can see whether the user is licensed for app protection and has a license for Microsoft 365.
You can also see the app status for all the user's devices.
5. Make a note of such important information as the targeted apps, device types, policies, device check-in status,
and last sync time.
NOTE
App protection policies are applied only when apps are used in the work context. For example, when the user is accessing
apps by using a work account.
For more information, see How to validate your app protection policy setup in Microsoft Intune.
Verify that user identity is consistent between app and Intune App SDK
In most scenarios, users log in to their accounts by using their user principal name (UPN). However, in some
environments (such as on-premises scenarios), users might use some other form of sign-in credentials. In these
cases, you might find that the UPN that's used in the app doesn't match the UPN object in Azure AD. When this
issue occurs, app protection policies aren't applied as expected.
Microsoft's recommended best practices are to match the UPN to the primary SMTP address. This practice enables
users to log in to managed apps, Intune app protection, and other Azure AD resources by having a consistent
identity. For more information, see Azure AD UserPrincipalName population.
If your environment requires alternative sign-in methods, see Configuring Alternate Login ID, specifically Hybrid
Modern Authentication with Alternate-ID.
Verify that the user is targeted
Intune app protection policies must be targeted to users. If you don't assign an app protection policy to a user or
user group, the policy isn't applied.
To verify that the policy is applied to the targeted user, follow these steps:
1. Sign in to the Microsoft Endpoint Manager admin center.
2. Select Apps > Monitor > App protection status , and then select the User status tile (based on device OS
platform). On the App repor ting pane that opens, select Select user to search for a user.
3. Select the user from the list. You can see the details for that user.
When you assign the policy to a user group, make sure that the user is in the user group. To do this, follow these
steps:
1. Sign in to the Microsoft Endpoint Manager admin center.
2. Select Groups > All groups , and then search for and select the group that's used for your app protection
policy assignment.
3. Under the Manage section, select Members .
4. If the affected user isn't listed, review Manage app and resource access using Azure Active Directory groups and
your group membership rules. Make sure that the affected user is included in the group.
5. Make sure that the affected user isn't in any of the excluded groups for the policy.
IMPORTANT
The Intune app protection policy must be assigned to user groups and not device groups.
If the affected device uses Apple Device Enrollment Program (DEP), make sure that User Affinity is enabled. User Affinity
is required for any app that requires user authentication under DEP.
If the affected device uses Android Enterprise, only work profiles will support app protection policies.
NOTE
Starting in September 2019, Intune will move to support iOS apps that have Intune App SDK 8.1.1 and later versions. Apps
built by using SDK versions that are earlier than 8.1.1 will no longer be supported.
More information
Special requirements for Intune MDM -managed devices
When you create an app protection policy, you can target it to all app types or to the following app types:
Apps on unmanaged devices
Apps on Intune-managed devices
Apps in the Android Work Profile
NOTE
To specify the app types, set Target to all app types to No , and then select from the App types list.
For iOS, the following additional app configuration settings are required to target app protection policy (APP)
settings to apps on Intune-enrolled devices:
IntuneMAMUPN must be configured for all MDM (Intune or a third-party EMM)-managed applications. For
more information, see Configure user UPN setting for Microsoft Intune or third-party EMM.
IntuneMAMDeviceID must be configured for all third-party and LOB MDM-managed applications.
IntuneMAMDeviceID must be configured as the device ID token. For example, key=IntuneMAMDeviceID,
value={{deviceID}}. For more information, see Add app configuration policies for managed iOS devices.
If only the IntuneMAMDeviceID value is configured, Intune APP will consider the device as unmanaged.
Scenario: Policy changes are not working
The Intune App SDK checks regularly for policy changes. However, this process may be delayed for any of the
following reasons:
The app hasn't checked in with the service.
The Company Portal app has been removed from the device.
Intune app protection policy relies on user identity. Therefore, a valid login that uses a work or school account to
the app and a consistent connection to the service are required. If the user hasn't signed in to the app, or the
Company Portal app has been removed from the device, policies updates won't apply.
Additionally, changes and updates to app protection policy can take up to 8 hours to apply. If applicable, closing all
apps and restarting the device usually forces the policy update to apply sooner.
To check app protection status, follow these steps:
1. Sign in to the Microsoft Endpoint Manager admin center.
2. Select Apps > Monitor > App protection status , and then select the Assigned users tile.
3. On the App reporting page, select Select user to open a list of users and groups.
4. Search for and select one of the affected users from the list, then select Select user .
5. Review the policies that are currently applied, including the status and last sync time.
6. If the status is Not checked in , or if the display indicates that there has not been a recent sync, check whether
the user has a consistent network connection. For Android users, make sure that they have the latest version of
the Company Portal app installed.
IMPORTANT
The Intune App SDK checks every 30 minutes for selective wipe. However, changes to existing policy for users who are
already signed in may not appear for up to 8 hours. To speed up this process, have the user log out of the app and then log
back in or restart their devices.
Intune app protection policy includes multi-identity support. Intune can apply app protection policies to only the
work or school account that's signed in to the app. However, only one work or school account per device is
supported.
Scenario: The policy is applied, but iOS users can still transfer work files to unmanaged apps
The Open-in management ( ) feature for iOS devices can limit file transfers between apps that are deployed
through the MDM channel. The user may be able to transfer work files from managed locations such as OneDrive
and Exchange to unmanaged apps or locations, depending on the configuration. The iOS Open-in management
feature works outside other data transfer methods. Therefore, it isn't affected by Save as and Copy/Paste settings.
You can use Intune app protection policies together with the iOS Open-in management feature to protect
company data in the following manner:
Employee-owned devices that are not managed by an MDM solution : You can set the app
protection policy settings to Allow app to transfer data to only Policy Managed apps . Configured in
this way, the Open-in behavior in a policy-managed app provides only other policy-managed apps as
options for sharing. For example, if a user tries to send a protected file as an attachment from OneDrive in
the native mail app, that file is unreadable.
Devices that are managed by MDM solutions : For devices that are enrolled in Intune or third-party
MDM solutions, data sharing between apps by using app protection policies and other managed iOS apps
that are deployed through MDM is controlled by Intune APP and by the iOS Open-in management
feature.
To make sure that apps you deploy by using an MDM solution are also associated with your Intune app
protection policies, configure the user UPN setting as described in Configure user UPN setting.
To specify how you want to allow data transfer to other apps, enable Send Org data to other apps , and
then select your preferred level of sharing.
To specify how you want to allow an app to receive data from other apps, enable Receive data from other
apps , and then select your preferred level of receiving data.
For more information about how to receive and share app data, see Data relocation settings.
For more information, see How to manage data transfer between iOS apps in Microsoft Intune.
References
If you're still looking for a solution to a related problem, or for more information about Intune, post a question in
our Microsoft Intune forum. Many support engineers, MVPs, and members of our development team visit the
forums. So, there's a good chance that you can find someone who has the information that you need.
To open a support request for the Microsoft Intune product support team, see How to get support for Microsoft
Intune.
For more information about Intune app protection policy, see the following articles:
Troubleshoot mobile application management
Frequently asked questions about MAM and app protection
Support Tip: Troubleshooting Intune app protection policy using log files on local devices
For all the latest news, information, and tech tips, go to our official blogs:
The Microsoft Intune Support Team Blog
The Microsoft Enterprise Mobility and Security Blog
Next steps
For additional Intune troubleshooting information, see Use the troubleshooting portal to help users at your
company.
Learn about any known issues in Microsoft Intune. For more information, see Intune Customer Success.
Need extra help? See How to get support for Microsoft Intune.
Microsoft Intune App SDK overview
9/4/2020 • 4 minutes to read • Edit Online
The Intune App SDK, available for both iOS and Android, enables your app to support Intune app protection
policies. When your app has app protection policies applied to it, it can be managed by Intune and is
recognized by Intune as a managed app. The SDK strives to minimize the amount of code changes required
from the app developer. You'll find that you can enable most of the SDK's features without changing your app's
behavior. For enhanced end-user and IT administrator experience, you can utilize the SDK's APIs to customize
your app behavior to support features that require your app participation.
Once you have enabled your app to support Intune app protection policies, IT administrators can deploy these
policies to protect their corporate data within the app.
IMPORTANT
Intune app protection without device enrollment is available with the Intune App Wrapping Tools, Intune App SDK for
Android, Intune App SDK for iOS, and Intune App SDK Xamarin Bindings.
Many users with personal devices want to access corporate data without enrolling their personal device with a
Mobile Device Management (MDM) provider. Since MDM enrollment requires global control of the device,
users are often hesitant to give control of their personal device over to their company.
App protection without device enrollment allows the Microsoft Intune service to deploy app protection policy
to an app directly, without relying on a device management channel to deploy the policy.
On-demand application VPN connections with Citrix mVPN
You can manage devices and apps with a combination of Citrix XenMobile MDX and Microsoft Intune. This
combination means that you can manage apps with Intune app protection policy while using Citrix's mVPN
technology. The integration with Citrix is available for the Intune App SDK for iOS and Android, and with the
Intune App Wrapping Tool for iOS and Android (with the -citrix flag).
To learn more about Citrix MDX, see About the MDX Toolkit, Citrix MDX app wrapper for iOS, and the Citrix
MDX app wrapper for Android.
Next steps
Get started with the Microsoft Intune App SDK.
Get started with the Microsoft Intune App SDK
9/4/2020 • 10 minutes to read • Edit Online
This guide will help you quickly enable your mobile app to support app protection policies with Microsoft Intune.
You may find it useful to first understand the benefits of the Intune App SDK, as explained in the Intune App SDK
overview.
The Intune App SDK supports similar scenarios across iOS and Android, and is intended to create a consistent
experience across the platforms for IT admins. But there are small differences in the support of certain features,
because of platform differences and limitations.
NOTE
All information collected in the questionnaire and through email correspondence with the Microsoft Intune team will honor
the Microsoft Privacy Statement.
NOTE
You must inform us if you update your app with a new version of the Intune App SDK.
Enable your iOS or Android app for app based Conditional Access
In addition to enabling your app for app protection policy, the following is required for your app to properly
function with Azure ActiveDirectory (AAD) app based Conditional Access:
App is built with the Azure ActiveDirectory Authentication Library and enabled for AAD broker
authentication.
The AAD Client ID for your app must be unique across iOS and Android platforms.
iOS
CFBundleShor tVersionString
Specifies the release version number of the bundle. This number identifies a released version of the app. The
number is used by end users to reference the app.
CFBundleVersion
The build version of the bundle, which identifies an iteration of the bundle. The number may be identify a
release or unreleased bundle. The number is used for app detection.
Android
PackageVersionName
The version number shown to users. This attribute can be set as a raw string or as a reference to a string
resource. The string has no other purpose than to be displayed to users.
PackageVersionCode
An internal version number. This number is used only to determine whether one version is more recent than
another, with higher numbers indicating more recent versions. This is not the version
NOTE
If your app restricts you from signing in due to an error accessing this resource: https://intunemam.microsoftonline.com,
you must send a note to msintuneappsdk@microsoft.com with your app's Client ID. This is a manual approval process
today.
You can enable your apps to use app protection policies by using either the Intune App Wrapping Tool or the
Intune App SDK. Use this information to learn about these two methods and when to use them.
Feature comparison
This table lists the settings that are enabled if an app uses the App SDK or the App Wrapping Tool. Some features
require app developers to apply some logic outside of basic integration with the Intune SDK, and as such, are not
enabled if the app uses the App Wrapping Tool.
Require corporate X X
credentials for access
Targeted Application X X
Configuration (or app config
through the "MAM
channel")
Customizable Style X
F EAT URE A P P SDK A P P W RA P P IN G TO O L
On-demand application X X
VPN connections with Citrix
mVPN
Disable printing X X
Next steps
To learn more about app protection policies and Intune, see the following topics:
Android app wrapping tool
iOS app wrapping tool
Use the SDK to enable apps for mobile application management
Prepare iOS apps for app protection policies with the
Intune App Wrapping Tool
9/4/2020 • 23 minutes to read • Edit Online
Use the Microsoft Intune App Wrapping Tool for iOS to enable Intune app protection policies for in-house iOS
apps without changing the code of the app itself.
The tool is a macOS command-line application that creates a wrapper around an app. Once an app is processed,
you can change the app's functionality by deploying app protection policies to it.
To download the tool, see Microsoft Intune App Wrapping Tool for iOS on GitHub.
11. Follow the instructions from the Apple developer site above on how to create a CSR file. Save the CSR file to
your macOS computer.
12. Return to the Apple developer site. Click Continue . Then upload the CSR file.
13. Apple generates your signing certificate. Download and save it to a memorable location on your macOS
computer.
14. Double-click the certificate file you just downloaded to add the certificate to a keychain.
15. Open Keychain Access again. Locate your certificate by searching for its name in the top right search bar.
Right-click on the item to bring up the menu and click Get Info . In the example screens, we are using a
development certificate instead of a production certificate.
16. An informational window appears. Scroll to the bottom and look under the Fingerprints label. Copy the
SHA1 string (blurred out) to use as the argument for "-c" for the App Wrapping Tool.
3. Click the in the top right corner to add an iOS provisioning profile.
4. Choose to create an In House provisioning profile under Distribution .
5. Click Continue . Make sure to link the previously generated signing certificate to the provisioning profile.
6. Follow the steps to download your profile (with extension .mobileprovision) to your macOS computer.
7. Save the file in a memorable location. This file will be used for the -p parameter while using the App
Wrapping Tool.
NOTE
Some parameters are optional as shown in the following table.
Example: The following example command runs the App Wrapping Tool on the app named MyApp.ipa. A
provisioning profile and SHA-1 hash of the signing certificate are specified and used to sign the wrapped app. The
output app (MyApp_Wrapped.ipa) is created and stored in your Desktop folder.
Command-line parameters
You can use the following command line parameters with the App Wrapping Tool:
P RO P ERT Y H O W TO USE IT
-aa (Optional)
<Authority URI of the input app if the app uses the
Azure Active Directory Authentication Library>
i.e login.windows.net/common
-ac (Optional)
<Client ID of the input app if the app uses the
Azure Active Directory Authentication Library>
This is the guid in the Client ID field is from your app's listing
in the App Registration blade.
-ar (Optional)
<Redirect/Reply URI of the input app if the app uses
the Azure Active Directory Authentication Library>
This is the Redirect URI configured in your App Registration.
Typically it would be the URL protocol of the application that
the Microsoft Authenticator app would return to after
brokered authentication.
-x (Optional)
<An array of paths to extension provisioning
profiles>
. Use this if your app needs extension provisioning profiles.
-f (Optional)
<Path to a plist file specifying arguments.> Use this
flag in front of the plist file if you choose to use the plist
template to specify the rest of the IntuneMAMPackager
properties like -i, -o, and -p. See Use a plist to input
arguments.
./IntuneMAMPackager –f Parameters.plist
Post-wrapping
After the wrapping process completes, the message "The application was successfully wrapped" will be displayed.
If an error occurs, see Error messages for help.
The wrapped app is saved in the output folder you specified previously. You can upload the app to the Intune
admin console and associate it with a mobile application management policy.
IMPORTANT
When uploading a wrapped app, you can try to update an older version of the app if an older (wrapped or native) version
was already deployed to Intune. If you experience an error, upload the app as a new app and delete the older version.
You can now deploy the app to your user groups and target app protection policies to the app. The app will run on
the device using the app protection policies you specified.
How often should I rewrap my iOS application with the Intune App
Wrapping Tool?
The main scenarios in which you would need to rewrap your applications are as follows:
The application itself has released a new version. The previous version of the app was wrapped and uploaded
to the Intune console.
The Intune App Wrapping Tool for iOS has released a new version that enables key bug fixes, or new, specific
Intune application protection policy features. This happens after 6-8 weeks through GitHub repo for the
Microsoft Intune App Wrapping Tool for iOS.
For iOS/iPadOS, while it is possible to wrap with different cert/provisioning profile than the original used to sign
the app, if the entitlements specified in the app are not included in the new provisioning profile, wrapping will fail.
Using the "-e" command-line option, which removes any missing entitlements from the app, to force wrapping to
not fail in this scenario can cause broken functionality in the app.
Some best practices for rewrapping include:
Ensuring that a different provisioning profile has all the required entitlements as any previous provisioning
profile.
ERRO R M ESSA GE M O RE IN F O RM AT IO N
You must specify a valid iOS provisioning profile. Your provisioning profile might not be valid. Check to make
sure you have the correct permissions for devices and that
your profile is correctly targeting development or distribution.
Your provisioning profile might also be expired.
Specify a valid input application name. Make sure that the input application name you specified is
correct.
Specify a valid path to the output application. Make sure that the path to the output application you
specified exists, and is correct.
Specify a valid input provisioning profile. Make sure you supplied a valid provisioning profile name and
extension. Your provisioning profile might be missing
entitlements, or you might not have included the –p
command line option.
The input application you specified was not found. Specify a Make sure your input app path is valid and exists. Make sure
valid input application name and path. the input app exists at that location.
The input provisioning profile file you specified was not found. Make sure that the path to the input provisioning file is valid
Specify a valid input provisioning profile file. and that the file you specified exists.
The output application folder you specified was not found. Make sure that the output path you specified is valid and
Specify a valid path to the output application. exists.
Output app does not have .ipa extension. Only apps with the .app and .ipa extensions are accepted by
the App Wrapping Tool. Make sure your output file has a valid
extension.
An invalid signing certificate was specified. Specify a valid Make sure you've downloaded the correct signing certificate
Apple signing certificate. from the Apple developer portal. Your certificate might be
expired or might be missing a public or private key. If your
Apple certificate and provisioning profile can be used to
correctly sign an app within Xcode, then they are valid for the
App Wrapping Tool.
The input application you specified is invalid. Specify a valid Make sure you have a valid iOS application that has been
application. compiled as an .app or .ipa file.
The input application you specified is encrypted. Specify a The App Wrapping Tool does not support encrypted apps.
valid unencrypted application. Provide an unencrypted app.
ERRO R M ESSA GE M O RE IN F O RM AT IO N
The input application you specified is not in a Position Position Independent Executable (PIE) apps can be loaded at a
Independent Executable (PIE) format. Specify a valid random memory address when run. This can have security
application in PIE format. benefits. For more about security benefits, see your Apple
Developer documentation.
The input app you specified has already been wrapped. You cannot process an app that has already been processed
Specify a valid unwrapped application. by the tool. If you want to process an app again, run the tool
using the original version of the app.
The input application you specified is not signed. Specify a The app wrapping tool requires apps to be signed. Consult
valid signed application. your developer documentation to learn how to sign a
wrapped app.
The input application you specified must be in the .ipa or .app Only .app and .ipa extensions are accepted by the app
format. wrapping tool. Make sure your input file has a valid extension
and has been compiled as a .app or .ipa file.
The input app you specified has already been wrapped and is The App Wrapping Tool will not rewrap an existing wrapped
on the latest policy template version. app with the latest policy template version.
WARNING: You did not specify a SHA1 certificate hash. Make Ensure that you specify a valid SHA1 hash following the –c
sure that your wrapped application is signed before command line flag.
deploying.
NOTE
The logging functionality is enabled for apps that have wrapped with the Intune App Wrapping Tool version 7.1.13 or above.
iOS provisioning profile Make sure that the provisioning profile is valid before you
include it. The App Wrapping Tool does not check whether the
provisioning profile is expired when processing an iOS app. If
an expired provisioning profile is specified, the app wrapping
tool will include the expired provisioning profile, and you will
not know there is a problem until the app fails to install on an
iOS device.
iOS signing certificate Make sure that the signing certificate is valid before you
specify it. The tool does not check whether a certificate is
expired when processing iOS apps. If the hash for an expired
certificate is provided, the tool will process and sign the app,
but it will fail to install on devices.
App groups Use app groups to allow multiple apps When using App Groups, use reverse
to access shared containers and allow DNS notation:
additional interprocess communication
between apps. group.com.companyName.AppGroup
Keychain sharing Enabling keychain sharing lets your app When using keychain sharing, use
share passwords in the keychain with reverse DNS notation:
other apps developed by your team.
com.companyName.KeychainGroup
Push notifications Apple Push Notification service (APNs) For push notifications to work, you
lets an app that isn't running in the need to use an app-specific
foreground notify the user that it has provisioning profile.
information for the user.
Follow the steps in the Apple developer
documentation.
Failed to parse entitlements generated The App Wrapping Tool cannot read the Inspect the entitlements file for your
from the input application. entitlements file that was extracted app. The following instructions explain
from the app. The entitlements file how to do so. When inspecting the
might be malformed. entitlements file, check for any
malformed syntax. The file should be in
XML format.
Entitlements are missing in the There is a mismatch between the Generally, you can create a new
provisioning profile (missing entitlements enabled in the provisioning profile that enables the
entitlements are listed). Repackage the provisioning profile and the capabilities same capabilities as the app. When IDs
app with a provisioning profile that has enabled in the app. This mismatch also between the profile and app don't
these entitlements. applies to the IDs associated with match, the App Wrapping Tool will
particular capabilities (like app groups replace the IDs if it is able to. If you still
and keychain access). get this error after creating a new
provisioning profile, you can try
removing entitlements from the app by
using the –e parameter (see Using the –
e parameter to remove entitlements
from an app section).
4. Use the security tool to check the entitlements of the app's embedded provisioning profile, where
YourApp.app is the actual name of your .app bundle.
Intune App Wrapping Tool for iOS with Citrix MDX mVPN
This feature is an integration with the Citrix MDX app wrapper for iOS/iPadOS. The integration is simply an
additional, optional command-line flag, -citrix to the general Intune App Wrapping Tools.
Requirements
To use the -citrix flag, you will also need to install the Citrix MDX app wrapper for iOS on the same macOS
machine. The downloads are found on Citrix XenMobile Downloads and are restricted to Citrix customers only
after signing in. Make sure this is installed in the default location: /Applications/Citrix/MDXToolkit .
NOTE
Support for Intune and Citrix integration is limited to iOS 10+ devices only.
See also
Decide how to prepare apps for mobile application management with Microsoft Intune
Common questions, issues, and resolutions with device policies and profiles
Use the SDK to enable apps for mobile application management
Microsoft Intune App SDK for iOS developer guide
9/4/2020 • 46 minutes to read • Edit Online
NOTE
Consider reading the Get Started with Intune App SDK Guide article, which explains how to prepare for integration on each
supported platform.
To download the SDK, see Download the SDK files.
The Microsoft Intune App SDK for iOS lets you incorporate Intune app protection policies (also known as APP or
MAM policies) into your native iOS app. A MAM-enabled application is one that is integrated with the Intune App
SDK. IT administrators can deploy app protection policies to your mobile app when Intune actively manages the
app.
Prerequisites
You will need a Mac OS computer that runs OS X 10.12.6 or later, and also has Xcode 9 or later installed.
Your app must be targeted for iOS 11 or above.
Review the Intune App SDK for iOS License Terms. Print and retain a copy of the license terms for your
records. By downloading and using the Intune App SDK for iOS, you agree to such license terms. If you do
not accept them, do not use the software.
Download the files for the Intune App SDK for iOS on GitHub.
Option 2 - Static Librar y : This option is only available for apps/extensions that contain no Swift code, or
were built with Xcode < 10.2. Link to the libIntuneMAM.a library. Drag the libIntuneMAM.a library to the
Linked Frameworks and Libraries list of the project target.
Add -force_load {PATH_TO_LIB}/libIntuneMAM.a to either of the following, replacing {PATH_TO_LIB} with the
Intune App SDK location:
The project's OTHER_LDFLAGS build configuration setting.
The Xcode UI's Other Linker Flags .
NOTE
To find PATH_TO_LIB , select the file libIntuneMAM.a and choose Get Info from the File menu. Copy and
paste the Where information (the path) from the General section of the Info window.
Add the IntuneMAMResources.bundle resource bundle to the project by dragging the resource bundle
under Copy Bundle Resources within Build Phases .
NOTE
Your provisioning profile needs to support new keychain sharing values. The keychain access groups should support
a wildcard character. You can check this by opening the .mobileprovision file in a text editor, searching for keychain-
access-groups , and ensuring that you have a wildcard character. For example:
<key>keychain-access-groups</key>
<array>
<string>YOURBUNDLESEEDID.*</string>
</array>
4. After you enable keychain sharing, follow the steps to create a separate access group in which the Intune
App SDK will store its data. You can create a keychain access group by using the UI or by using the
entitlements file. If you are using the UI to create the keychain access group, make sure to follow these
steps:
a. If your mobile app does not have any keychain access groups defined, add the app's bundle ID as the first
group.
b. Add the shared keychain group com.microsoft.intune.mam to your existing access groups. The Intune App
SDK uses this access group to store data.
c. Add com.microsoft.adalcache to your existing access groups.
d. If you are editing the entitlements file directly, rather than using the Xcode UI shown above to create the
keychain access groups, prepend the keychain access groups with $(AppIdentifierPrefix) (Xcode handles
this automatically). For example:
$(AppIdentifierPrefix)com.microsoft.intune.mam
$(AppIdentifierPrefix)com.microsoft.adalcache
NOTE
An entitlements file is an XML file that is unique to your mobile application. It is used to specify special permissions
and capabilities in your iOS app. If your app did not previously have an entitlements file, enabling keychain sharing
(step 3) should have caused Xcode to generate one for your app. Ensure the app's bundle ID is the first entry in the
list.
5. Include each protocol that your app passes to UIApplication canOpenURL in the LSApplicationQueriesSchemes
array of your app's Info.plist file. Be sure to save your changes before proceeding to the next step.
6. If your app does not use FaceID already, ensure the NSFaceIDUsageDescription Info.plist key is configured
with a default message. This is required so iOS can let the user know how the app intends to use FaceID. An
Intune app protection policy setting allows for FaceID to be used as a method for app access when
configured by the IT admin.
7. Use the IntuneMAMConfigurator tool that is included in the SDK repo to finish configuring your app's
Info.plist. The tool has three parameters:
P RO P ERT Y H O W TO USE IT
If the '-o' parameter is not specified, the input file will be modified in-place. The tool is idempotent, and should be
rerun whenever changes to the app's Info.plist or entitlements have been made. You should also download and run
the latest version of the tool when updating the Intune SDK, in case Info.plist config requirements have changed in
the latest release.
Configure MSAL
The Intune App SDK uses the Microsoft Authentication Library for its authentication and conditional launch
scenarios. It also relies on MSAL to register the user identity with the MAM service for management without device
enrollment scenarios.
Typically, MSAL require apps to register with Azure Active Directory (AAD) and create a unique client ID and
redirect URI, to guarantee the security of the tokens granted to the app. If your app already uses MSAL to
authenticate users, the app must use its existing registration values and override the Intune App SDK default
values. This ensures that users are not prompted for authentication twice (once by the Intune App SDK and once by
the app).
If your app does not already use MSAL, and you do not need to access any AAD resource, you do not need to set
up a client app registration in AAD if you choose to integrate MSAL. If you decide to integrate MSAL, you will need
to configure an app registration and override the default Intune client ID and redirect URI.
It is recommended that your app links to the latest release of MSAL.
Link to MSAL binaries
Follow these instructions to link your app to the MSAL binaries.
1. If your app does not have any keychain access groups defined, add the app's bundle ID as the first group.
2. Enable MSAL single sign-on (SSO) by adding com.microsoft.adalcache to the keychain access groups.
3. In the case you are explicitly setting the MSAL shared cache keychain group, make sure it is set to
<appidprefix>.com.microsoft.adalcache . MSAL will set this for you unless you override it. If you want to
specify a custom keychain group to replace com.microsoft.adalcache , specify that in the Info.plist file under
IntuneMAMSettings, by using the key ADALCacheKeychainGroupOverride .
Configure MSAL settings for the Intune App SDK
If your app already uses MSAL for authentication and has its own Azure Active Directory settings, you can force the
Intune App SDK to use the same settings during authentication against AAD. This ensures that the app will not
double-prompt the user for authentication. See Configure settings for the Intune App SDK for information on
populating the following settings:
ADALClientId
ADALAuthority
ADALRedirectUri
ADALRedirectScheme
ADALCacheKeychainGroupOverride
If your app already uses MSAL, the following configurations are required:
1. In the project's Info.plist file, under the IntuneMAMSettings dictionary with the key name ADALClientId ,
specify the client ID to be used for MSAL calls.
2. Also under the IntuneMAMSettings dictionary with the key name ADALAuthority , specify the Azure AD
authority.
3. Also under the IntuneMAMSettings dictionary with the key name ADALRedirectUri , specify the redirect
URI to be used for MSAL calls. Alternatively, you could specify ADALRedirectScheme instead, if the
application's redirect URI is in the format scheme://bundle_id .
Additionally, apps can override these Azure AD settings at runtime. To do this, simply set the
aadAuthorityUriOverride , aadClientIdOverride , and aadRedirectUriOverride properties on the
IntuneMAMPolicyManager instance.
4. Ensure the steps to give your iOS app permissions to the app protection policy (APP) service are followed. Use
the instructions in the getting started with the Intune SDK guide under "Give your app access to the Intune app
protection service (optional)".
NOTE
The Info.plist approach is recommended for all settings which are static and do not need to be determined at runtime. Values
assigned to the IntuneMAMPolicyManager properties take precedence over any corresponding values specified in the
Info.plist, and will persist even after the app is restarted. The SDK will continue to use them for policy check-ins until the user
is unenrolled or the values are cleared or changed.
ADALClientId String The app's Azure AD client Required for all apps that
identifier. use MSAL.
AppGroupIdentifiers Array of strings Array of app groups from Required if the app uses
the app's entitlements application groups.
com.apple.security.applicatio
n-groups section.
Notes: If no managed
identity is found or no valid
token for the identity is
available in the MSAL cache,
the enrollment attempt will
silently fail without
prompting for credentials,
unless the app has also set
MAMPolicyRequired to YES.
SET T IN G TYPE DEF IN IT IO N REQ UIRED?
AccentColor String Specifies the accent color for Optional. Defaults to system
the Intune SDK's UI blue.
components, such as button
text color and PIN box
highlight color. Accepts a
hexadecimal RGB string in
the form of #XXXXXX, where
X can range from 0-9 or A-F.
The pound sign might be
omitted.
MAMTelemetryDisabled Boolean Specifies if the SDK will not Optional. Defaults to no.
send any telemetry data to
its back end.
WebViewHandledURLSchem Array of Strings Specifies the URL schemes Required if your app uses a
es that your app's WebView WebView that handles URLs
handles. via links and/or javascript.
IMPORTANT
The Intune App SDK for iOS uses 256-bit encryption keys when encryption is enabled by App Protection Policies. All apps
will need to have a current SDK version to allow protected data sharing.
Apps that already use ADAL or MSAL
NOTE
Azure Active Directory (Azure AD) Authentication Library (ADAL) and Azure AD Graph API will be deprecated. For more
information, see Update your applications to use Microsoft Authentication Library (MSAL) and Microsoft Graph API.
Apps which already use ADAL or MSAL should call the registerAndEnrollAccount method on the
IntuneMAMEnrollmentManager instance after the user has been successfully authenticated:
/*
* This method will add the account to the list of registered accounts.
* An enrollment request will immediately be started.
* @param identity The UPN of the account to be registered with the SDK
*/
(void)registerAndEnrollAccount:(NSString *)identity;
By calling the registerAndEnrollAccount method, the SDK will register the user account and attempt to enroll the
app on behalf of this account. If the enrollment fails for any reason, the SDK will automatically retry the enrollment
24 hours later. For debugging purposes, the app can receive notifications, via a delegate, about the results of any
enrollment requests.
After this API has been invoked, the app can continue to function as normal. If the enrollment succeeds, the SDK
will notify the user that an app restart is required. At that time, the user can immediately restart the app.
/**
* Creates an enrollment request which is started immediately.
* If no token can be retrieved for the identity, the user will be prompted
* to enter their credentials, after which enrollment will be retried.
* @param identity The UPN of the account to be logged in and enrolled.
*/
(void)loginAndEnrollAccount: (NSString *)identity;
By calling this method, the SDK will prompt the user for credentials if no existing token can be found. The SDK will
then try to enroll the app with the Intune MAM service on behalf of the supplied user account. The method can be
called with "nil" as the identity. In that case, the SDK will enroll with the existing managed user on the device (in the
case of MDM), or prompt the user for a user name if no existing user is found.
If the enrollment fails, the app should consider calling this API again at a future time, depending on the details of
the failure. The app can receive notifications, via a delegate, about the results of any enrollment requests.
After this API has been invoked, the app can continue functioning as normal. If the enrollment succeeds, the SDK
will notify the user that an app restart is required.
Example:
If you choose this option for your app, you do not have to handle restarting your app after enrolling.
Deregister user accounts
Before a user is signed out of an app, the app should deregister the user from the SDK. This will ensure:
1. Enrollment retries will no longer happen for the user's account.
2. App protection policy will be removed.
3. If the app initiates a selective wipe (optional), any corporate data is deleted.
Before the user is signed out, the app should call the following method on the on the IntuneMAMEnrollmentManager
instance:
/*
* This method will remove the provided account from the list of
* registered accounts. Once removed, if the account has enrolled
* the application, the account will be un-enrolled.
* @note In the case where an un-enroll is required, this method will block
* until the Intune APP AAD token is acquired, then return. This method must be called before
* the user is removed from the application (so that required AAD tokens are not purged
* before this method is called).
* @param identity The UPN of the account to be removed.
* @param doWipe If YES, a selective wipe if the account is un-enrolled
*/
(void)deRegisterAndUnenrollAccount:(NSString *)identity withWipe:(BOOL)doWipe;
This method must be called before the user account's Azure AD tokens are deleted. The SDK needs the user
account's AAD token(s) to make specific requests to the Intune MAM service on behalf of the user.
If the app will delete the user's corporate data on its own, the doWipe flag can be set to false. Otherwise, the app
can have the SDK initiate a selective wipe. This will result in a call to the app's selective wipe delegate.
Example:
/**
* Called when an enrollment request operation is completed.
* @param status status object containing debug information
*/
(void)enrollmentRequestWithStatus:(IntuneMAMEnrollmentStatus *)status;
/**
* Called when a MAM policy request operation is completed.
* @param status status object containing debug information
*/
(void)policyRequestWithStatus:(IntuneMAMEnrollmentStatus *)status;
/**
* Called when a un-enroll request operation is completed.
* @Note: when a user is un-enrolled, the user is also de-registered with the SDK
* @param status status object containing debug information
*/
(void)unenrollRequestWithStatus:(IntuneMAMEnrollmentStatus *)status;
These delegate methods return an IntuneMAMEnrollmentStatus object that has the following information:
The identity of the account associated with the request
A status code that indicates the result of the request
An error string with a description of the status code
An NSError object. This object is defined in IntuneMAMEnrollmentStatus.h , along with the specific status codes
that can be returned.
Sample code
These are example implementations of the delegate methods:
- (void)enrollmentRequestWithStatus:(IntuneMAMEnrollmentStatus*)status
{
NSLog(@"enrollment result for identity %@ with status code %ld", status.identity, (unsigned
long)status.statusCode);
NSLog(@"Debug Message: %@", status.errorString);
}
- (void)policyRequestWithStatus:(IntuneMAMEnrollmentStatus*)status
{
NSLog(@"policy check-in result for identity %@ with status code %ld", status.identity, (unsigned
long)status.statusCode);
NSLog(@"Debug Message: %@", status.errorString);
}
- (void)unenrollRequestWithStatus:(IntuneMAMEnrollmentStatus*)status
{
NSLog(@"un-enroll result for identity %@ with status code %ld", status.identity, (unsigned
long)status.statusCode);
NSLog(@"Debug Message: %@", status.errorString);
}
Application restart
When an app receives MAM policies for the first time, it must restart to apply the required hooks. To notify the app
that a restart needs to happen, the SDK provides a delegate method in IntuneMAMPolicyDelegate.h .
- (BOOL) restartApplication
The return value of this method tells the SDK if the application must handle the required restart:
If true is returned, the application must handle the restart.
If false is returned, the SDK will restart the application after this method returns. The SDK will immediately
show a dialog box that tells the user to restart the application.
C L A SS DESC RIP T IO N
<key>CFBundleURLSchemes</key>
<array>
<string>launch-com.contoso.myapp</string>
<string>launch-com.contoso.myapp-intunemam</string>
</array>
2. Both your application and action extension must share at least one App Group, and the App Group must be
listed under the AppGroupIdentifiers array under the app's and the extension's IntuneMAMSettings
dictionaries.
3. Both your application and action extension must have the Keychain Sharing capability and share the
com.microsoft.intune.mam keychain group.
4. Name the action extension "Open in" followed by the application name. Localize the Info.plist as needed.
5. Provide a template icon for the extension as described by Apple's developer documentation. Alternatively,
the IntuneMAMConfigurator tool can be used to generate these images from the application .app directory.
To do this, run:
IntuneMAMConfigurator -generateOpenInIcons /path/to/app.app -o /path/to/output/directory
6. Under IntuneMAMSettings in the extension's Info.plist, add a Boolean setting named OpenInActionExtension
with value YES.
7. Configure the NSExtensionActivationRule to support a single file and all types from the application's
CFBundleDocumentTypes prefixed with com.microsoft.intune.mam . For example, if the application supports
public.text and public.image, the activation rule would be:
SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO
"com.microsoft.intune.mam.public.text" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO
"com.microsoft.intune.mam.public.image").@count == 1
).@count == 1
SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.data"
).@count > 0
).@count > 0
SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.data" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.url" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.plain-text"
||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.image" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.data"
).@count > 0
).@count > 0
NOTE
The IntuneMAMConfigurator tool can be used to add the Intune types to the activation rule. If your existing activation rule
uses the predefined string constants (e.g. NSExtensionActivationSupportsFileWithMaxCount,
NSExtensionActivationSupportsText, etc.), the predicate syntax can get quite complex. The IntuneMAMConfigurator tool can
also be used to convert the activation rule from the string constants to a predicate string while adding the Intune types.
New UI:
Telemetry
By default, the Intune App SDK for iOS collects telemetry on the following types of events:
App launch : To help Microsoft Intune learn about MAM-enabled app usage by management type (MAM
with MDM, MAM without MDM enrollment, and so on).
Enrollment calls : To help Microsoft Intune learn about success rate and other performance metrics of
enrollment calls initiated from the client side.
Intune actions : To help diagnose issues and ensure Intune functionality, we collect information about
Intune SDK actions.
NOTE
If you choose not to send Intune App SDK telemetry data to Microsoft Intune from your mobile application, you must
disable Intune App SDK telemetry capture. Set the property MAMTelemetryDisabled to YES in the IntuneMAMSettings
dictionary.
Thread queues
Apps often dispatch asynchronous and synchronous tasks to thread queues. The SDK intercepts Grand Central
Dispatch (GCD) calls and associates the current thread identity with the dispatched tasks. When the tasks are
finished, the SDK temporarily changes the thread identity to the identity associated with the tasks, finishes the
tasks, then restores the original thread identity.
Because NSOperationQueue is built on top of GCD, NSOperations will run on the identity of the thread at the time
the tasks are added to NSOperationQueue . NSOperations or functions dispatched directly through GCD can also
change the current thread identity as they are running. This identity will override the identity inherited from the
dispatching thread.
File owner
The SDK tracks the identities of local file owners and applies policies accordingly. A file owner is established when a
file is created or when a file is opened in truncate mode. The owner is set to the effective file task identity of the
thread that's performing the task.
Alternatively, apps can set the file owner identity explicitly by using IntuneMAMFilePolicyManager . Apps can use
IntuneMAMFilePolicyManager to retrieve the file owner and set the UI identity before showing the file contents.
Shared data
If the app creates files that have data from both managed and unmanaged users, the app is responsible for
encrypting the managed user's data. You can encrypt data by using the protect and unprotect APIs in
IntuneMAMDataProtectionManager .
The protect method accepts an identity that can be a managed or unmanaged user. If the user is managed, the
data will be encrypted. If the user is unmanaged, a header will be added to the data that's encoding the identity, but
the data will not be encrypted. You can use the protectionInfo method to retrieve the data's owner.
Share extensions
If the app has a share extension, the owner of the item being shared can be retrieved through the
protectionInfoForItemProvider method in IntuneMAMDataProtectionManager . If the shared item is a file, the SDK will
handle setting the file owner. If the shared item is data, the app is responsible for setting the file owner if this data
is persisted to a file, and for calling the setUIPolicyIdentity API before showing this data in the UI.
Turn on multi-identity
By default, apps are considered single identity. The SDK sets the process identity to the enrolled user. To enable
multi-identity support, add a Boolean setting with the name MultiIdentity and a value of YES to the
IntuneMAMSettings dictionary in the app's Info.plist file.
NOTE
When multi-identity is enabled, the process identity, UI identity, and thread identities are set to nil. The app is responsible for
setting them appropriately.
Switch identities
App-initiated identity switch :
At launch, multi-identity apps are considered to be running under an unknown, unmanaged account. The
conditional launch UI will not run, and no policies will be enforced on the app. The app is responsible for
notifying the SDK whenever the identity should be changed. Typically, this will happen whenever the app is
about to show data for a specific user account.
An example is when the user attempts to open a document, a mailbox, or a tab in a notebook. The app
needs to notify the SDK before the file, mailbox, or tab is actually opened. This is done through the
setUIPolicyIdentity API in IntuneMAMPolicyManager . This API should be called whether or not the user is
managed. If the user is managed, the SDK will perform the conditional launch checks, like jailbreak
detection, PIN, and authentication.
The result of the identity switch is returned to the app asynchronously through a completion handler. The
app should postpone opening the document, mailbox, or tab until a success result code is returned. If the
identity switch failed, the app should cancel the task.
SDK-initiated identity switch :
Sometimes, the SDK needs to ask the app to switch to a specific identity. Multi-identity apps must
implement the identitySwitchRequired method in IntuneMAMPolicyDelegate to handle this request.
When this method is called, if the app can handle the request to switch to the specified identity, it should
pass IntuneMAMAddIdentityResultSuccess into the completion handler. If it can't handle switching the identity,
the app should pass IntuneMAMAddIdentityResultFailed into the completion handler.
The app does not have to call setUIPolicyIdentity in response to this call. If the SDK needs the app to
switch to an unmanaged user account, the empty string will be passed into the identitySwitchRequired call.
Selective wipe :
When the app is selectively wiped, the SDK will call the wipeDataForAccount method in
IntuneMAMPolicyDelegate . The app is responsible for removing the specified user's account and any data
associated with it. The SDK is capable of removing all files owned by the user and will do so if the app
returns FALSE from the wipeDataForAccount call.
Note that this method is called from a background thread. The app should not return a value until all data
for the user has been removed (with the exception of files if the app returns FALSE).
Siri Intents
If your app integrates with Siri Intents, please make sure to read the comments for areSiriIntentsAllowed in
IntuneMAMPolicy.h for instructions on supporting this scenario.
Notifications
If your app receives notifications, please make sure to read the comments for notificationPolicy in
IntuneMAMPolicy.h for instructions on supporting this scenario. It is recommended that apps register for
IntuneMAMPolicyDidChangeNotification described in IntuneMAMPolicyManager.h , and communicate this value to their
UNNotificationServiceExtension via the keychain.
If Xcode has trouble finding libIntuneMAM.a , you can fix the problem by adding the path to this library into
the linker search paths.
FAQs
Are all of the APIs addressable through native Swift or the Objective -C and Swift interoperability?
The Intune App SDK APIs are in Objective-C only and do not support native Swift. Swift interoperability with
Objective-C is required.
Do all users of my application need to be registered with the APP-WE service?
No. In fact, only work or school accounts should be registered with the Intune App SDK. Apps are responsible for
determining if an account is used in a work or school context.
What about users that have already signed in to the application? Do they need to be enrolled?
The application is responsible for enrolling users after they have been successfully authenticated. The application is
also responsible for enrolling any existing accounts that might have been present before the application had
MDM-less MAM functionality.
To do this, the application should make use of the registeredAccounts: method. This method returns an
NSDictionary that has all of the accounts registered into the Intune MAM service. If any existing accounts in the
application are not in the list, the application should register and enroll those accounts via
registerAndEnrollAccount: .
cp ~/Desktop/IntuneMAM.device_only ~/Desktop/IntuneMAM.framework/IntuneMAM
The first command strips the simulator architectures from the framework's DYLIB file. The second command
copies the device-only DYLIB file back into the framework directory.
Prepare Android apps for app protection policies
with the Intune App Wrapping Tool
9/4/2020 • 7 minutes to read • Edit Online
Use the Microsoft Intune App Wrapping Tool for Android to change the behavior of your in-house Android apps by
restricting features of the app without changing the code of the app itself.
The tool is a Windows command-line application that runs in PowerShell and creates a wrapper around your
Android app. After the app is wrapped, you can change the app's functionality by configuring mobile application
management policies in Intune.
Before running the tool, review Security considerations for running the App Wrapping Tool. To download the tool,
go to the Microsoft Intune App Wrapping Tool for Android on GitHub.
NOTE
In some cases, the 32-bit version of Java may result in memory issues. It's a good idea to install the 64-bit version.
Android requires all app packages (.apk) to be signed. For reusing existing certificates and overall signing
certificate guidance, see Reusing signing certificates and wrapping apps. The Java executable keytool.exe is
used to generate new credentials needed to sign the wrapped output app. Any passwords that are set must
be secure, but make a note of them because they're needed to run the App Wrapping Tool.
NOTE
The Intune App Wrapping Tool does not support Google's v2 and upcoming v3 signature schemes for app signing.
After you have wrapped the .apk file using the Intune App Wrapping Tool, the recommendation is to use Google's
provided Apksigner tool. This will ensure that once your app gets to end user devices, it can be launched properly by
Android standards.
(Optional) Sometimes an app may hit the Dalvik Executable (DEX) size limit due to the Intune MAM SDK
classes that are added during wrapping. DEX files are a part of the compilation of an Android app. The
Intune App Wrapping Tool automatically handles DEX file overflow during wrapping for apps with a min API
level of 21 or higher (as of v. 1.0.2501.1). For apps with a min API level of < 21, best practice would be to
increase the min API level using the wrapper's -UseMinAPILevelForNativeMultiDex flag. For customers unable
to increase the app's minimum API level, the following DEX overflow workarounds are available. In certain
organizations, this may require working with whoever compiles the app (ie. the app build team):
Use ProGuard to eliminate unused class references from the app's primary DEX file.
For customers using v3.1.0 or higher of the Android Gradle plugin, disable the D8 dexer.
Import-Module .\IntuneAppWrappingTool.psm1
3. Run the tool by using the invoke-AppWrappingTool command, which has the following usage syntax:
P RO P ERT Y IN F O RM AT IO N EXA M P L E
-KeyStorePath <String> Path to the keystore file that has the By default, keystore files are stored in
public/private key pair for signing. "C:\Program Files
(x86)\Java\jreX.X.X_XX\bin."
Help Invoke-AppWrappingTool
Example:
Import the PowerShell module.
You will then be prompted for KeyStorePassword and KeyPassword . Enter the credentials you used to create
the key store file.
The wrapped app and a log file are generated and saved in the output path you specified.
How often should I rewrap my Android application with the Intune App
Wrapping Tool?
The main scenarios in which you would need to rewrap your applications are as follows:
The application itself has released a new version. The previous version of the app was wrapped and uploaded
to the Intune console.
The Intune App Wrapping Tool for Android has released a new version that enables key bug fixes, or new,
specific Intune application protection policy features. This happens every 6-8 weeks through GitHub repo for
the Microsoft Intune App Wrapping Tool for Android.
Some best practices for rewrapping include:
Maintaining signing certificates used during the build process, see Reusing signing certificates and wrapping
apps
See also
Decide how to prepare apps for mobile application management with Microsoft Intune
Microsoft Intune App SDK for Android developer guide
Microsoft Intune App SDK for Android developer
guide
9/4/2020 • 91 minutes to read • Edit Online
NOTE
You might want to first read the Intune App SDK overview, which covers the current features of the SDK and describes how
to prepare for integration on each supported platform.
To download the SDK, see Download the SDK files.
The Microsoft Intune App SDK for Android lets you incorporate Intune app protection policies (also known as APP
or MAM policies) into your native Android app. An Intune-managed application is one that is integrated with the
Intune App SDK. Intune administrators can easily deploy app protection policies to your Intune-managed app
when Intune actively manages the app.
Requirements
Android versions
The SDK fully supports Android API 21 (Android 5.0) through Android API 29 (Android 10.0). It may be built into
an app with an Android minSDKVersion as low as 14, but on those older OS versions it will be impossible to install
the Intune Company Portal app or use MAM policies.
Company Portal app
The Intune App SDK for Android relies on the presence of the Company Portal app on the device to enable app
protection policies. The Company Portal retrieves app protection policies from the Intune service. When the app
initializes, it loads policy and code to enforce that policy from the Company Portal.
NOTE
When the Company Portal app is not on the device, an Intune-managed app behaves the same as a normal app that does
not support Intune app protection policies.
For app protection without device enrollment, the user is not required to enroll the device by using the Company
Portal app.
SDK integration
Sample app
An example of how to integrate with the Intune App SDK properly is available on GitHub. This example uses the
Gradle build plugin.
Referencing Intune App libraries
The Intune App SDK is a standard Android library with no external dependencies.
Microsoft.Intune.MAM.SDK.aar contains both the interfaces necessary for an app protection policy enablement
and the code necessary to interoperate with the Microsoft Intune Company Portal app.
Microsoft.Intune.MAM.SDK.aar must be specified as an Android library reference. To do this, open your app
project in Android Studio and go to File > New > New module and select Impor t .JAR/.AAR Package . Then
select our Android archive package Microsoft.Intune.MAM.SDK.aar to create a module for the .AAR file type. Right-
click the module or modules containing your app code and go to Module Settings > Dependencies tab > +
icon > Module dependency > Select the MAM SDK AAR module you just created > OK . This will ensure that
your module compiles with the MAM SDK when you build your project.
Additionally, the Microsoft.Intune.MAM.SDK.Suppor t.XXX.jar libraries contain Intune variants of the
corresponding android.support.XXX libraries. They are not built into Microsoft.Intune.MAM.SDK.aar in case an app
does not need to depend on the support libraries.
ProGuard
If ProGuard (or any other shrinking/obfuscation mechanism) is used as a build step, the SDK has additional
configuration rules which must be included. When including the .AAR in your build, our rules are automatically
integrated into the proguard step and the necessary class files are kept.
The Azure Active Directory Authentication Libraries (ADAL) may have its own ProGuard restrictions. If your app
integrates ADAL, you must follow the ADAL documentation on these restrictions.
Policy enforcement
The Intune App SDK is an Android library which allows your app to support and participate in the enforcement of
Intune policies.
Most policies are enforced semi-automatically, but certain policies require explicit participation from your app to
enforce. Regardless of whether you perform source integration or utilize build tooling for integration the policies
requiring explicit participation will need to be coded for.
For policies that are automatically enforced, apps are required to replace inheritance from several Android base
classes with inheritance from MAM equivalents and similarly replace calls to certain Android system service
classes with calls to MAM equivalents. The specific replacements needed are detailed below and can be manually
performed with source integration or performed automatically through build tooling.
Build tooling
The SDK provides build tools (a plugin for Gradle builds and a command-line tool for non-Gradle builds) that
perform MAM equivalent replacements automatically. These tools transform the class files generated by Java
compilation, and do not modify the original source code.
The tools perform direct replacements only. They do not perform any more complex SDK integrations such as
Save-As Policy, Multi-Identity, App-WE registration, AndroidManifest modifications or ADAL configuration so these
must be completed before your app is fully Intune enabled. Please carefully review the rest of this documentation
for integration points relevant to your app.
NOTE
It is fine to run the tools against a project which has already performed partial or complete source integration of the MAM
SDK through manual replacements. Your project must still list the MAM SDK as a dependency.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "org.javassist:javassist:3.22.0-GA"
classpath files("$PATH_TO_MAM_SDK/GradlePlugin/com.microsoft.intune.mam.build.jar")
}
}
Then, in the build.gradle file for your APK project, simply apply the plugin as
By default, the plugin will operate only on project dependencies. Test compilation not affected. Configuration
may be provided to list
Projects to exclude
External dependencies to include
Specific classes to exclude from processing
Variants to exclude from processing. These can refer to either a complete variant name or a single flavor. For
example
if your app has build types debug and release with flavors { savory , sweet } and { vanilla , chocolate
} you could specify
savory to exclude all variants with the savory flavor or savoryVanillaRelease to exclude only that exact
variant.
Example partial build.gradle
apply plugin: 'com.microsoft.intune.mam'
dependencies {
implementation project(':product:FooLib')
implementation project(':product:foo-project')
implementation fileTree(dir: "libs", include: ["bar.jar"])
implementation fileTree(dir: "libs", include: ["zap.jar"])
implementation "com.contoso.foo:zap-artifact:1.0.0"
implementation "com.microsoft.bar:baz:1.0.0"
implementation "com.microsoft.qux:foo:2.0"
You include a PDF viewer library in your app and you use the Yes
viewer Activity in your application when users try to view
PDFs
You include a library like React Native that contains classes Yes
derived from Activity , Application and Fragment and
you use or further derive those classes in your app
You include a library that contains view classes derived from Yes
TextView and you use or further derive those classes in
your app
Reporting
The build plugin can generate an html report of the changes it makes. To request generation of this report, specify
report = true in the intunemam configuration block. If generated, the report will be written to outputs/logs in
the build directory.
intunemam {
report = true
}
Verification
The build plugin can run additional verification to look for possible errors in processing classes. To request this,
specify verify = true in the intunemam configuration block. Note that this may add several seconds to the time
taken by the plugin's task.
intunemam {
verify = true
}
Incremental builds
To enable support for building incrementally, specify incremental = true in the intunemam configuration block.
This is an experimental feature aimed at increasing build performance by processing only the input files that have
changed. The default configuration is false .
intunemam {
incremental = true
}
Dependencies
The gradle plugin has a dependency on Javassist, which must be available to Gradle's dependency resolution (as
described above). Javassist is used solely at build time when running the plugin. No Javassist code will be added to
your app.
NOTE
You must be using version 3.0 or newer of the Android Gradle plugin and Gradle 4.1 or newer.
PA RA M ET ER DESC RIP T IO N
--classpath The build classpath. This may contain both jars and class
directories.
NOTE
On Unix-like systems semi-colon is a command separator. To avoid the shell from splitting commands, make sure to escape
each semi-colon with '' or wrap the full parameter in quotation marks.
Android base classes must be replaced with their respective MAM equivalents in order to enable Intune
management. The SDK classes live between the Android base class and the app's own derived version of that class.
For example, an app activity might end up with an inheritance hierarchy that looks like: Activity > MAMActivity
> AppSpecificActivity . The MAM layer filters calls to system operations in order to seamlessly provide your app
with a managed view of the world.
In addition to base classes, some classes your app might use without deriving (e.g. MediaPlayer ) also have
required MAM equivalents, and some method calls must also be replaced. The precise details are given below.
NOTE
If your app is integrating with SDK build tooling, the following class and method replacements are performed automatically.
android.app.Activity MAMActivity
android.app.ActivityGroup MAMActivityGroup
android.app.AliasActivity MAMAliasActivity
android.app.Application MAMApplication
android.app.Dialog MAMDialog
android.app.AlertDialog.Builder MAMAlertDialogBuilder
android.app.DialogFragment MAMDialogFragment
android.app.ExpandableListActivity MAMExpandableListActivity
android.app.Fragment MAMFragment
android.app.IntentService MAMIntentService
android.app.LauncherActivity MAMLauncherActivity
android.app.ListActivity MAMListActivity
A N DRO ID B A SE C L A SS IN T UN E A P P SDK REP L A C EM EN T
android.app.ListFragment MAMListFragment
android.app.NativeActivity MAMNativeActivity
android.app.Service MAMService
android.app.TabActivity MAMTabActivity
android.app.TaskStackBuilder MAMTaskStackBuilder
android.app.backup.BackupAgent MAMBackupAgent
android.app.backup.BackupAgentHelper MAMBackupAgentHelper
android.app.backup.FileBackupHelper MAMFileBackupHelper
android.app.backup.SharePreferencesBackupHelper MAMSharedPreferencesBackupHelper
android.content.BroadcastReceiver MAMBroadcastReceiver
android.content.ContentProvider MAMContentProvider
android.media.MediaPlayer MAMMediaPlayer
android.media.MediaMetadataRetriever MAMMediaMetadataRetriever
android.provider.DocumentsProvider MAMDocumentsProvider
android.preference.PreferenceActivity MAMPreferenceActivity
android.support.multidex.MultiDexApplication MAMMultiDexApplication
android.widget.TextView MAMTextView
android.widget.AutoCompleteTextView MAMAutoCompleteTextView
android.widget.CheckedTextView MAMCheckedTextView
android.widget.EditText MAMEditText
android.inputmethodservice.ExtractEditText MAMExtractEditText
android.widget.MultiAutoCompleteTextView MAMMultiAutoCompleteTextView
NOTE
Even if your application does not have a need for its own derived Application class, see MAMApplication below
Microsoft.Intune.MAM.SDK.Support.v4.jar:
A N DRO ID C L A SS IN T UN E A P P SDK REP L A C EM EN T
android.support.v4.app.DialogFragment MAMDialogFragment
android.support.v4.app.FragmentActivity MAMFragmentActivity
android.support.v4.app.Fragment MAMFragment
android.support.v4.app.JobIntentService MAMJobIntentService
android.support.v4.app.TaskStackBuilder MAMTaskStackBuilder
android.support.v4.content.FileProvider MAMFileProvider
android.support.v4.content.WakefulBroadcastReceiver MAMWakefulBroadcastReceiver
Microsoft.Intune.MAM.SDK.Support.v7.jar:
A N DRO ID C L A SS IN T UN E A P P SDK REP L A C EM EN T
android.support.v7.app.AlertDialog.Builder MAMAlertDialogBuilder
android.support.v7.app.AppCompatActivity MAMAppCompatActivity
android.support.v7.widget.AppCompatAutoCompleteTextView MAMAppCompatAutoCompleteTextView
android.support.v7.widget.AppCompatCheckedTextView MAMAppCompatCheckedTextView
android.support.v7.widget.AppCompatEditText MAMAppCompatEditText
android.support.v7.widget.AppCompatMultiAutoCompleteTex MAMAppCompatMultiAutoCompleteTextView
tView
android.support.v7.widget.AppCompatTextView MAMAppCompatTextView
Microsoft.Intune.MAM.SDK.Support.v17.jar:
A N DRO ID C L A SS IN T UN E A P P SDK REP L A C EM EN T
android.support.v17.leanback.widget.SearchEditText MAMSearchEditText
Microsoft.Intune.MAM.SDK.Support.Text.jar:
A N DRO ID C L A SS IN T UN E A P P SDK REP L A C EM EN T
android.support.text.emoji.widget.EmojiAppCompatEditText MAMEmojiAppCompatEditText
A N DRO ID C L A SS IN T UN E A P P SDK REP L A C EM EN T
android.support.text.emoji.widget.EmojiAppCompatTextView MAMEmojiAppCompatTextView
android.support.text.emoji.widget.EmojiEditText MAMEmojiEditText
android.support.text.emoji.widget.EmojiTextView MAMEmojiTextView
Renamed Methods
In many cases, a method available in the Android class has been marked as final in the MAM replacement class. In
this case, the MAM replacement class provides a similarly named method (generally suffixed with MAM ) that you
should override instead. For example, when deriving from MAMActivity , instead of overriding onCreate() and
calling super.onCreate() , Activity must override onMAMCreate() and call super.onMAMCreate() . The Java
compiler should enforce the final restrictions to prevent accidental override of the original method instead of the
MAM equivalent.
MAMApplication
If your app creates a subclass of android.app.Application , then you must create a subclass of
com.microsoft.intune.mam.client.app.MAMApplication instead. If your app does not subclass
android.app.Application , then you must set "com.microsoft.intune.mam.client.app.MAMApplication" as the
"android:name" attribute in your AndroidManifest.xml's <application> tag.
PendingIntent
Instead of PendingIntent.get* , you must use the MAMPendingIntent.get* method. After this, you can use the
resultant PendingIntent as usual.
Wrapped System Services
For some system service classes, it is necessary to call a static method on a MAM wrapper class instead of directly
invoking the desired method on the service instance. For example, a call to
getSystemService(ClipboardManager.class).getPrimaryClip() must become a call to
MAMClipboardManager.getPrimaryClip(getSystemService(ClipboardManager.class) . It is not recommended to make
these replacements manually. Instead, let the BuildPlugin do it.
android.content.ClipboardManager MAMClipboard
android.content.ContentProviderClient MAMContentProviderClientManagement
android.content.ContentResolver MAMContentResolverManagement
android.content.pm.PackageManager MAMPackageManagement
android.app.DownloadManager MAMDownloadManagement
android.print.PrintManager MAMPrintManagement
android.support.v4.print.PrintHelper MAMPrintHelperManagement
android.view.View MAMViewManagement
android.view.DragEvent MAMDragEventManagement
A N DRO ID C L A SS IN T UN E A P P SDK REP L A C EM EN T
android.app.NotificationManager MAMNotificationManagement
android.support.v4.app.NotificationManagerCompat MAMNotificationCompatManagement
Some classes have most of their methods wrapped, e.g. ClipboardManager , ContentProviderClient ,
ContentResolver , and PackageManager while other classes have only one or two methods wrapped, e.g.
DownloadManager , PrintManager , PrintHelper , View , DragEvent , NotificationManager and
NotificationManagerCompat . Please consult APIs exposed by the MAM equivalent classes for the exact method if
you do not use the BuildPlugin.
Manifest Replacements
It may be necessary to perform some of the above class replacements in the manifest as well as in Java code. Of
special note:
Manifest references to android.support.v4.content.FileProvidermust be replaced with
com.microsoft.intune.mam.client.support.v4.content.MAMFileProvider .
AndroidX Libraries
With Android P, Google announced a new (renamed) set of support libraries called AndroidX, and version 28 is the
last major release of the existing android.support libraries.
Unlike with the android support libs, we do not provide MAM variants of the AndroidX libraries. Instead, AndroidX
should be treated as any other external library and should be configured to be rewritten by the build plugin/tool.
For Gradle builds, this can be done by including androidx.* in the includeExternalLibraries field of the plugin
config. Invocations of the command-lines tool must list all jar files explicitly.
Pre -AndroidX Architecture Components
Many Android architecture components including Room, ViewModel, and WorkManager were repackaged for
AndroidX. If your app uses the pre-AndroidX variants of these libraries, ensure rewrites apply by including
android.arch.* in the includeExternalLibraries field of the plugin config. Alternatively, update the libraries to
their AndroidX equivalents.
Troubleshooting AndroidX Migration
While migrating your SDK-integrated app to AndroidX, you may encounter an error like the following:
These errors can occur because your app references MAM support classes. MAM support classes wrap Android
support classes that have moved in AndroidX. To combat such errors, replace all MAM support class references
with their AndroidX equivalents. This can be achieved by first removing the MAM support library dependencies
from your Gradle build files. The lines in question will look something like the following:
implementation "com.microsoft.intune.mam:android-sdk-support-v4:$intune_mam_version"
implementation "com.microsoft.intune.mam:android-sdk-support-v7:$intune_mam_version"
Then, fix the resulting compile-time errors by replacing all references to MAM classes in the
com.microsoft.intune.mam.client.support.v7 and com.microsoft.intune.mam.client.support.v4 packages with their
AndroidX equivalents. For example, references to MAMAppCompatActivity should be changed to AndroidX's
AppCompatActivity . As discussed above, the MAM build plugin/tool will automatically rewrite classes in the
AndroidX libraries with the appropriate MAM equivalents at compile time.
SDK permissions
The Intune App SDK requires three Android system permissions on apps that integrate it:
android.permission.GET_ACCOUNTS (requested at runtime if necessary)
android.permission.MANAGE_ACCOUNTS
android.permission.USE_CREDENTIALS
The Azure Active Directory Authentication Library (ADAL) requires these permissions to perform brokered
authentication. If these permissions are not granted to the app or are revoked by the user, authentication flows that
require the broker (the Company Portal app) will be disabled.
Logging
Logging should be initialized early to get the most value out of logged data. Application.onMAMCreate() is typically
the best place to initialize logging.
To receive MAM logs in your app, create a Java Handler and add it to the MAMLogHandlerWrapper . This will invoke
publish() on the application handler for every log message.
/**
* Global log handler that enables fine grained PII filtering within MAM logs.
*
* To start using this you should build your own log handler and add it via
* MAMComponents.get(MAMLogHandlerWrapper.class).addHandler(myHandler, false);
*
* You may also remove the handler entirely via
* MAMComponents.get(MAMLogHandlerWrapper.class).removeHandler(myHandler);
*/
public interface MAMLogHandlerWrapper {
/**
* Add a handler, PII can be toggled.
*
* @param handler handler to add.
* @param wantsPII if PII is desired in the logs.
*/
void addHandler(final Handler handler, final boolean wantsPII);
/**
* Remove a handler.
*
* @param handler handler to remove.
*/
void removeHandler(final Handler handler);
}
Diagnostics Information
Apps can invoke MAMPolicyManager.showDiagnostics(context) method that starts an activity displaying UI for
collecting Company Portal logs and viewing MAM diagnostics. This is an optional feature that may assist in
debugging.
When Company Portal is not installed on device, a dialog will be prompted to inform the user that this information
is currently not available. When apps are managed by MAM policy, detailed MAM policy settings will be displayed.
MAMStrictMode.enable();
MAMStrictMode.global().setHandler(handler);
Suppressing Checks
If a check fails in a situation where your app is doing nothing incorrect, please report it as mentioned above. At
some times, however, it may be necessary to disable the check encountering a false positive, at least while waiting
for an updated SDK. The check which failed will be shown in the error raised by the default handler, or will be
passed to a custom handler if set.
Suppression can be done globally, but temporarily disabling per-thread at the specific call site is preferred. The
following examples show various ways to disable MAMStrictCheck.IDENTITY_NO_SUCH_FILE (raised if an attempt is
made to protect a file which doesn't exist).
Per-Thread Temporary Suppression
This is the preferred suppression mechanism.
try (StrictScopedDisable disable = MAMStrictMode.thread().disableScoped(MAMStrictCheck.IDENTITY_NO_SUCH_FILE))
{
// Perform the operation which raised a violation here
}
// The check is no longer disabled once the block exits
MAMStrictMode.thread().disable(MAMStrictCheck.IDENTITY_NO_SUCH_FILE);
MAMStrictMode.global().disable(MAMStrictCheck.IDENTITY_NO_SUCH_FILE);
/**
* External facing application policies.
*/
public interface AppPolicy {
/**
* Restrict where an app can save personal data.
* This function is now deprecated. Use getIsSaveToLocationAllowed(SaveLocation, String) instead
* @return True if the app is allowed to save to personal data stores; false otherwise.
*/
@Deprecated
boolean getIsSaveToPersonalAllowed();
/**
* Check if policy prohibits saving to a content provider location.
*
* @param location
* a content URI to check
* @return True if location is not a content URI or if policy does not prohibit saving to the content
location.
*/
boolean getIsSaveToLocationAllowed(Uri location);
/**
* Determines if the SaveLocation passed in can be saved to by the username associated with the cloud service.
*
* @param service
* The SaveLocation the data will be saved to.
* @param username
* The AAD UPN associated with the cloud service being saved to. Use null if a mapping between
* the AAD username and the cloud service username does not exist or the username is not known.
* @return true if the location can be saved to by the identity, false if otherwise.
*/
boolean getIsSaveToLocationAllowed(SaveLocation service, String username);
/**
* Determines if data from the OpenLocation can be opened for the username associated with the data.
*
* @param location
* The OpenLocation that the data will be opened from.
* @param username
* The AAD UPN associated with the location the data is being opened from. Use null if a mapping between
* The AAD UPN associated with the location the data is being opened from. Use null if a mapping between
the
* AAD username and the cloud service username does not exist or the username is not known.
* @return true if the data can be opened from the location for the identity, false if otherwise.
*/
boolean getIsOpenFromLocationAllowed(@NonNull OpenLocation location, @Nullable String username);
/**
* Checks whether any activities which could handle the given intent are allowed by policy. Returns false only
if all
* activities which could otherwise handle the intent are blocked. If there are no activities which could
handle the intent
* regardless of policy, returns true. If some activities are allowed and others blocked, returns true. Note
that it is not
* necessary to use this method for policy enforcement. If your app attempts to launch an intent for which
there are no
* allowed activities, MAM will display a dialog explaining the situation to the user.
*
* @param intent
* intent to check
*
* @return whether any activities which could handle this intent are allowed.
*/
boolean areIntentActivitiesAllowed(Intent intent);
/**
* Whether the SDK PIN prompt is enabled for the app.
*
* @return True if the PIN is enabled. False otherwise.
*/
boolean getIsPinRequired();
/**
* Whether the Intune Managed Browser is required to open web links.
* @return True if the Managed Browser is required, false otherwise
*/
boolean getIsManagedBrowserRequired();
/**
* Check if policy allows taking screenshots.
*
* @return True if screenshots will be blocked, false otherwise
*/
boolean getIsScreenCaptureAllowed();
/**
* Check if policy allows Contact sync to local contact list.
*
* @return True if Contact sync is allowed to save to local contact list; false otherwise.
*/
boolean getIsContactSyncAllowed();
/**
* Get the notification restriction. If {@link NotificationRestriction#BLOCKED BLOCKED}, the app must not show
any notifications
* for the user associated with this policy. If {@link NotificationRestriction#BLOCK_ORG_DATA BLOCK_ORG_DATA},
the app must show
* a modified notification that does not contain organization data. If {@link
NotificationRestriction#UNRESTRICTED
* UNRESTRICTED}, all notifications are allowed.
*
* @return The notification restriction.
*/
NotificationRestriction getNotificationRestriction();
/**
* This method is intended for diagnostic/telemetry purposes only. It can be used to discover whether file
encryption is in use.
* File encryption is transparent to the app and the app should not need to make any business logic decisions
based on this.
based on this.
* @return True if file encryption is in use.
*/
boolean diagnosticIsFileEncryptionInUse();
/**
* Return the policy in string format to the app.
*
* @return The string representing the policy.
*/
String toString();
NOTE
MAMPolicyManager.getPolicy will always return a non-null App Policy, even if the device or app is not under an Intune
management policy.
MAMPolicyManager.getPolicy(currentActivity).getIsPinRequired();
MAMComponents.get(MAMUserInfo.class).getPrimaryUser();
/**
* External facing user information.
*
*/
public interface MAMUserInfo {
/**
* Get the primary user name.
*
* @return the primary user name or null if neither the device nor app is enrolled.
*/
String getPrimaryUser();
}
Example: Data transfer between apps and device or cloud storage locations
Many apps implement features that allow the end user to save data to or open data from local file storage or cloud
storage services. The Intune App SDK allows IT administrators to protect against data ingress and leakage by
applying policy restrictions as they see fit in their organization.
App par ticipation is needed to enable the feature. If your app allows saving to personal or cloud locations
directly from the app or allows for data to be opened directly into the app, you must implement the respective
feature to ensure that the IT administrator can control whether saving to / opening from a location is allowed.
Saving to device or cloud storage
The API below lets the app know whether saving to a personal store is allowed by the current Intune
administrator's policy.
To determine if the policy is enforced, make the following call:
MAMPolicyManager.getPolicy(currentActivity).getIsSaveToLocationAllowed(
SaveLocation service, String username);
MAMPolicyManager.getPolicy(currentActivity).getIsSaveToLocationAllowed(SaveLocation.LOCAL, null);
MAMPolicyManager.getPolicy(currentActivity).getIsOpenFromLocationAllowed(
OpenLocation location, String username);
The OpenLocation.CAMERAlocation should be passed in when the app is opening data from the camera. The
OpenLocation.LOCAL location should be passed in when the app is opening data from the external storage on the
local device. The OpenLocation.ACCOUNT_DOCUMENT location should be passed in when the app is opening data that
belongs to an AAD account signed into the app.
For determining whether ACCOUNT_DOCUMENT or OTHER should be passed to getIsOpenFromLocationAllowed see
Unknown or unlisted locations for more information.
For the username parameter, see Username for data transfer for more information.
Unknown or unlisted locations
When the desired location is not listed in the SaveLocation or OpenLocation enums or it is unknown there are two
options for the service / location parameter, ACCOUNT_DOCUMENT and OTHER . ACCOUNT_DOCUMENT should be used
when the data belongs to an AAD account signed into the app, but is not ONEDRIVE_FOR_BUSINESS or SHAREPOINT
whereas OTHER should be used when that is not the case.
It is important to make the distinction clear between the managed account and an account that shares the
managed account's UPN. For example, a managed account with UPN "user@contoso.com" signed into OneDrive is
not the same as an account with UPN "user@contoso.com" signed into Dropbox. If an unknown or unlisted service
is accessed by signing into the managed account (e.g. "user@contoso.com" signed into OneDrive), it should be
represented by the ACCOUNT_DOCUMENT location. If the unknown or unlisted service signs in through another
account (e.g. "user@contoso.com" signed into Dropbox), it is not accessing the location with a managed account
and should be represented by the OTHER location.
Username for data transfer
When checking the save policy, the username should be the UPN/username/email associated with the cloud
service being saved to (not necessarily the same as the user owning the document being saved).
SaveLocation.LOCAL is not a cloud service and so should always be used with a null username parameter.
When checking the open policy, the username should be the UPN/username/email associated with the cloud
service being opened from. OpenLocation.LOCAL and OpenLocation.CAMERA are not cloud service locations and so
should always be used with a null username parameter.
The following locations will always expect a username that contains a mapping between the AAD UPN and the
cloud service username: ONEDRIVE_FOR_BUSINESS , SHAREPOINT , and ACCOUNT_DOCUMENT .
If a mapping between the AAD UPN and the cloud service username does not exist or the username is not known
use null .
Sharing blocked dialog
The SDK provides a dialog to notify the user that a data transfer action was blocked by MAM policy.
The dialog should be displayed to the user when the isSaveToAllowedForLocation or isOpenFromAllowedForLocation
API call results in the save/open action being blocked. The dialog displays a generic message and will return to the
Activity that called it when dismissed.
MAMUIHelper.showSharingBlockedDialog(currentActivity)
NotificationRestriction notificationRestriction =
MAMPolicyManager.getPolicyForIdentity(notificationIdentity).getNotificationRestriction();
If the restriction is BLOCKED , the app must not show any notifications for the user associated with this policy. If
BLOCK_ORG_DATA , the app must show a modified notification that does not contain organization data. If
UNRESTRICTED , all notifications are allowed.
If getNotificationRestriction is not invoked, the MAM SDK will make a best effort to restrict notifications
automatically for single-identity apps. If automatic blocking is enabled and BLOCK_ORG_DATA is set, the notification
will not be shown at all. For more fine-grained control, check the value of getNotificationRestriction and modify
app notifications appropriately.
@Override
public void onCreate() {
super.onCreate();
MAMComponents.get(MAMNotificationReceiverRegistry.class)
.registerReceiver(
new ToastNotificationReceiver(),
MAMNotificationType.WIPE_USER_DATA);
}
MAMNotificationReceiver
The MAMNotificationReceiver interface simply receives notifications from the Intune service. Some notifications
are handled by the SDK directly, while others require the app's participation. An app must return either true or
false from a notification. It must always return true unless some action it tried to take as a result of the notification
failed.
This failure may be reported to the Intune service. An example of a scenario to report is if the app fails to wipe
user data after the IT administrator initiates a wipe.
NOTE
It is safe to block in MAMNotificationReceiver.onReceive because its callback is not running on the UI thread.
/**
* A notification was received.
*
* @param notification
* The notification that was received.
* @return The receiver should return true if it handled the
* notification without error (or if it decided to ignore the
* notification). If the receiver tried to take some action in
* response to the notification but failed to complete that
* action it should return false.
*/
boolean onReceive(MAMNotification notification);
}
Types of notifications
The following notifications are sent to the app and some of them may require app participation:
WIPE_USER_DATA : This notification is sent in a MAMUserNotification class. When this notification is
received, the app must delete all data associated with the managed identity (from
MAMUserNotification.getUserIdentity() ). The notification may occur for diverse reasons, including when
your app calls unregisterAccountForMAM , when an IT admin initiates a wipe, or when admin-required
conditional access policies are not satisfied. If your app does not register for this notification, default wipe
behavior will be performed. The default behavior will delete all files for a single-identity app or all files
tagged with the managed identity for a multi-identity app. This notification will never be sent on the UI
thread.
WIPE_USER_AUXILIARY_DATA : Apps can register for this notification if they'd like the Intune App SDK to
perform the default selective wipe behavior, but would still like to remove some auxiliary data when the
wipe occurs. This notification is not available to single identity-apps -- it will only be sent to multi-identity
apps. This notification will never be sent on the UI thread.
REFRESH_POLICY : This notification is sent in a MAMUserNotification . When this notification is received,
any Intune policy decisions cached by your app must be invalidated and updated. If your app does not store
any policy assumptions, it need not register for this notification. No guarantees are made as to what thread
this notification will be sent on.
REFRESH_APP_CONFIG : This notification is sent in a MAMUserNotification . When this notification is
received, any cached Application Configuration data must be invalidated and updated. No guarantees are
made as to what thread this notification will be sent on.
MANAGEMENT_REMOVED : This notification is sent in a MAMUserNotification and informs the app that it
is about to become unmanaged. Once unmanaged, it will no longer be able to read encrypted files, read
data encrypted with MAMDataProtectionManager, interact with the encrypted clipboard, or otherwise
participate in the managed-app ecosystem. See further details below. This notification will never be sent on
the UI thread.
MAM_ENROLLMENT_RESULT : This notification is sent in a MAMEnrollmentNotification to inform the app
that an APP-WE enrollment attempt has completed and to provide the status of that attempt. No guarantees
are made as to what thread this notification will be sent on.
COMPLIANCE_STATUS : This notification is sent in a MAMComplianceNotification to inform the app of the
result of a compliance remediation attempt. No guarantees are made as to what thread this notification will
be sent on.
NOTE
An app should never register for both the WIPE_USER_DATA and WIPE_USER_AUXILIARY_DATA notifications.
MANAGEMENT_REMOVED
The MANAGEMENT_REMOVED notification indicates that a previously policy-managed user will no longer be managed
by Intune MAM policy. This does not require wiping user data or signing out the user (if a wipe were required, a
WIPE_USER_DATA notification would be sent). Many apps may not need to handle this notification at all, however
apps which use MAMDataProtectionManager should take special note of this notification.
When MAM calls the app's MANAGEMENT_REMOVED receiver, the following will be true:
MAM has already decrypted previously encrypted files (but not protected data buffers) belonging to the app.
Files in public locations on the sdcard that don't directly belong to the app (e.g. the Documents or Download
folders) are not decrypted.
New files or protected data buffers created by the receiver method (or any other code running after the
receiver starts) will not be encrypted.
The app still has access to encryption keys, so operations such as decryption data buffers will succeed.
Once your app's receiver returns, it will no longer have access to encryption keys.
<meta-data
android:name="com.microsoft.intune.mam.aad.Authority"
android:value="https://AAD authority/" />
<meta-data
android:name="com.microsoft.intune.mam.aad.ClientID"
android:value="your-client-ID-GUID" />
<meta-data
android:name="com.microsoft.intune.mam.aad.NonBrokerRedirectURI"
android:value="your-redirect-URI" />
<meta-data
android:name="com.microsoft.intune.mam.aad.SkipBroker"
android:value="[true | false]" />
ADAL metadata
Authority is the AAD authority in use. If this value is absent, the AAD public environment is used.
NOTE
Do not set this field if your application is sovereign cloud aware.
ClientID is the AAD ClientID (also known as Application ID) to be used. You should use your own app's
ClientID if it is registered with Azure AD or leverage Default Enrollment if it does not integrate ADAL.
NonBrokerRedirectURI is the AAD redirect URI to use in broker-less cases. If none is specified, a default
value of urn:ietf:wg:oauth:2.0:oob is used. This default is suitable for most apps.
The NonBrokerRedirectURI is only used when SkipBroker is "true".
SkipBroker is used to override the default ADAL SSO participation behavior. SkipBroker should only be
specified for apps that specify a ClientID and do not support brokered authentication/device-wide SSO. In
this case it should be set to "true". Most apps should not set the SkipBroker parameter.
A ClientID must be specified in the manifest to specify a SkipBroker value.
When a ClientID is specified, the default value is "false".
When SkipBroker is "true," the NonBrokerRedirectURI will be used. Apps that do not integrate ADAL
(and therefore have no ClientID) will also default to "true".
Common ADAL configurations
The following are common ways an app can be configured with ADAL. Find your app's configuration and make
sure to set the ADAL metadata parameters (explained above) to the necessary values. In all cases, the Authority
may be specified if desired for non-default environments. If not specified, the public production AAD authority will
be used.
1. App does not integrate ADAL
ADAL metadata must not be present in the manifest.
2. App integrates ADAL
REQ UIRED A DA L PA RA M ET ER VA L UE
REQ UIRED A DA L PA RA M ET ER VA L UE
SkipBroker True
NOTE
All apps are required to support app protection policy without device enrollment.
Workflow
When an app creates a new user account, it should register the account for management with the Intune App SDK.
The SDK will handle the details of enrolling the app in the APP-WE service; if necessary, it will retry any
enrollments at appropriate time intervals if failures occur.
The app can also query the Intune App SDK for the status of a registered user to determine if the user should be
blocked from accessing corporate content. Multiple accounts may be registered for management, but currently
only one account can be actively enrolled with the APP-WE service at a time. This means only one account on the
app can receive app protection policy at a time.
The app is required to provide a callback to acquire the appropriate access token from the Azure Active Directory
Authentication Library (ADAL) on behalf of the SDK. It is assumed that the app already uses ADAL for user
authentication and to acquire its own access tokens.
When the app removes an account completely, it should unregister that account to indicate that the app should no
longer apply policy for that user. If the user was enrolled in the MAM service, the user will be unenrolled and the
app will be wiped.
Overview of app requirements
To implement APP-WE integration, your app must register the user account with the MAM SDK:
1. The app must implement and register an instance of the MAMServiceAuthenticationCallback interface. The
callback instance should be registered as early as possible in the app's lifecycle (typically in the
onMAMCreate() method of the application class).
2. When a user account is created and the user successfully signs in with ADAL, the app must call the
registerAccountForMAM() .
3. When a user account is removed, the app should call unregisterAccountForMAM() to remove the account
from Intune management.
NOTE
If a user signs out of the app temporarily, the app does not need to call unregisterAccountForMAM() . The call may
initiate a wipe to completely remove corporate data for the user.
MAMEnrollmentManager
All the necessary authentication and registration APIs can be found in the MAMEnrollmentManager interface. A
reference to the MAMEnrollmentManager can be obtained as follows:
The MAMEnrollmentManager instance returned is guaranteed not to be null. The API methods fall into two categories:
authentication and account registration .
package com.microsoft.intune.mam.policy;
//Authentication methods
interface MAMServiceAuthenticationCallback {
String acquireToken(String upn, String aadId, String resourceId);
}
void registerAuthenticationCallback(MAMServiceAuthenticationCallback callback);
void updateToken(String upn, String aadId, String resourceId, String token);
//Registration methods
void registerAccountForMAM(String upn, String aadId, String tenantId);
void registerAccountForMAM(String upn, String aadId, String tenantId, String authority);
void unregisterAccountForMAM(String upn);
Result getRegisteredAccountStatus(String upn);
}
Account authentication
This section describes the authentication API methods in MAMEnrollmentManager and how to use them.
interface MAMServiceAuthenticationCallback {
String acquireToken(String upn, String aadId, String resourceId);
}
void registerAuthenticationCallback(MAMServiceAuthenticationCallback callback);
void updateToken(String upn, String aadId, String resourceId, String token);
1. The app must implement the MAMServiceAuthenticationCallback interface to allow the SDK to request an
ADAL token for the given user and resource ID. The callback instance must be provided to the
MAMEnrollmentManager by calling its registerAuthenticationCallback() method. A token may be needed
early in the app lifecycle for enrollment retries or app protection policy refresh check-ins, so the ideal place
to register the callback is in the onMAMCreate() method of the app's MAMApplication subclass.
2. The acquireToken() method should acquire the access token for the requested resource ID for the given
user. If it can't acquire the requested token, it should return null.
NOTE
Ensure that your app utilizes the resourceId and aadId parameters passed to acquireToken() so that the
correct token is acquired.
NOTE
The SDK will call acquireToken() periodically to get the token, so calling updateToken() is not strictly required.
However, it is strongly recommended as it can help enrollments and app protection policy check-ins complete in a
timely manner.
Account Registration
This section describes the account registration API methods in MAMEnrollmentManager and how to use them.
1. To register an account for management, the app should call registerAccountForMAM() . A user account is
identified by both its UPN and its AAD user ID. The tenant ID is also required to associate enrollment data
with the user's AAD tenant. The user's authority may also be provided to allow enrollment against specific
sovereign clouds; for more information see Sovereign Cloud Registration. The SDK may attempt to enroll
the app for the given user in the MAM service; if enrollment fails, it will periodically retry enrollment until
the account is unregistered. The retry period will typically be 12-24 hours. The SDK provides the status of
enrollment attempts asynchronously via notifications.
2. Because AAD authentication is required, the best time to register the user account is after the user has
signed into the app and is successfully authenticated using ADAL. The user's AAD ID and tenant ID are
returned from the ADAL authentication call as part of the AuthenticationResult object.
The tenant ID comes from the AuthenticationResult.getTenantID() method.
Information about the user is found in a sub-object of type UserInfo that comes from
AuthenticationResult.getUserInfo() , and the AAD user ID is retrieved from that object by calling
UserInfo.getUserId() .
3. To unregister an account from Intune management, the app should call unregisterAccountForMAM() . If the
account has been successfully enrolled and is managed, the SDK will unenroll the account and wipe its data.
Periodic enrollment retries for the account will be stopped. The SDK provides the status of unenrollment
request asynchronously via notification.
Sovereign Cloud Registration
Applications that are sovereign cloud aware must provide the authority to registerAccountForMAM() . This can be
obtained by providing instance_aware=true in ADAL's 1.14.0+ acquireToken extraQueryParameters followed by
invoking getAuthority() on the AuthenticationCallback AuthenticationResult.
mAuthContext.acquireToken(this, RESOURCE_ID, CLIENT_ID, REDIRECT_URI, PromptBehavior.FORCE_PROMPT,
"instance_aware=true",
new AuthenticationCallback<AuthenticationResult>() {
@Override
public void onError(final Exception exc) {
// authentication failed
}
@Override
public void onSuccess(final AuthenticationResult result) {
mAuthority = result.getAuthority();
// handle other parts of the result
}
});
NOTE
Do not set the com.microsoft.intune.mam.aad.Authority meta-data item in AndroidManifest.xml.
NOTE
Ensure that the authority is correctly set in your MAMServiceAuthenticationCallback::acquireToken() method.
The app's registered MAMServiceAuthenticationCallback will also be called to acquire a token for periodic
app protection policy refresh check-ins. If the app is unable to provide a token when requested, it will not
get a notification, but it should attempt to acquire a token and call updateToken() at the next convenient
time to expedite the check-in process. If a token is not provided, the callback will still be called at the next
check-in attempt.
Support for sovereign clouds requires providing the authority.
Registration
For your convenience, the registration methods are idempotent; for example, registerAccountForMAM() will
only register an account and attempt to enroll the app if the account is not already registered, and
unregisterAccountForMAM() will only unregister an account if it is currently registered. Subsequent calls are
no-ops, so there is no harm in calling these methods more than once. Additionally, correspondence
between calls to these methods and notifications of results are not guaranteed: i.e. if
registerAccountForMAM() is called for an identity that is already registered, the notification may not be sent
again for that identity. It is possible that notifications are sent that don't correspond to any calls to these
methods, since the SDK may periodically try enrollments in the background, and unenrollments may be
triggered by wipe requests received from the Intune service.
The registration methods can be called for any number of different identities, but currently only one user
account can become successfully enrolled. If multiple user accounts that are licensed for Intune and
targeted by app protection policy are registered at or near the same time, there is no guarantee on which
one will win the race.
Finally, you can query the MAMEnrollmentManager to see if a particular account is registered and to get its
current status using the getRegisteredAccountStatus() method. If the provided account is not registered,
this method will return null . If the account is registered, this method will return the account's status as one
of the members of the MAMEnrollmentManager.Result enumeration.
Result and status codes
When an account is first registered, it begins in the PENDING state, indicating that the initial MAM service
enrollment attempt is incomplete. After the enrollment attempt finishes, a notification will be sent with one of the
Result codes in the table below. In addition, the getRegisteredAccountStatus() method will return the account's
status so the app can always determine if access to corporate content is blocked for that user. If the enrollment
attempt fails, the account's status may change over time as the SDK retries enrollment in the background.
RESULT C O DE EXP L A N AT IO N
AUTHORIZATION_NEEDED This result indicates that a token was not provided by the
app's registered MAMServiceAuthenticationCallback
instance, or the provided token was invalid. The app should
acquire a valid token and call updateToken() if possible.
NOT_LICENSED The user is not licensed for Intune, or the attempt to contact
the Intune MAM service failed. The app should continue in an
unmanaged (normal) state and the user should not be
blocked. Enrollments will be retried periodically in case the
user becomes licensed in the future.
WRONG_USER Only one user per device can enroll an app with the MAM
service. This result indicates that the user for whom this result
was delivered (the second user) is targeted with MAM policy,
but a different user is already enrolled. Because MAM policy
cannot be enforced for the second user, your app must not
allow access to this user's data (possibly by removing the user
from your app) unless/until enrollment for this user succeeds
at a later time. Concurrent with delivering this WRONG_USER
result, MAM will prompt with the option to remove the
existing account. If the human user answers in the affirmative,
it will indeed be possible to enroll the second user a short
time later. As long as the second user remains registered,
MAM will retry enrollment periodically.
RESULT C O DE EXP L A N AT IO N
PENDING The initial enrollment attempt for the user is in progress. The
app can block access to corporate data until the enrollment
result is known, but is not required to do so.
COMPANY_PORTAL_REQUIRED The user is licensed for Intune, but the app cannot be enrolled
until the Company Portal app is installed on the device. The
Intune App SDK will attempt to block access to the app for
the given user and direct them to install the Company Portal
app (see below for details).
This method is called before the SDK displays its default blocking UI. If the app changes the activity identity or
unregisters the user who attempted to enroll, the SDK will not block the activity. In this situation, it is up to the app
to avoid leaking corporate data. Only multi-identity apps (discussed later) will be able to change the activity
identity.
If you do not explicitly inherit MAMActivity (because the build tooling will make that change), but still need to
handle this notification you may instead implement MAMActivityBlockingListener .
Notifications
If the app registers for notifications of type MAM_ENROLLMENT_RESULT , a MAMEnrollmentNotification will be
sent in order to inform the app that the enrollment request has completed. The MAMEnrollmentNotification will be
received through the MAMNotificationReceiver interface as described in the Register for notifications from the SDK
section.
The getEnrollmentResult() method returns the result of the enrollment request. Since MAMEnrollmentNotification
extends MAMUserNotification , the identity of the user for whom the enrollment was attempted is also available.
The app must implement the MAMNotificationReceiver interface to receive these notifications, detailed in the
Register for notifications from the SDK section.
The registered user account's status may change when an enrollment notification is received, but it will not change
in all cases (for example, if AUTHORIZATION_NEEDED notification is received after a more informative result such as
WRONG_USER , the more informative result will be maintained as the account's status). Once the account is
successfully enrolled, the status will remain as ENROLLMENT_SUCCEEDED until the account is unenrolled or wiped.
APP CA with Policy Assurance
Overview
With APP CA (Conditional Access) with Policy Assurance, access to resources is conditionalized on the application
of Intune App Protection Policies. AAD enforces this by requiring the app to be enrolled and managed by APP
before granting a token to access an APP CA with Policy Assurance protected resource. The app is required to use
the ADAL broker for token acquisition, and the setup is the same as described above in Conditional Access.
ADAL changes
The ADAL library has a new error code informing the app that the failure to acquire a token was caused by non-
compliance with APP management. If the app receives this error code, it needs to call the SDK to attempt to
remediate compliance by enrolling the app and applying policy. An exception will be received by the onError()
method of the ADAL AuthenticationCallback , and will have the error code
ADALError.AUTH_FAILED_INTUNE_POLICY_REQUIRED . In this case, the exception can be cast to an
IntuneAppProtectionPolicyRequiredException , from which additional parameters can be extracted for use in
remediating compliance (see code sample below). Once the remediation is successful, the app can re-attempt the
token acquisition through ADAL.
NOTE
This new error code and other support for APP CA with Policy Assurance require version 1.15.0 (or greater) of the ADAL
library.
MAMComplianceManager
The MAMComplianceManager interface is used when the policy-required error is received from ADAL. It contains the
remediateCompliance() method that should be called to attempt to put the app into a compliant state. A reference
to the MAMComplianceManager can be obtained as follows:
package com.microsoft.intune.mam.policy;
The remediateCompliance() method is called to attempt to put the app under management to satisfy the conditions
for AAD to grant the requested token. The first four parameters can be extracted from the exception received by
the ADAL AuthenticationCallback.onError() method (see code sample below). The final parameter is a boolean
which controls whether a UX is shown during the compliance attempt. This is a simple blocking progress style
interface provided as a default for apps that don't have a need to show customized UX during this operation. It will
only block while the compliance remediation is in progress and will not display the final result. The app should
register a notification receiver to handle the success or failure of the compliance remediation attempt (see below).
The remediateCompliance() method may do a MAM enrollment as part of establishing compliance. The app may
receive an enrollment notification if it has registered a notification receiver for enrollment notifications. The app's
registered MAMServiceAuthenticationCallback will have its acquireToken() method called to get a token for the
MAM enrollment. acquireToken() will be called before the app has acquired its own token, so any bookkeeping or
account creation tasks that the app does after a successful token acquisition may not have been done yet. The
callback must be able to acquire a token in this case. If you can't return a token from acquireToken() , the
compliance remediation attempt will fail. If you call updateToken() later with a valid token for the requested
resource, the compliance remediation will be retried immediately with the given token.
NOTE
Silent token acquisition will still be possible in acquireToken() because the user will have already been guided to install the
broker and register the device before ADALError.AUTH_FAILED_INTUNE_POLICY_REQUIRED error is received. This results in
the broker having a valid refresh token in its cache, allowing silent acquisition of the requested token to succeed.
Here is a sample of receiving the policy-required error in the AuthenticationCallback.onError() method, and
calling the MAMComplianceManager to handle the error.
Status Notifications
If the app registers for notifications of type COMPLIANCE_STATUS , a MAMComplianceNotification will be sent in
order to inform the app of the final status of the compliance remediation attempt. The MAMComplianceNotification
will be received through the MAMNotificationReceiver interface as described in the Register for notifications from
the SDK section.
The getComplianceStatus() method returns the result of the compliance remediation attempt as a value from the
MAMCAComplianceStatus enum.
STAT US C O DE EXP L A N AT IO N
NETWORK_FAILURE There was an error connecting to the Intune Service. The app
should try its token acquisition again when the network
connection is restored.
If the compliance status is MAMCAComplianceStatus.COMPLIANT , the app should re-initiate its original token acquisition
(for its own resource). If the compliance remediation attempt failed, the getComplianceErrorTitle() and
getComplianceErrorMessage() methods will return localized strings that the app can display to the end user if it
chooses. Most of the error cases aren't remediable by the app, so for the general case it may be best to fail account
creation or login and allow the user to try again later. If a failure is persistent, the MAM logs may help determine
the cause. The end user can submit the logs. For more information, see Upload and email logs.
Since MAMComplianceNotification extends MAMUserNotification , the identity of the user for whom the remediation
was attempted is also available.
Here is an example of registering a receiver using an anonymous class to implement the MAMNotificationReceiver
interface:
final MAMNotificationReceiverRegistry notificationRegistry =
MAMComponents.get(MAMNotificationReceiverRegistry.class);
// create a receiver
final MAMNotificationReceiver receiver = new MAMNotificationReceiver() {
public boolean onReceive(MAMNotification notification) {
if (notification.getType() == MAMNotificationType.COMPLIANCE_STATUS) {
MAMComplianceNotification complianceNotification = (MAMComplianceNotification) notification;
NOTE
The notification receiver must be registered before calling remediateCompliance() to avoid a race condition that could
result in the notification being missed.
Implementation Notes
NOTE
Impor tant change!
The app's MAMServiceAuthenticationCallback.acquireToken() method should pass false for the new forceRefresh flag
to acquireTokenSilentSync() . Previously, we recommended passing true to address an issue with refreshing tokens from
the broker, but an issue with ADAL was found that could prevent acquiring tokens in some scenarios if this flag is true.
NOTE
If you want to show a custom blocking UX during the remediation attempt, you should pass false for the showUX parameter
to remediateCompliance() . You must ensure that you show your UX and register your notification listener first before
calling remediateCompliance() . This will prevent a race condition where the notification could be missed if
remediateCompliance() fails very quickly. For example, the onCreate() or onMAMCreate() method of an Activity
subclass is the ideal place to register the notification listener and then call remediateCompliance() . The parameters for
remediateCompliance() can be passed to your UX as Intent extras. When the compliance status notification is received,
you can display the result or simply finish the activity.
NOTE
remediateCompliance() will register the account and attempt enrollment. Once the main token is acquired, calling
registerAccountForMAM() is not necessary, but there is no harm in doing so. On the other hand, if the app fails to acquire
its token and wishes to remove the user account, it must call unregisterAccountForMAM() to remove the account and
prevent background enrollment retries.
android:fullBackupOnly="true"
android:backupAgent="com.microsoft.intune.mam.client.app.backup.MAMDefaultBackupAgent"
2. [Optional] If you implemented an optional custom BackupAgent, you need to make sure to use
MAMBackupAgent or MAMBackupAgentHelper. See the following sections. Consider switching to using
Intune's MAMDefaultFullBackupAgent (described in step 1) which provides easy back-up on Android M
and above.
3. When you decide which type of full backup your app should receive (unfiltered, filtered, or none), you'll
need to set the attribute android:fullBackupContent to true, false, or an XML resource in your app.
4. Then, you must copy whatever you put into android:fullBackupContent into a metadata tag named
com.microsoft.intune.mam.FullBackupContent in the manifest.
Example 1 : If you want your app to have full backups without exclusions, set both the
android:fullBackupContent attribute and com.microsoft.intune.mam.FullBackupContent metadata tag to true :
android:fullBackupContent="true"
...
<meta-data android:name="com.microsoft.intune.mam.FullBackupContent" android:value="true" />
Example 2 : If you want your app to use its custom BackupAgent and opt out of full, Intune policy
compliant, automatic backups, you must set the attribute and metadata tag to false :
android:fullBackupContent="false"
...
<meta-data android:name="com.microsoft.intune.mam.FullBackupContent" android:value="false" />
Example 3 : If you want your app to have full backups according to your custom rules defined in an XML
file, set the attribute and metadata tag to the same XML resource:
android:fullBackupContent="@xml/my_scheme"
...
<meta-data android:name="com.microsoft.intune.mam.FullBackupContent" android:resource="@xml/my_scheme"
/>
Key/Value Backup
The Key/Value Backup option is available to all APIs 8+ and uploads app data to the Android Backup Service. The
amount of data per user of your app is limited to 5 MB. If you use Key/Value Backup, you must use a
BackupAgentHelper or a BackupAgent .
BackupAgentHelper
BackupAgentHelper is easier to implement than BackupAgent both in terms of native Android functionality and
Intune MAM integration. BackupAgentHelper allows the developer to register entire files and shared preferences
to a FileBackupHelper and SharedPreferencesBackupHelper (respectively) which are then added to the
BackupAgentHelper upon creation. Follow the steps below to use a BackupAgentHelper with Intune MAM:
1. To utilize multi-identity backup with a BackupAgentHelper, follow the Android guide to Extending
BackupAgentHelper.
2. Have your class extend the MAM equivalent of BackupAgentHelper, FileBackupHelper, and
SharedPreferencesBackupHelper.
A N DRO ID C L A SS M A M EQ UIVA L EN T
BackupAgentHelper MAMBackupAgentHelper
FileBackupHelper MAMFileBackupHelper
SharedPreferencesBackupHelper MAMSharedPreferencesBackupHelper
Following these guidelines will lead to a successful multi-identity back up and restore.
BackupAgent
A BackupAgent allows you to be much more explicit about what data is backed up. Because the developer is fairly
responsible for the implementation, there are more steps required to ensure appropriate data protection from
Intune. Since most of the work is pushed onto you, the developer, Intune integration is slightly more involved.
Integrate MAM:
1. Carefully read the Android guide for Key/Value Backup and specifically Extending BackupAgent to ensure
your BackupAgent implementation follows Android guidelines.
2. Have your class extend MAMBackupAgent .
Multi-identity Backup:
1. Before beginning your backup, check that the files or data buffers you plan to back up are indeed
permitted by the IT administrator to be backed up in multi-identity scenarios. We provide you with
the isBackupAllowed function in MAMFileProtectionManager and MAMDataProtectionManager to determine this.
If the file or data buffer is not allowed to be backed up, then you should not continue including it in your
backup.
2. At some point during your backup, if you want to back up the identities for the files you checked in step 1,
you must call backupMAMFileIdentity(BackupDataOutput data, File … files) with the files from which you
plan to extract data. This will automatically create new backup entities and write them to the
BackupDataOutput for you. These entities will be automatically consumed upon restore.
Multi-identity Restore:
The Data Backup guide specifies a general algorithm for restoring your application’s data and provides a code
sample in the Extending BackupAgent section. In order to have a successful multi-identity restore, you must follow
the general structure provided in this code sample with special attention to the following:
1. You must utilize a while(data.readNextHeader()) * loop to go through the backup entities.
2. You must call data.skipEntityData() * if data.getKey() * does not match the key you wrote in onBackup .
Without performing this step, your restores may not succeed.
3. Avoid returning while consuming backup entities in the while(data.readNextHeader()) * construct, as the
entities we automatically write will be lost.
Where data is the local variable name for the MAMBackupDataInput that is passed to your app upon
restore.
Multi-Identity (optional)
Overview
By default, the Intune App SDK will apply policy to the app as a whole. Multi-identity is an optional Intune app
protection feature that can be enabled to allow policy to be applied on a per-identity level. This requires
significantly more app participation than other app protection features.
NOTE
A lack of the correct app participation can result in data leaks and other security issues.
Once the user enrolls the device or the app, the SDK registers this identity and considers it the primary Intune
managed identity. Other users in the app will be treated as unmanaged, with unrestricted policy settings.
NOTE
Currently, only one Intune managed identity is supported per device.
An identity is defined as a string. Identities are case-insensitive, and request to the SDK for an identity may not
return the same casing that was originally used when setting the identity.
The app must inform the SDK when it intends to change the active identity. In some cases, the SDK will also notify
the app when an identity change is required. In most cases, however, MAM cannot know what data is being
displayed in the UI or used on a thread at a given time and relies on the app to set the correct identity in order to
avoid data leak. In the sections that follow, some particular scenarios which require app action will be called out.
Enabling Multi-Identity
By default, all apps are considered to be single-identity apps. You can declare an app to be multi-identity aware by
placing the following metadata in AndroidManifest.xml.
<meta-data
android:name="com.microsoft.intune.mam.MAMMultiIdentity"
android:value="true" />
NOTE
Because the CLIPBOARD_SERVICE is used for UI operations, the SDK uses the UI identity of the foreground activity for
ClipboardManager operations.
The following methods in MAMPolicyManager may be used to set the identity and retrieve the identity values
previously set.
public static void setUIPolicyIdentity(final Context context, final String identity, final
MAMSetUIIdentityCallback mamSetUIIdentityCallback,
final EnumSet<IdentitySwitchOption> options);
/**
* Get the current app policy. This does NOT take the UI (Context) identity into account.
* If the current operation has any context (e.g. an Activity) associated with it, use the overload below.
*/
public static AppPolicy getPolicy();
/**
* Get the current app policy. This DOES take the UI (Context) identity into account.
* If the current operation has any context (e.g. an Activity) associated with it, use this function.
*/
public static AppPolicy getPolicy(final Context context);
NOTE
You can clear the identity of the app by setting it to null.
The empty string may be used as an identity that will never have app protection policy.
Results
All the methods used to set the identity report back result values via MAMIdentitySwitchResult . There are four
values that can be returned:
The app should ensure that an identity switch is successful before displaying or using corporate data. Currently,
process and thread identity switches will always succeed for a multi-identity-enabled app, however we reserve the
right to add failure conditions. The UI identity switch may fail for invalid arguments, if it would conflict with the
thread identity, or if the user cancels out of conditional launch requirements (for example, presses the back button
on the PIN screen). The default behavior for a failed UI identity switch on an activity is to finish the activity (see
onSwitchMAMIdentityComplete below).
In the case of setting a Context identity via setUIPolicyIdentity , the result is reported asynchronously. If the
Context is an Activity , the SDK doesn't know if the identity change succeeded until after conditional launch is
performed -- which may require the user to enter a PIN or corporate credentials. The app may implement a
MAMSetUIIdentityCallback to receive this result, or may pass null for the callback object. Note that if a call is made
to setUIPolicyIdentity while the result from a previous call to setUIPolicyIdentity on the same context has not
yet been delivered, the new callback will supersede the old one and the original callback will never receive a result.
You can also set the identity of an activity directly through a method in MAMActivity instead of calling
MAMPolicyManager.setUIPolicyIdentity . Use following method to do so:
You can also override a method in MAMActivity if you want the app to be notified of the result of attempts to
change the identity of that activity.
If you do not override onSwitchMAMIdentityComplete (or call the super method), a failed identity switch on an
activity will result in the activity being finished. If you do override the method, you must take care that corporate
data is not displayed after a failed identity switch.
NOTE
Switching the identity may require recreating the activity. In this case, the onSwitchMAMIdentityComplete callback will be
delivered to the new instance of the activity.
The captures the source of the implicit switch, and can accept the values CREATE ,
AppIdentitySwitchReason
RESUME_CANCELLED , and NEW_INTENT . The RESUME_CANCELLED reason is used when activity resume causes PIN,
authentication, or other compliance UI to be displayed and the user attempts to cancel out of that UI,
generally though use of the back button.
The AppIdentitySwitchResultCallback is as follows:
If a requested identity is managed (use MAMPolicyManager.getIsIdentityManaged to check), but the app is not
able to use that account (for example, because accounts, such as email accounts, must be set up in the app
first) then the identity switch should be refused.
Build plugin / tool considerations
If you do not explicitly inherit from MAMActivity , MAMService , or MAMContentProvider (because you allow the build
tooling to make that change), but still need to process identity switches, you may instead implement
MAMActivityIdentityRequirementListener (for an Activity ) or MAMIdentityRequirementListener (for a Service or
ContentProviders ). The default behavior for MAMActivity.onMAMIdentitySwitchRequired can be accessed by calling
the static method MAMActivity.defaultOnMAMIdentitySwitchRequired(activity, identity, reason, callback) .
Similarly, if you need to override MAMActivity.onSwitchMAMIdentityComplete , you may implement
MAMActivityIdentitySwitchListener without explicitly inheriting from MAMActivity .
Preserving Identity In Async Operations
It is common for operations on the UI thread to dispatch background tasks to another thread. A multi-identity app
will want to make sure that these background tasks operate with the appropriate identity, which is often the same
identity used by the activity that dispatched them. The MAM SDK provides MAMAsyncTask and
MAMIdentityExecutors as a convenience to aid in preserving the identity. These must be used if the asynchronous
operation could write corporate data to a file or could communicate with other apps.
MAMAsyncTask
To use MAMAsyncTask , simply inherit from it instead of AsyncTask and replace overrides of doInBackground and
onPreExecute with doInBackgroundMAM and onPreExecuteMAM respectively. The MAMAsyncTask constructor takes an
activity context. For example:
@Override
protected Object doInBackgroundMAM(final Object[] params) {
// Do operations.
}
@Override
protected void onPreExecuteMAM() {
// Do setup.
};
}
MAMIdentityExecutors
MAMIdentityExecutors allows you to wrap an existing Executor or ExecutorService instance as an identity-
preserving Executor / ExecutorService with wrapExecutor and wrapExecutorService methods. For example
File Protection
Every file has an identity associated with it at the time of creation, based on thread and process identity. This
identity will be used for both file encryption and selective wipe. Only files whose identity is managed and has
policy requiring encryption will be encrypted. The SDK's default selective functionality wipe will only wipe files
associated with the managed identity for which a wipe has been requested. The app may query or change a file’s
identity using the MAMFileProtectionManager class.
/**
* Protect a file or directory. This will synchronously trigger whatever protection is required for the
file, and will tag the
* file for future protection changes. If an identity is set on a directory, it is set recursively on all
files and
* subdirectories. New files or directories will inherit their parent directory's identity. If MAM is
operating in offline mode,
* this method will silently do nothing.
*
* @param identity
* Identity to set.
* @param file
* File to protect.
*
* @throws IOException
* If the file cannot be protected.
*/
public static void protect(final File file, final String identity) throws IOException;
/**
* Protect a file obtained from a content provider. This is intended to be used for
* sdcard (whether internal or removable) files accessed through the Storage Access Framework.
* It may also be used with descriptors referring to private files owned by this app.
* It is not intended to be used for files owned by other apps and such usage will fail. If
* creating a new file via a content provider exposed by another MAM-integrated app, the new
* file identity will automatically be set correctly if the ContentResolver in use was
* obtained via a Context with an identity or if the thread identity is set.
*
* This will synchronously trigger whatever protection is required for the file, and will tag
* the file for future protection changes. If an identity is set on a directory, it is set
* recursively on all files and subdirectories. If MAM is operating in offline mode, this
* method will silently do nothing.
*
* @param identity
* Identity to set.
* @param file
* File to protect.
*
* @throws IOException
* If the file cannot be protected.
*/
public static void protect(final ParcelFileDescriptor file, final String identity) throws IOException;
/**
* Get the protection info on a file. This method should only be used if the file is located in the calling
application's
* private storage or the device's shared storage. If opening a file with a content resolver, use the
overload which
* takes a ParcelFileDescriptor instead.
*
* @param file
* File or directory to get information on.
* @return File protection info, or null if there is no protection info.
* @throws IOException
* If the file cannot be read or opened.
*/
public static MAMFileProtectionInfo getProtectionInfo(final File file) throws IOException;
/**
* Get the protection info on a file descriptor such as one opened through a content resolver.
*
* @param file
* @param file
* File or directory to get information on.
* @return File protection info, or null if there is no protection info.
* @throws IOException
* If the file cannot be read or opened.
*/
public static MAMFileProtectionInfo getProtectionInfo(final ParcelFileDescriptor file) throws IOException;
App Responsibility
MAM cannot automatically infer a relationship between files being read and data being displayed in an Activity .
Apps must set the UI identity appropriately before displaying corporate data. This includes data read from files. If a
file comes from outside the app (either from a ContentProvider or read from a publicly writable location), the app
must attempt to determine the file identity (using the correct MAMFileProtectionManager.getProtectionInfo
overload for the data source) before displaying information read from the file. If getProtectionInfo reports a non-
null, non-empty identity, the UI identity must be set to match this identity (using MAMActivity.switchMAMIdentity or
MAMPolicyManager.setUIPolicyIdentity ). If the identity switch fails, data from the file must not be displayed.
/**
* Protect a byte array. This will return protected bytes.
*
* @param identity
* Identity to set.
* @param input
* Input data to protect.
* @return Protected input data.
* @throws IOException
* If the data could not be protected
*/
public static byte[] protect(final byte[] input, final String identity) throws IOException;
/**
/**
* Unprotect a stream. This will return a stream containing the
* unprotected input.
*
* @param input
* Input data to protect, read sequentially.
* @return Protected input data.
* @throws IOException
* If the data could not be unprotected
*/
public static InputStream unprotect(final InputStream input) throws IOException;
/**
* Unprotect a byte array. This will return unprotected bytes.
*
* @param input
* Input data to protect.
* @return Protected input data.
* @throws IOException
* If the data could not be unprotected
*/
public static byte[] unprotect(final byte[] input) throws IOException;
/**
* Get the protection info on a stream.
*
* @param input
* Input stream to get information on. Either this input
* stream must have been returned by a previous call to
* protect OR input.markSupported() must return true.
* Otherwise it will be impossible to get protection info
* without advancing the stream position. The stream must be
* positioned at the beginning of the protected data.
* @return Data protection info, or null if there is no protection
* info.
* @throws IOException
* If the input cannot be read.
*/
public static MAMDataProtectionInfo getProtectionInfo(final InputStream input) throws IOException;
/**
* Get the protection info on a stream.
*
* @param input
* Input bytes to get information on. These must be bytes
* returned by a previous call to protect() or a copy of
* such bytes.
* @return Data protection info, or null if there is no protection
* info.
* @throws IOException
* If the input cannot be read.
*/
public static MAMDataProtectionInfo getProtectionInfo(final byte[] input) throws IOException;
}
Content Providers
If the app provides corporate data other than a ParcelFileDescriptor through a ContentProvider , the app must
call the method isProvideContentAllowed(String) in MAMContentProvider , passing the owner identity's UPN (user
principal name) for the content. If this function returns false, the content must not be returned to the caller. File
descriptors returned through a content provider are handled automatically based on the file identity.
If you do not inherit MAMContentProvider explicitly and instead allow the build tooling to make that change, you
may call a static version of the same method:
MAMContentProvider.isProvideContentAllowed(provider, contentIdentity) .
Selective Wipe
If a multi-identity app registers for the WIPE_USER_DATA notification, it is the app's responsibility to remove all data
for the user being wiped, including all files that have been identity-tagged as belonging to that user. If the app
removes user data from a file but wishes to leave other data in the file, it must change the identity of the file (via
MAMFileProtectionManager.protect to a personal user or the empty identity). If encryption policy is in use, any
remaining files belonging to the user being wiped will not be decrypted and will become inaccessible to the app
after wipe.
An app registering for WIPE_USER_DATA will not receive the benefit of the SDK's default selective wipe behavior. For
multi-identity aware apps, this loss may be more significant since MAM default selective wipe will wipe only files
whose identity is targeted by a wipe. If a multi-identity aware application wishes MAM default selective wipe to be
done and wishes to perform its own actions on wipe, it should register for WIPE_USER_AUXILIARY_DATA notifications.
This notification will be sent immediately by the SDK before it performs the MAM default selective wipe. An app
should never register for both WIPE_USER_DATA and WIPE_USER_AUXILIARY_DATA .
The default selective wipe will close the app gracefully, finishing activities and killing the app process. If your app
overrides the default selective wipe, you may want to consider closing your app manually to prevent the user from
accessing in-memory data after a wipe occurs.
NOTE
Configurations setup for delivery via MAM-WE can not be delivered in offline (when the Company Portal is not
installed). Only Android Enterprise AppRestrictions will be delivered via a MAMUserNotification on an empty identity in this
case.
If there is no MAM-registered user, but your app would still like to retrieve Android Enterprise configuration (which
will not be targeted at a specific user), you can pass a null or empty string.
Conflicts
A value set in MAM app config will override a value with the same key set in Android Enterprise config.
If an admin configures conflicting values for the same key (e.g by targeting different app config sets with the same
key to multiple groups containing the same user), Intune does not have any way of resolving this conflict
automatically and will make all values available to your app.
Your app can request all values for a given key from a MAMAppConfig object:
List<Boolean> getAllBooleansForKey(String key)
List<Long> getAllIntegersForKey(final String key)
List<Double> getAllDoublesForKey(final String key)
List<String> getAllStringsForKey(final String key)
enum BooleanQueryType {
/**
* In case of conflict, arbitrarily picks one. This is not guaranteed to return the same value every time.
*/
Any,
/**
* In case of conflict, returns true if any of the values are true.
*/
Or,
/**
* In case of conflict, returns false if any of the values are false.
*/
And
}
enum NumberQueryType {
/**
* In case of conflict, arbitrarily picks one. This is not guaranteed to return the same value every time.
*/
Any,
/**
* In case of conflict, returns the minimum Integer.
*/
Min,
/**
* In case of conflict, returns the maximum Integer.
*/
Max
}
enum StringQueryType {
/**
* In case of conflict, arbitrarily picks one. This is not guaranteed to return the same value every time.
*/
Any,
/**
* In case of conflict, returns the first result ordered alphabetically.
*/
Min,
/**
* In case of conflict, returns the last result ordered alphabetically.
*/
Max
}
Your app can also request the raw data as a list of sets of key-value pairs.
Full Example
MAMAppConfigManager configManager = MAMComponents.get(MAMAppConfigManager.class);
String identity = "user@contoso.com"
MAMAppConfig appConfig = configManager.getAppConfig(identity);
String fooValue = null;
if (appConfig.hasConflict("foo")) {
List<String> values = appConfig.getAllStringsForKey("foo");
fooValue = chooseBestValue(values);
} else {
valueToUse = appConfig.getStringForKey("foo", MAMAppConfig.StringQueryType.Any);
}
Long barValue = appConfig.getIntegerForKey("bar", MAMAppConfig.NumberQueryType.Min);
Notification
App config adds a new notification type:
REFRESH_APP_CONFIG : This notification is sent in a MAMUserNotification and informs the app that new app
config data is available.
Further Reading
For more information about how to create a MAM targeted app configuration policy in Android, see the section on
MAM targeted app config in How to use Microsoft Intune app configuration policies for Android.
App config can also be configured using the Graph API. For information, see the Graph API docs for MAM Targeted
Config.
MAMThemeManager.setAppTheme(R.style.AppTheme);
In the above example, you need to replace R.style.AppTheme with the style theme that you want the SDK to apply.
You must reuse resources that already exist within your app. For example, you must define the color green in the
colors.xml file and reference it here. You cannot use the Hex color code “#0000ff." The maximum size for the app
logo is 110 dip (dp). You may use a smaller logo image, but adhering to the maximum size will yield the best
looking results. If you exceed the 110 dip limit, the image will scale down and possibly cause blurring.
Below is the complete list of allowed style attributes, the UI elements they control, their XML attribute item names,
and the type of resource expected for each.
NOTE
The benefits of default enrollment include a simplified method of obtaining policy from APP-WE service for an app on the
device.
NOTE
Default enrollment is sovereign cloud aware.
NOTE
This must be the only MAM-WE integration in the app. If there are any other attempts to call
MAMEnrollmentManager APIs, conflicts will arise.
3. Enable MAM policy required by adding the following value in the manifest under the <application> tag:
NOTE
This forces the user to download the Company Portal on the device and complete the default enrollment flow before
use.
Limitations
Policy enforcement limitations
Using Content Resolvers : The "transfer or receive" Intune policy may block or partially block the use of a
content resolver to access the content provider in another app. This will cause ContentResolver methods to
return null or throw a failure value (for example, openOutputStream will throw FileNotFoundException if
blocked). The app can determine whether a failure to write data through a content resolver was caused by
policy (or would be caused by policy) by making the call:
MAMPolicyManager.getPolicy(currentActivity).getIsSaveToLocationAllowed(contentURI);
MAMPolicyManager.getPolicy().getIsSaveToLocationAllowed(contentURI);
In this second case, multi-identity apps must take care to set the thread identity appropriately (or pass an
explicit identity to the getPolicy call).
Exported services
The AndroidManifest.xml file included in the Intune App SDK contains MAMNotificationReceiverSer vice , which
must be an exported service to allow the Company Portal to send notifications to a managed app. The service
checks the caller to ensure that only the Company Portal is allowed to send notifications.
Reflection limitations
Some of the MAM base classes (for example, MAMActivity , MAMDocumentsProvider ) contain methods (based on the
original Android base classes) which use parameter or return types only present above certain API levels. For this
reason, it may not always be possible to use reflection to enumerate all methods of app components. This
restriction is not limited to MAM, it is the same restriction that would apply if the app itself implemented these
methods from the Android base classes.
Robolectric
Testing MAM SDK behavior under Robolectric is not supported. There are known issues running the MAM SDK
under Robolectric due to behaviors present under Robolectric that do not accurately mimic those on real devices
or emulators.
If you need to test your application under Robolectric, the recommended workaround is to move your application
class logic to a helper and produce your unit-testing apk with an application class that does not inherit from
MAMApplication.
Telemetry
The Intune App SDK for Android does not control data collection from your app. The Company Portal application
logs system-generated data by default. This data is sent to Microsoft Intune. As per Microsoft Policy, we do not
collect any personal data.
NOTE
If end users choose not to send this data, they must turn off telemetry under Settings on the Company Portal app. To learn
more, see Turn off Microsoft usage data collection.
Testing
See the Testing Guide.
Microsoft Intune App SDK for Android developers
testing guide
9/4/2020 • 4 minutes to read • Edit Online
The Microsoft Intune App SDK for Android testing guide is designed to help you test your Intune-managed Android
app.
NOTE
If your app isn't listed in the Azure portal, you can target it with a policy by selecting the more apps option and providing
the package name in the text box.
Test Cases
The following test cases provide configuration and confirmation steps. Use these tests to verify your newly
integrated Android app.
Required PIN and corporate credentials
You can require a PIN to access corporate resources. Also, you can enforce corporate authentication before users
can use managed apps. Here's how:
1. Set Require PIN for access and Require corporate credentials for access to Yes . For more information,
see Android app protection policy settings in Microsoft Intune.
2. Confirm the following conditions:
App launch should present a prompt for PIN input, or the production user that was used during
enrollment with the Company Portal.
Failure to present a valid sign-in prompt might be due to an incorrectly configured Android manifest,
specifically the values for Azure Active Directory Authentication Library (ADAL) integration (SkipBroker,
ClientID, and Authority).
Failure to present any prompt might be due to an incorrectly integrated MAMActivity value. For more
information about MAMActivity , see Microsoft Intune App SDK for Android developer guide.
NOTE
If the preceding test isn't working, the following tests will likely also fail. Review SDK and ADAL integration.
NOTE
You may wish to first read the Get Started with Intune App SDK article, which explains how to prepare for integration on
each supported platform.
Overview
The Intune App SDK Xamarin Bindings enable Intune app protection policy in iOS and Android apps built with
Xamarin. The bindings allow developers to easily build in Intune app protection features into their Xamarin-based
app.
The Microsoft Intune App SDK Xamarin Bindings let you incorporate Intune app protection policies (also known as
APP or MAM policies) into your apps developed with Xamarin. A MAM-enabled application is one that is
integrated with the Intune App SDK. IT administrators can deploy app protection policies to your mobile app when
Intune actively manages the app.
What's supported?
Developer machines
Windows (Visual Studio version 15.7+)
macOS
Mobile app platforms
Android
iOS
Intune Mobile Application Management scenarios
Intune APP-WE (without device enrollment)
Intune MDM-enrolled devices
Third-party EMM-enrolled devices
Xamarin apps built with the Intune App SDK Xamarin Bindings can now receive Intune app protection policies on
both Intune mobile device management (MDM) enrolled devices and unenrolled devices.
Prerequisites
Review the license terms. Print and retain a copy of the license terms for your records. By downloading and using
the Intune App SDK Xamarin Bindings, you agree to such license terms. If you do not accept them, do not use the
software.
The Intune SDK relies on Microsoft Authentication Library (MSAL) for its authentication and conditional launch
scenarios, which require apps to be configured with Azure Active Directory.
If your application is already configured to use MSAL, and has its own custom client ID used to authenticate with
Azure Active Directory, ensure the steps to give your Xamarin app permissions to the Intune Mobile Application
Management (MAM) service are followed. Use the instructions in the "Give your app access to the Intune app
protection service" section of the getting started with the Intune SDK guide.
Security Considerations
To prevent potential spoofing, information disclosure, and elevation of privilege attacks:
Ensure that Xamarin app development is performed on a secure work station.
Ensure the bindings are from a valid Microsoft source:
MS Intune App SDK NuGet Profile
Intune App SDK Xamarin GitHub Repository
Configure your NuGet config for your project to trust signed, unmodified NuGet packages. See installing
signed packages for more information.
Secure the output directory that contains the Xamarin app. Consider using a user-level directory for the output.
using Microsoft.Intune.MAM;
4. To begin receiving app protection policies, your app must enroll in the Intune MAM service. If your app does
not use Microsoft Authentication Library (MSAL) to authenticate users, and you'd like the Intune SDK to
handle authentication, your app should provide the user's UPN to the IntuneMAMEnrollmentManager's
LoginAndEnrollAccount method:
Apps may pass in null if the user's UPN is unknown at the time of the call. In this case, users will be
prompted to enter both their email address and password.
If your app already uses MSAL to authenticate users, you can configure a single-sign-on (SSO) experience
between your app and the Intune SDK. First, you'll need to override the default AAD settings used by the
Intune SDK with those of your app. You can do so via the IntuneMAMSettings dictionary in the app's
Info.plist, as mentioned in the Intune App SDK for iOS Developer Guide, or you can do so in code via the
AAD override properties of the IntuneMAMSettings class. The Info.plist approach is recommended for
applications whose MSAL settings are static while the override properties are recommended for
applications that determine those values at runtime. Once all of the SSO settings have been configured,
your app should provide the user's UPN to the IntuneMAMEnrollmentManager's RegisterAndEnrollAccount
method after it has successfully authenticated:
IntuneMAMEnrollmentManager.Instance.RegisterAndEnrollAccount(string identity);
Apps can determine the result of an enrollment attempt by implementing the EnrollmentRequestWithStatus
method in a subclass of IntuneMAMEnrollmentDelegate and setting the IntuneMAMEnrollmentManager's
Delegate property to an instance of that class.
Upon a successful enrollment, apps can determine the UPN of the enrolled account (if previously unknown)
by querying the following property:
Sample Applications
Sample applications highlighting MAM functionality in Xamarin.iOS apps are available on GitHub.
NOTE
There is no remapper for iOS/iPadOS. Integrating into a Xamarin.Forms app should be the same as for a regular Xamarin.iOS
project.
<PropertyGroup>
<ExcludeClasses>Semicolon separated list of relative class paths to exclude from MAM-
ification</ExcludeClasses>
</PropertyGroup>
NOTE
The Remapper currently prevents debugging in Xamarin.Android apps. Manual integration is recommended to debug your
application.
Renamed Methods
In many cases, a method available in the Android class has been marked as final in the MAM replacement class. In
this case, the MAM replacement class provides a similarly named method (suffixed with MAM ) that you should
override instead. For example, when deriving from MAMActivity , instead of overriding OnCreate() and calling
base.OnCreate() , Activity must override OnMAMCreate() and call base.OnMAMCreate() .
MAM Application
Your app must define an Android.App.Application class. If manually integrating MAM, it must inherit from
MAMApplication . Be sure that your subclass is properly decorated with the [Application] attribute and overrides
the (IntPtr, JniHandleOwnership) constructor.
[Application]
class TaskrApp : MAMApplication
{
public TaskrApp(IntPtr handle, JniHandleOwnership transfer)
: base(handle, transfer) { }
NOTE
An issue with the MAM Xamarin bindings can cause the application to crash when deployed in Debug mode. As a
workaround, the Debuggable=false attribute must be added to the Application class and the
android:debuggable="true" flag must be removed from the manifest if it was manually set.
MAMPolicyManager.GetPolicy(currentActivity).IsPinRequired;
Xamarin.Forms integration
For Xamarin.Forms applications the Microsoft.Intune.MAM.Remapper package performs MAM class replacement
automatically by injecting MAM classes into the class hierarchy of commonly used Xamarin.Forms classes.
NOTE
The Xamarin.Forms integration must be done in addition to the Xamarin.Android integration detailed above. The Remapper
behaves differently for Xamarin.Forms apps, so the manual MAM replacements must still be done.
Once the Remapper is added to your project you will need to perform the MAM equivalent replacements. For
example, FormsAppCompatActivity and FormsApplicationActivity can continue to be used in your application
provided overrides to OnCreate and OnResume are replaced with the MAM equivalents OnMAMCreate and
OnMAMResume respectively.
If the replacements are not made then you may encounter the following compilation errors until you make the
replacements:
Compiler Error CS0239. This error is commonly seen in this form
'MainActivity.OnCreate(Bundle)': cannot override inherited member
'MAMAppCompatActivityBase.OnCreate(Bundle)' because it is sealed
. This is expected because when the Remapper modifies the inheritance of Xamarin classes, certain functions
will be made sealed and a new MAM variant is added to override instead.
Compiler Error CS0507: This error is commonly seen in this form
'MyActivity.OnRequestPermissionsResult()' cannot change access modifiers when overriding 'public' inherited
member ...
. When the Remapper changes the inheritance of some of the Xamarin classes, certain member functions will
be changed to public . If you override any of these functions, you will need to change those the access
modifiers for those overrides to be public as well.
NOTE
The Remapper re-writes a dependency that Visual Studio uses for IntelliSense auto-completion. Therefore, you may need to
reload and rebuild the project when the Remapper is added for IntelliSense to correctly recognize the changes.
Troubleshooting
If you encounter a blank, white screen in your application on launch, then you may need to force the navigation
calls to execute on the main thread.
The Intune SDK Xamarin Bindings do not support apps that are using a cross-platform framework such as
MvvmCross due to conflicts between MvvmCross and Intune MAM classes. While some customers may have
had success with integration after moving their apps to plain Xamarin.Forms, we do not provide explicit
guidance or plugins for app developers using MvvmCross.
Company Portal app
The Intune SDK Xamarin Bindings rely on the presence of the Company Portal Android app on the device to enable
app protection policies. The Company Portal retrieves app protection policies from the Intune service. When the
app initializes, it loads policy and code to enforce that policy from the Company Portal. The user does not need to
be signed in.
NOTE
When the Company Portal app is not on the Android device, an Intune-managed app behaves the same as a normal app
that does not support Intune app protection policies.
For app protection without device enrollment, the user is not required to enroll the device by using the Company
Portal app.
Sample Applications
Sample applications highlighting MAM functionality in Xamarin.Android and Xamarin.Forms apps are available on
GitHub.
Support
If your organization is an existing Intune customer, please work with your Microsoft support representative to
open a support ticket and create an issue on the GitHub issues page. We will help as soon as we can.