The Android Management API is a self-contained API that eliminates the need for
you to create your own Device Policy Controller (DPC). Instead, managed devices
use Android Device Policy to enforce app and device management policies
sent through the API.
Overview of authentication methods
You can choose one of the following authentication methods for calling the
Android Management API and the Google Play EMM API:
Service account configured using Cloud IAM (recommended), the same way as
new partners.
Programmatically created ESAs, the old approach.
You can change authentication methods at any time, for both new and existing
customers, and the two methods can be used simultaneously.
Use a service account configured using Cloud IAM (recommended)
With this authentication method, you call the APIs with a unique service account
registered with your Cloud project using Cloud IAM.
Advantages
You can create enterprise bindings using either of the two APIs.
You can monitor and adjust API quotas (for both APIs).
Limitations
This method is incompatible with on-premise deployments because the service
account is unique for the EMM.
The Play EMM API notifications are unavailable with this method
(notifications are used by very few EMM partners).
Setup
To use this authentication method you need to set up your Cloud project and
service account:
Enter the required information, including your associated DPC identity
and Cloud Project ID.
Submit the form and wait for confirmation from Google that your project
has been registered.
Follow the instructions for creating a service account. You can change
your service account at any time as long as it has the role
Android Management User on the Cloud project configured through the
Android Enterprise EMM Provider community.
Create an enterprise binding
To create an enterprise binding when using a service account configured using
Cloud IAM, you can use either the Android Management API or the Google Play EMM
API:
If using the Android Management API, call enterprises.create and specify
the Cloud project configured earlier.
If using the Google Play EMM API, use your MSA (which may be the same
service account as the one configured above) to call
enterprises.generateSignupUrl and enterprises.completeSignup.
Note that enterprise bindings created using the Android Management API can never
be managed using a programmatically created ESA, and should always be managed
using a service account configured using Cloud IAM. Enterprise bindings created
using the Google Play EMM API can be managed using any authentication methods.
Use programmatically created ESAs
Limitations
You cannot monitor and adjust API quotas.
Setup
To use this authentication method you need to set up your Cloud project:
To create an enterprise binding when using programmatically created ESAs, you
need to use the Google Play EMM API.
Note that enterprise bindings created using the Android Management API can never
be managed with a programmatically created ESA.
Migrate from programmatically created ESAs to Cloud IAM
To migrate from using programmatically created ESAs to using a service account
configured using Cloud IAM, proceed in the following order:
Follow the instructions to
create and set up your service account. You can
alternatively reuse your existing MSA instead of creating a new service
account, if doing so ensure that you have registered your Cloud project in
the community and granted the role Android Management User to your MSA.
Use this new service account to call the Play EMM API instead of the
programmatically created ESAs.
Stop programmatically creating ESAs for new bindings. This means you should
no longer call the methods enterprises.getServiceAccount and
enterprises.setAccount of the Google Play EMM API.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-11-15 UTC."],[[["\u003cp\u003eEMMs can utilize the Android Management API to manage work profiles and fully managed devices without needing a custom DPC.\u003c/p\u003e\n"],["\u003cp\u003eThe API supports authentication via service account (recommended) or programmatically created ESAs, offering flexibility for integration.\u003c/p\u003e\n"],["\u003cp\u003eService account authentication provides advantages like enterprise binding creation and API quota management, but has limitations for on-premise deployments and Play EMM API notifications.\u003c/p\u003e\n"],["\u003cp\u003eProgrammatically created ESAs have limitations regarding API quota management and are incompatible with enterprise binding creation using the Android Management API.\u003c/p\u003e\n"],["\u003cp\u003eMigration from ESAs to service accounts involves setting up a service account, using it for Play EMM API calls, and discontinuing ESA creation for new bindings.\u003c/p\u003e\n"]]],["EMMs using the Google Play EMM API can leverage the Android Management API for work profiles on various devices. Authentication methods include using a service account with Cloud IAM (recommended) or programmatically created ESAs. Service accounts offer advantages like enterprise binding creation with either API and quota monitoring, while ESAs don't offer quota monitoring. Migration from ESAs to Cloud IAM involves setting up a service account and utilizing it with the Play EMM API.\n"],null,["# Guide for existing EMMs\n\nEMMs already using the Google Play EMM API can use the Android\nManagement API to support the following solution sets:\n\n- [Work profile on personally-owned device](/android/work/requirements/work-profile)\n- [Work profile on company-owned device](/android/work/requirements/work-profile-corporate)\n- [Fully managed device](/android/work/requirements/fully-managed-device)\n- [Dedicated device](/android/work/requirements/dedicated-device)\n\nThe Android Management API is a self-contained API that eliminates the need for\nyou to create your own Device Policy Controller (DPC). Instead, managed devices\nuse Android Device Policy to enforce app and device management policies\nsent through the API.\n\nOverview of authentication methods\n----------------------------------\n\nYou can choose one of the following authentication methods for calling the\nAndroid Management API and the Google Play EMM API:\n\n- Service account configured using Cloud IAM (recommended), the same way as\n new partners.\n\n- Programmatically created ESAs, the old approach.\n\nYou can change authentication methods at any time, for both new and existing\ncustomers, and the two methods can be used simultaneously.\n\nUse a service account configured using Cloud IAM (recommended)\n--------------------------------------------------------------\n\nWith this authentication method, you call the APIs with a unique service account\nregistered with your Cloud project using Cloud IAM.\n\n### Advantages\n\n- You can create enterprise bindings using either of the two APIs.\n- You can monitor and adjust API quotas (for both APIs).\n\n### Limitations\n\n- This method is incompatible with on-premise deployments because the service account is unique for the EMM.\n- The [Play EMM API notifications](https://developers.google.com/android/work/play/emm-api/about-notifications) are unavailable with this method (notifications are used by very few EMM partners).\n\n### Setup\n\nTo use this authentication method you need to set up your Cloud project and\nservice account:\n\n1. Set up your Cloud project:\n\n 1. Select or create a project.\n\n [Go to the Projects Page](https://console.cloud.google.com/project)\n 2. Sign into the [Android Enterprise EMM Provider community](https://emm.androidenterprise.dev/s/). You must\n be a registered EMM to have access to this site.\n\n 3. Open the [EMM product modification form](https://emm.androidenterprise.dev/s/emm-product-modification-google-play).\n\n 4. Enter the required information, including your associated DPC identity\n and Cloud Project ID.\n\n 5. Submit the form and wait for confirmation from Google that your project\n has been registered.\n\n2. Follow the instructions for [creating a service account](https://developers.google.com/android/management/service-account). You can change\n your service account at any time as long as it has the role\n **Android Management User** on the Cloud project configured through the\n Android Enterprise EMM Provider community.\n\n### Create an enterprise binding\n\nTo create an enterprise binding when using a service account configured using\nCloud IAM, you can use either the Android Management API or the Google Play EMM\nAPI:\n\n- If using the Android Management API, call `enterprises.create` and specify\n the Cloud project configured earlier.\n\n- If using the Google Play EMM API, **use your MSA** (which may be the same\n service account as the one configured above) to call\n `enterprises.generateSignupUrl` and `enterprises.completeSignup`.\n\nNote that enterprise bindings created using the Android Management API can never\nbe managed using a programmatically created ESA, and should always be managed\nusing a service account configured using Cloud IAM. Enterprise bindings created\nusing the Google Play EMM API can be managed using any authentication methods.\n\nUse programmatically created ESAs\n---------------------------------\n\n### Limitations\n\n- You cannot monitor and adjust API quotas.\n\n### Setup\n\nTo use this authentication method you need to set up your Cloud project:\n\n1. Select or create a project.\n\n [Go to the Projects Page](https://console.cloud.google.com/project)\n2. Sign into the [Android Enterprise EMM Provider community](https://emm.androidenterprise.dev/s/). You must be a\n registered EMM to have access to this site.\n\n3. Open the\n [EMM product modification form](https://emm.androidenterprise.dev/s/emm-product-modification-google-play).\n\n4. Enter the required information, including your associated DPC identity and\n Cloud Project ID.\n\n5. Submit the form and wait for confirmation from Google that your project has\n been registered.\n\nUse this Cloud project to [set up Pub/Sub notifications](https://developers.google.com/android/management/notifications#2_create_a_topic).\n\n### Create an enterprise binding\n\nTo create an enterprise binding when using programmatically created ESAs, you\nneed to use the Google Play EMM API.\n\nNote that enterprise bindings created using the Android Management API can never\nbe managed with a programmatically created ESA.\n\nMigrate from programmatically created ESAs to Cloud IAM\n-------------------------------------------------------\n\nTo migrate from using programmatically created ESAs to using a service account\nconfigured using Cloud IAM, proceed in the following order:\n\n1. Follow the instructions to\n [create and set up your service account](#cloud-iam-setup). You can\n alternatively reuse your existing MSA instead of creating a new service\n account, if doing so ensure that you have registered your Cloud project in\n the community and granted the role **Android Management User** to your MSA.\n\n2. Use this new service account to call the Play EMM API instead of the\n programmatically created ESAs.\n\n3. Stop programmatically creating ESAs for new bindings. This means you should\n no longer call the methods `enterprises.getServiceAccount` and\n `enterprises.setAccount` of the Google Play EMM API."]]