Ce guide explique comment développer un outil de contrôle des règles relatives aux appareils (DPC) pour lors d'un déploiement Android en entreprise. Une application DPC, précédemment connue en tant qu'outil de contrôle des règles professionnelles, contrôle les règles locales relatives aux appareils et le système applications sur les appareils.
<ph type="x-smartling-placeholder">À propos des DPC
Lors d'un déploiement Android en entreprise, l'entreprise conserve le contrôle divers aspects des appareils des utilisateurs, tels que l'isolement des données professionnelles des informations des utilisateurs données personnelles, la préconfiguration des applications approuvées pour l'environnement, ou la désactivation de certaines fonctionnalités de l'appareil (par exemple, l'appareil photo).
En tant que EMM, vous développez une application DPC qui peut être utilisée par vos clients dans à votre console EMM Google Cloud. Votre client déploie l'outil DPC sur les appareils des utilisateurs qu'il gère. L'outil DPC fait office de passerelle entre votre console EMM (et votre serveur) et l'appareil. Un administrateur utilise la console EMM pour effectuer diverses tâches, y compris la configuration des paramètres et des applications de l’appareil.
L'outil DPC crée et gère le profil professionnel sur l'appareil où il est installé. Le profil professionnel chiffre les informations professionnelles et les sépare des utilisateurs vos applications et données personnelles. Avant de créer le profil professionnel, le DPC peut également provisionner un compte Google Play d'entreprise à utiliser sur l'appareil.
Ce guide vous explique comment développer un DPC capable de créer et de gérer des profils professionnels.
Bibliothèque de support DPC pour les fournisseurs EMM
La bibliothèque Support DPC pour les EMM comprend des classes utilitaires et d'assistance qui faciliter le provisionnement et la gestion des appareils Android dans une entreprise environnement. Cette bibliothèque vous permet de profiter des fonctionnalités importantes de votre Applications DPC:
- Assistance pour le provisionnement des comptes Google Play d'entreprise: Provisionnement géré les comptes Google Play de l'application DPC nécessitent que Google Play et Google Les applis liées aux services Play respectent la configuration minimale requise concernant la version. Toutefois, la mise à jour les applications peuvent être complexes. La bibliothèque de support DPC se charge de mettre à jour ces et assure la compatibilité avec les futures mises à jour du Processus de provisionnement des comptes Play. Voir les comptes Google Play d'entreprise assistance en matière de provisionnement pour plus de détails.
- Compatibilité avec les configurations gérées: L'utilisation de l'API Play EMM pour gérer les configurations gérées pour les applications approuvées est le plus simple pour implémenter des configurations gérées sur votre DPC. Le support DPC La bibliothèque vous permet de déléguer à Google Play la tâche d'appliquer de configuration (anciennement "restrictions d'application") telles qu'elles sont définies par l'administrateur à l'aide de votre console. L'utilisation de l'API Play EMM pour gérer les configurations gérées permet la configuration de l'application à appliquer de manière atomique pendant l'installation. Voir Appliquer des configurations gérées pour les applications professionnelles. votre DPC.
Suivez les étapes ci-dessous pour télécharger la bibliothèque. Les tâches détaillées dans ce guide supposer l’utilisation de la bibliothèque Support DPC.
Télécharger la bibliothèque Support DPC
Pour utiliser la bibliothèque d'assistance DPC, téléchargez-la à partir de la communauté des fournisseurs EMM Android Enterprise. Vous devez ajouter la bibliothèque à votre fichier build.gradle et vous occuper des autres dépendances lorsque vous créez votre application DPC. Par exemple, la bibliothèque requiert la version 11.4.0 <ph type="x-smartling-placeholder"></ph> Bibliothèque cliente des services Google Play pour l'authentification
- Ajoutez la bibliothèque au fichier
build.gradle
:
Groovy
implementation(name:'dpcsupport-yyyymmdd', ext:'aar')
Kotlin
implementation(name = "dpcsupport-yyyymmdd", ext = "aar")
- Ajouter la version 11.4.0
Bibliothèque cliente d'authentification des services Google Play dans le fichier build.gradle:
Groovy
implementation 'com.google.android.gms:play-services-auth:11.4.0'
Kotlin
implementation("com.google.android.gms:play-services-auth:11.4.0")
L'exécution de la bibliothèque nécessite certaines autorisations. Vous devez donc les ajouter le fichier manifeste de votre application DPC lorsque vous l'importez sur Google Play:
<uses-permission android:name= "android.permission.DOWNLOAD_WITHOUT_NOTIFICATION"/> <uses-permission android:name= "android.permission.GET_ACCOUNTS"/> <uses-permission android:name= "android.permission.MANAGE_ACCOUNTS"/> <uses-permission android:name= "android.permission.WRITE_SYNC_SETTINGS"/> <uses-permission android:name= "com.google.android.providers.gsf.permission.READ_GSERVICES"/>
En plus de ces étapes préliminaires de configuration et de déploiement, vous devez également initialiser la fonctionnalité de bibliothèque spécifique dans votre code DPC, en fonction du que vous souhaitez implémenter. Pour plus d'informations, reportez-vous aux ci-dessous.
Créer un DPC
Créez votre DPC sur le modèle existant utilisé pour les applications d'administration des appareils.
Plus précisément, votre application doit sous-classer
DeviceAdminReceiver
(une classe de android.app.admin
package) comme décrit dans la section
<ph type="x-smartling-placeholder"></ph>
Device Administration (Administration de l'appareil).
Créer un profil professionnel
Pour voir un exemple montrant comment créer un profil professionnel de base, consultez <ph type="x-smartling-placeholder"></ph> BasicManagedProfile sur GitHub.
Pour créer un profil professionnel sur un appareil qui dispose déjà d'un profil personnel, procédez comme suit :
commencez par vérifier si l'appareil est compatible avec les profils professionnels.
l'existence
Fonctionnalité système FEATURE_MANAGED_USERS
:
Kotlin
if (!packageManager.hasSystemFeature(PackageManager.FEATURE_MANAGED_USERS)) { // This device does not support work profiles! }
Java
PackageManager pm = getPackageManager(); if (!pm.hasSystemFeature(PackageManager.FEATURE_MANAGED_USERS)) { // This device does not support work profiles! }
Si l'appareil est compatible avec les profils professionnels, créez un profil professionnel en envoyant un intent avec un ACTION_PROVISION_MANAGED_PROFILE action. Dans certains documents, le profil géré est terme générique qui signifie la même chose que profil professionnel dans le contexte d'Android en entreprise). Inclure le nom du package d'administration de l'appareil en plus:
Kotlin
val provisioningActivity = getActivity() // You'll need the package name for the DPC app. val myDPCPackageName = "com.example.myDPCApp" // Set up the provisioning intent val adminComponent = ComponentName(provisioningActivity.applicationContext, MyAdminReceiver::class.java) provisioningIntent.putExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME, adminComponent.flattenToString()) if (provisioningIntent.resolveActivity(provisioningActivity.packageManager) == null) { // No handler for intent! Can't provision this device. // Show an error message and cancel. } else { // REQUEST_PROVISION_MANAGED_PROFILE is defined // to be a suitable request code startActivityForResult(provisioningIntent, REQUEST_PROVISION_MANAGED_PROFILE) provisioningActivity.finish() }
Java
Activity provisioningActivity = getActivity(); // You'll need the package name for the DPC app. String myDPCPackageName = "com.example.myDPCApp"; // Set up the provisioning intent Intent provisioningIntent = new Intent("android.app.action.PROVISION_MANAGED_PROFILE"); ComponentName adminComponent = new ComponentName(provisioningActivity.getApplicationContext(), MyAdminReceiver.class); provisioningIntent.putExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME, adminComponent.flattenToString()); if (provisioningIntent.resolveActivity(provisioningActivity.getPackageManager()) == null) { // No handler for intent! Can't provision this device. // Show an error message and cancel. } else { // REQUEST_PROVISION_MANAGED_PROFILE is defined // to be a suitable request code startActivityForResult(provisioningIntent, REQUEST_PROVISION_MANAGED_PROFILE); provisioningActivity.finish(); }
Le système répond à cet intent en procédant comme suit:
- Vérifie que l'appareil est chiffré. Si ce n'est pas le cas, un message l'utilisateur pour chiffrer l'appareil avant de continuer.
- Permet de créer un profil professionnel.
- Supprime les applications non requises du profil professionnel.
- Il copie l'application DPC dans le profil professionnel et définit le DPC lui-même comme le propriétaire de la fiche.
Remplacer
onActivityResult()
par
vérifiez si le provisionnement a bien été effectué:
Kotlin
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) { // Check if this is the result of the provisioning activity if (requestCode == REQUEST_PROVISION_MANAGED_PROFILE) { // If provisioning was successful, the result code is // Activity.RESULT_OK if (resultCode == Activity.RESULT_OK) { // Work profile created and provisioned. } else { // Provisioning failed. } return } else { // This is the result of some other activity. Call the superclass. super.onActivityResult(requestCode, resultCode, data) } }
Java
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { // Check if this is the result of the provisioning activity if (requestCode == REQUEST_PROVISION_MANAGED_PROFILE) { // If provisioning was successful, the result code is // Activity.RESULT_OK if (resultCode == Activity.RESULT_OK) { // Work profile created and provisioned. } else { // Provisioning failed. } return; } else { // This is the result of some other activity. Call the superclass. super.onActivityResult(requestCode, resultCode, data); } }
Terminer l'activation du profil professionnel
Une fois le profil provisionné, le système appelle le DPC.
la méthode
DeviceAdminReceiver.onProfileProvisioningComplete()
de l'application. Remplacement
cette méthode de rappel pour terminer l'activation du profil professionnel.
DeviceAdminReceiver.onProfileProvisioningComplete()
standard
effectue les opérations suivantes:
- Vérifie que l'appareil respecte les règles EMM relatives aux appareils, décrites dans la section Configurer des règles relatives aux appareils.
- Active les applications système créées par l'administrateur
disponible dans le profil professionnel à l'aide de
DevicePolicyManager.enableSystemApp()
. - Si l'appareil utilise Google Play d'entreprise, le compte approprié est ajouté à
le profil professionnel afin que les applications approuvées puissent être installées sur l'appareil.
<ph type="x-smartling-placeholder">- </ph>
- Comptes Google Play d'entreprise: consultez l'article S'assurer que le fonctionnement pour les comptes Google Play d'entreprise et Ajouter un compte Google Play d'entreprise pour en savoir plus.
- Comptes Google: utilisez
AccountManager.addAccount()
.
Activer le profil professionnel
Une fois ces tâches terminées, appelez la fonction
Méthode
setProfileEnabled()
pour activer le profil professionnel:
Kotlin
// Get the device policy manager val myDevicePolicyMgr = getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager val componentName = myDeviceAdminReceiver.getComponentName(this) // Set the name for the newly created work profile. myDevicePolicyMgr.setProfileName(componentName, "My New Work Profile") // ...and enable the profile myDevicePolicyMgr.setProfileEnabled(componentName)
Java
// Get the device policy manager DevicePolicyManager myDevicePolicyMgr = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); ComponentName componentName = myDeviceAdminReceiver.getComponentName(this); // Set the name for the newly created work profile. myDevicePolicyMgr.setProfileName(componentName, "My New Work Profile"); // ...and enable the profile myDevicePolicyMgr.setProfileEnabled(componentName);
Configurer des règles relatives aux appareils
L'application DPC applique les règles relatives aux appareils définies par un administrateur pour répondre les exigences et les contraintes de l'organisation. Par exemple, une stratégie de sécurité peut exiger que les appareils se verrouillent après un certain nombre de tentatives infructueuses de saisie du mot de passe. Le DPC interroge la console EMM pour connaître les règles actuelles, puis les applique à l'aide de l'onglet Appareil API Administration.
Pour savoir comment appliquer des règles relatives aux appareils, consultez <ph type="x-smartling-placeholder"></ph> Règles.
Appliquer des configurations gérées aux applis professionnelles
Les configurations gérées vous permettent d'offrir à vos clients la possibilité préconfigurer les applications dont le déploiement a été approuvé, et les mettre à jour des applications lorsque la configuration doit être modifiée. Configurer une application avant permet de s'assurer que les règles de sécurité et les autres règles de l'organisation sont respectées lors de l'installation de l'application sur l'appareil cible.
Les fonctionnalités de l'application sont définies par le développeur de l'application dans un schéma XML (les schéma de configurations gérées) qui accompagne l'application lors de son importation dans Google. Play (pour les développeurs d'applications, consultez Configurer des configurations gérées pour en savoir plus).
Vous récupérez ce schéma à partir de l'application afin de le présenter aux administrateurs de vos clients. de votre console EMM, fournissez une interface utilisateur dans laquelle les différentes options définies dans l'affichage du schéma et permettent aux administrateurs de préconfigurer les paramètres de l'application. La configuration gérée qui en résulte, définie par l'administrateur, est généralement stockées sur le serveur EMM, qui utilise ensuite API Play EMM à définir Configurations gérées pour l'appareil ou Managedconfigurationsforuser. Voir Configurations gérées via Play pour en savoir plus.
Les configurations gérées peuvent être appliquées à l'application à l'aide de l'API Play EMM (approche recommandée) ou directement depuis l'outil de contrôle des règles (DPC) (décrit dans la section Appliquer les configurations gérées directement auprès de la DPC). Utiliser l'API Play EMM présente plusieurs avantages, dont une mise en œuvre facile, car vous pouvez utiliser Bibliothèque de support DPC pour simplifier les tâches DPC. En outre, l'API Play EMM:
- Définit la configuration de manière atomique lorsqu'une nouvelle application est installée, afin que l'application soit prête la première fois que l'utilisateur la lance.
- Permet de gérer les configurations par utilisateur et d'éviter ainsi le provisionnement de la surveillance pour chaque appareil.
Appliquez les configurations gérées à l'aide du API Play EMM
Afin d'utiliser l'API Play EMM pour les configurations gérées, le DPC doit autoriser les Google Play pour définir des configurations. La bibliothèque de support DPC s'occupe de tout. en transférant la configuration envoyée par Google Play par proxy.
Pour utiliser l'appli Play API EMM, téléchargez la bibliothèque Support DPC puis activez la prise en charge des configurations gérées dans votre DPC.
Activer la prise en charge des configurations gérées dans votre DPC
Importez cette classe dans votre DPC:
com.google.android.apps.work.dpcsupport.ManagedConfigurationsSupport
Initialiser la bibliothèque de configurations gérées Dans cet exemple, "admin" correspond à ComponentName de DeviceAdminReceiver.
Kotlin
var managedConfigurationsSupport = ManagedConfigurationsSupport(context, admin)
Java
ManagedConfigurationsSupport managedConfigurationsSupport = new ManagedConfigurationsSupport(context, admin);
Activez les configurations gérées:
Kotlin
managedConfigurationsSupport.enableManagedConfigurations()
Java
managedConfigurationsSupport.enableManagedConfigurations();
Une fois cette bibliothèque initialisée dans votre DPC, vous pouvez utiliser le API Google Play EMM dans votre fournisseur EMM console et serveur pour appliquer les configurations gérées aux applications approuvées, coder ces tâches directement dans le DPC. Voir <ph type="x-smartling-placeholder"></ph> Configurations gérées via Play pour en savoir plus.
Appliquer des configurations gérées directement à partir de la DPC
Pour modifier les paramètres de configuration d'une application directement à partir du DPC, appelez la méthode Méthode DevicePolicyManager.setApplicationRestrictions() et transmettre pour les paramètres DeviceAdminReceiver, le nom du package de l'application cible et le Bundle comprenant la configuration gérée de l'application telle qu'elle est définie par l'administrateur. Voir Comment votre Les outils DPC et la console EMM interagissent et consultez Configurer des configurations gérées pour en savoir plus. Toutefois, notez que cette approche alternative à l'application des règles gérées ne sont pas recommandées pour les déploiements de comptes Google Play d'entreprise.
Gestion des comptes Google Play d'entreprise assistance
La bibliothèque Support DPC inclut des ressources pour le provisionnement Comptes Google Play d'entreprise. Pour utiliser cette prise en charge, vous devez d'abord initialiser bibliothèque. Ensuite, vous pouvez vérifier que environnement de travail et ajoutez un compte Google Play d'entreprise.
Initialiser les comptes Google Play d'entreprise prise en charge dans votre DPC
Importez cette classe dans votre DPC:
com.google.android.apps.work.dpcsupport.AndroidForWorkAccountSupport
Initialiser la bibliothèque de compatibilité de provisionnement Dans cet exemple, "admin" est
le ComponentName
de
DeviceAdminReceiver
.
Kotlin
var androidForWorkAccountSupport = AndroidForWorkAccountSupport(context, admin)
Java
AndroidForWorkAccountSupport androidForWorkAccountSupport = new AndroidForWorkAccountSupport(context, admin);
Veiller à ce que l’environnement de travail Comptes Google Play d'entreprise
Une fois que l'outil DPC a provisionné un appareil en mode propriétaire du profil (ACTION_PROVISION_MANAGED_PROFILE
) ou un appareil
mode propriétaire (ACTION_PROVISION_MANAGED_DEVICE
), assurez-vous que l'appareil est compatible avec les comptes Google Play d'entreprise en appelant la méthode suivante:
Kotlin
androidForWorkAccountSupport.ensureWorkingEnvironment(callback)
Java
androidForWorkAccountSupport.ensureWorkingEnvironment(callback);
Le rappel signale la réussite ou l'échec de ce processus. Lorsque le rappel s'affiche, vous pouvez ajouter un compte Google Play d'entreprise. Si le rappel signale une erreur, demandez à l'utilisateur de vérifier que L'appareil dispose d'une connexion réseau (en cas d'échec du téléchargement, par exemple). Dans d'autres les cas de figure, signalez-le à Google.
Kotlin
object : WorkingEnvironmentCallback() { override fun onSuccess() { // Can now provision the managed Google Play Account } override fun onFailure(error: Error) { // Notify user, handle error (check network connection) } }
Java
new WorkingEnvironmentCallback() { @Override public void onSuccess() { // Can now provision the managed Google Play Account } @Override public void onFailure(Error error) { // Notify user, handle error (check network connection) } }
Ajouter un compte Google Play d'entreprise
AccountManager
du framework Android
peuvent ajouter un compte Google Play d'entreprise à un appareil. Pour simplifier les interactions avec
AccountManager
, utilisez la fonction d'assistance (illustrée dans l'exemple ci-dessous).
de la bibliothèque Support DPC. La fonction
gère le jeton renvoyé par le serveur Google Play et facilite le provisionnement
le compte Google Play d'entreprise. La fonction est renvoyée lorsque le compte Google Play d'entreprise
L'état du compte est valide:
Kotlin
androidForWorkAccountSupport.addAndroidForWorkAccount(token, accountAddedCallback)
Java
androidForWorkAccountSupport.addAndroidForWorkAccount(token, accountAddedCallback);
token
: jeton d'authentification utilisateur généré par l'API AppelUsers.generateAuthenticationToken()
de l'API EMM Play.accountAddedCallback
: renvoie le compte Google Play d'entreprise qui a bien été ajouté à l'appareil. Ce rappel doit inclureonAccountReady()
etonFailure()
.
Kotlin
val workAccountAddedCallback = object : WorkAccountAddedCallback() { override fun onAccountReady(account: Account, deviceHint: String) { // Device account was successfully added to the device // and is ready to be used. } override fun onFailure(error: Error) { // The account was not successfully added. Check that the token // provided was valid (it expires after a certain period of time). } }
Java
WorkAccountAddedCallback workAccountAddedCallback = new WorkAccountAddedCallback() { @Override public void onAccountReady(Account account, String deviceHint) { // Device account was successfully added to the device // and is ready to be used. } @Override public void onFailure(Error error) { // The account was not successfully added. Check that the token // provided was valid (it expires after a certain period of time). } };
Documentation associée
- Pour en savoir plus sur l'API Device Administration, consultez Appareil Administration :
- Pour en savoir plus sur les méthodes de provisionnement Android Enterprise, consultez Provisionnez des appareils dans le Guide du développeur Android Enterprise
- Pour obtenir un exemple GitHub qui montre comment créer un profil professionnel de base, voir BasicManagedProfile.
- Pour un exemple GitHub qui montre comment définir des configurations sur d'autres applications en tant que propriétaire du profil, consultez les AppRestrictionEnforcer.