Guide du développeur

Les fonctionnalités d'Android dédiées aux entreprises offrent aux organisations une plate-forme de mobilité Android sécurisée, flexible et unifiée, associant appareils, applications et gestion. Les applications Android sont compatibles par défaut avec les fonctionnalités Android dédiées aux entreprises. Toutefois, il existe des fonctionnalités supplémentaires que vous pouvez utiliser pour que votre application fonctionne mieux sur les appareils Android gérés:

  • Compatibilité du profil professionnel : modifiez votre application Android pour qu'elle fonctionne de manière optimale sur un appareil géré.
  • Configurations gérées : modifiez votre application pour permettre aux administrateurs informatiques de spécifier des paramètres personnalisés pour vos applications.
  • Appareils dédiés : optimisez votre application afin de pouvoir la déployer sur un appareil Android en tant que kiosque.
  • Authentification unique (SSO) : simplifiez le processus d'authentification pour les utilisateurs qui se connectent à différentes applications sur leur appareil Android géré.

Conditions préalables

  1. Vous venez de créer une application Android.
  2. Vous êtes prêt à modifier votre application afin qu'elle fonctionne de manière optimale pour les organisations.
  3. Version minimale: Android 5.0 Lollipop Version recommandée : Android 6.0 Marshmallow et versions ultérieures.

Remarque: Les fonctionnalités d'Android dédiées aux entreprises sont intégrées à la plupart des appareils Android 5.0. Toutefois, Android 6.0 et versions ultérieures offrent des fonctionnalités supplémentaires, en particulier en ce qui concerne les appareils dédiés.

Profils professionnels

Vous pouvez gérer les données et les applications d'entreprise d'un utilisateur via un profil professionnel. Un profil professionnel est un profil d'entreprise géré associé au compte utilisateur principal d'un appareil Android. Un profil professionnel isole de façon sécurisée les applications et données professionnelles des données et applications personnelles. Ce profil professionnel se trouve dans un conteneur distinct du profil personnel, contrôlé par l'utilisateur. Ces profils distincts permettent aux organisations de gérer les données d'entreprise qui les intéressent, tout en laissant tout le reste disponible sur l'appareil d'un utilisateur sous le contrôle de ce dernier. Pour en savoir plus sur les bonnes pratiques, consultez le guide sur les profils professionnels. Vous trouverez ci-dessous une présentation de ces bonnes pratiques.

Principales fonctionnalités d'un profil professionnel

  • Profil distinct et sécurisé
  • Google Play d'entreprise pour la distribution d'applications
  • Séparer les applications professionnelles avec badge
  • Fonctionnalités de gestion du profil uniquement contrôlées par un administrateur

Avantages du profil professionnel sur Android 5.0 et versions ultérieures

Remarques concernant les profils professionnels

Empêcher l'échec des intents entre les profils

Il est difficile de savoir quels intents peuvent être croisés d'un profil à un autre et lesquels sont bloqués. La seule façon d'être sûr est d'effectuer des tests. Avant que votre application ne démarre une activité, vous devez vérifier que la requête est résolue en appelant Intent.resolveActivity().

  • Si la valeur null est renvoyée, la requête n'est pas résolue.
  • Si elle renvoie un élément, cela indique que l'intent est résolu et que vous pouvez l'envoyer en toute sécurité.

Remarque: Pour obtenir des instructions détaillées sur les tests, consultez la section Empêcher les intents ayant échoué.

Partager des fichiers entre plusieurs profils

Certains développeurs utilisent des URI pour marquer les chemins d'accès aux fichiers dans Android. Toutefois, comme il existe des systèmes de fichiers distincts lorsqu'un profil professionnel est présent, nous vous recommandons d'effectuer les tâches suivantes:

Utilisation:
URI de contenu
  • Les URI de contenu contiennent l'autorité, le chemin et l'ID d'un fichier spécifique. Vous pouvez le générer à l'aide de la sous-classe FileProvider. En savoir plus
  • Partagez et accordez des autorisations pour accéder à l'URI de contenu à l'aide d'un intent. Les autorisations ne peuvent être transmises au-delà de la limite du profil qu'à l'aide d'intents. Si vous accordez à une autre application des droits d'accès à votre fichier à l'aide de Context.grantUriPermission(), ces droits ne seront accordés qu'à cette application dans le même profil.
Ne pas utiliser:
URI de fichier
  • Contient le chemin absolu du fichier dans l'espace de stockage de l'appareil.
  • Un URI de chemin de fichier valide sur un profil ne l'est pas sur l'autre.
  • Si vous joignez un URI de fichier à un intent, un gestionnaire ne pourra pas accéder au fichier d'un autre profil.

Étapes suivantes: Une fois que votre application est compatible avec les profils gérés, testez-la dans un profil professionnel. Consultez Tester votre application.

Implémenter des configurations gérées

Les configurations gérées sont un ensemble d'instructions qui permettent aux administrateurs informatiques de gérer les appareils mobiles de leurs utilisateurs d'une manière spécifique. Ces instructions sont universelles et fonctionnent avec tous les fournisseurs EMM. Ils permettent aux administrateurs de configurer à distance des applications sur les téléphones de leurs utilisateurs.

Si vous développez des applications pour des entreprises ou des administrations publiques, vous devrez peut-être répondre à des exigences spécifiques à votre secteur. À l'aide de configurations gérées, l'administrateur informatique peut spécifier à distance des paramètres et appliquer des règles pour les applications Android de ses utilisateurs. Exemples:

  • Indiquez si une application peut synchroniser les données via les réseaux mobiles/3G, ou uniquement via le Wi-Fi.
  • Autoriser ou bloquer des URL dans un navigateur Web
  • Configurer les paramètres de messagerie d'une application
  • Activer ou désactiver l'impression
  • Gérer les favoris

Bonnes pratiques pour implémenter des configurations gérées

Le guide Configurer des configurations gérées est la source essentielle d'informations sur la création et le déploiement de configurations gérées. Après avoir examiné cette documentation, consultez les recommandations ci-dessous pour obtenir des conseils supplémentaires.

Lors du premier lancement de l'application

Dès que vous lancez une application, vous pouvez voir si des configurations gérées sont déjà définies pour celle-ci dans onStart() ou onResume(). Vous pouvez également vérifier si votre application est gérée ou non. Par exemple, si getApplicationRestrictions() renvoie:

  • Un ensemble de restrictions spécifiques à une application : vous pouvez configurer les configurations gérées en mode silencieux (sans nécessiter d'entrée utilisateur).
  • Un bundle vide : votre application agit comme si elle n'était pas gérée (par exemple, son comportement dans un profil personnel).
  • Un bundle avec une seule paire clé-valeur avec KEY_RESTRICTIONS_PENDING défini sur "true" : votre application est gérée, mais le DPC n'est pas configuré correctement. Vous devez empêcher cet utilisateur d'accéder à votre application et le rediriger vers son administrateur informatique.

Écouter les modifications apportées aux configurations gérées

Les administrateurs informatiques peuvent à tout moment modifier les configurations gérées et les règles qu'ils souhaitent appliquer à leurs utilisateurs. C'est pourquoi nous vous recommandons de vous assurer que votre application peut accepter les nouvelles restrictions pour votre configuration gérée comme suit:

  • Récupérer les restrictions au lancement : votre application doit appeler getApplicationRestrictions() dans onStart() et onResume(), et la comparer aux anciennes restrictions pour voir si des modifications sont nécessaires.
  • Écouter pendant l'exécution : enregistrez de manière dynamique ACTION_APPLICATION_RESTRICTIONS_CHANGED dans vos activités ou services en cours d'exécution, après avoir vérifié les nouvelles restrictions. Cet intent n'est envoyé qu'aux écouteurs enregistrés de manière dynamique, et non aux écouteurs déclarés dans le fichier manifeste de l'application.
  • Annuler l'enregistrement lorsque l'application n'est pas en cours d'exécution : dans onPause(), vous devez vous désinscrire de la diffusion de ACTION_APPLICATION_RESTRICTIONS_CHANGED.

Appareils dédiés

Les appareils dédiés sont des appareils en mode kiosque utilisés dans un but unique, tels que les affichages de signalétique numérique, les kiosques d'impression de billets ou les caisses enregistreuses.

Lorsqu'un appareil Android est configuré en tant qu'appareil dédié, l'utilisateur voit une application verrouillée à l'écran sans bouton "Accueil" ou "Applis récentes" pour quitter l'application. Les appareils dédiés peuvent également être configurés pour afficher un ensemble d'applications, comme un kiosque de bibliothèque avec une application pour le catalogue de la bibliothèque et un navigateur Web.

Pour obtenir des instructions, consultez Appareil dédié.

Configurer l'authentification unique avec les onglets personnalisés Chrome

Les utilisateurs professionnels ont souvent plusieurs applications sur leur appareil et ils préfèrent se connecter une seule fois pour accéder à toutes leurs applications professionnelles. En règle générale, les utilisateurs se connectent via une WebView. Toutefois, cette configuration n'est pas idéale pour plusieurs raisons:

  1. Les utilisateurs doivent souvent se connecter plusieurs fois avec les mêmes identifiants. Souvent, la solution WebView ne fournit pas une véritable expérience d'authentification unique (SSO).
  2. Il peut y avoir des risques de sécurité, comme des applications malveillantes qui inspectent des cookies ou injectent du code JavaScript® pour accéder aux identifiants d'un utilisateur. Même les développeurs de confiance sont à risque s'ils s'appuient sur des SDK tiers potentiellement malveillants.

Une solution à ces deux problèmes consiste à authentifier les utilisateurs à l'aide des onglets personnalisés du navigateur au lieu de WebView. Cela garantit que l'authentification:

  • Se déroule dans un contexte sécurisé (le navigateur du système) où l'application hôte ne peut pas inspecter le contenu.
  • Il dispose d'un état de cookie partagé, ce qui garantit que l'utilisateur ne doit se connecter qu'une seule fois.

Exigences

Les onglets personnalisés sont compatibles à partir du niveau d'API 15 (Android 4.0.3). Pour utiliser les onglets personnalisés, vous devez disposer d'un navigateur compatible, tel que Chrome. Chrome 45 et versions ultérieures implémentent cette fonctionnalité en tant qu'onglets personnalisés Chrome.

Comment implémenter l'authentification unique avec les onglets personnalisés ?

Google a publié en Open Source une bibliothèque cliente OAuth qui utilise des onglets personnalisés, ce qui contribue au groupe de travail OpenID Connect de l'OpenID Foundation. Pour configurer les onglets personnalisés pour l'authentification unique avec la bibliothèque AppAuth, consultez la documentation et l'exemple de code sur GitHub.

Tester votre application

Une fois votre application développée, vous devrez la tester dans un profil professionnel et sur un appareil entièrement géré. Pour cela, consultez les instructions ci-dessous.

Utiliser l'outil de test DPC pour tester votre application Android

L'application Test DPC aide les développeurs Android à tester leurs applications dans un environnement d'entreprise. L'outil DPC de test vous permet de définir des règles EMM ou des valeurs de configuration gérée sur un appareil, comme si une organisation gérait l'appareil à l'aide d'un EMM. Pour installer le DPC de test sur un appareil, choisissez l'une des méthodes suivantes:

  • Installez le DPC de test depuis Google Play.
  • Compilez à partir de la source sur GitHub.

Pour en savoir plus sur la configuration de la fonctionnalité Test DPC, consultez les instructions ci-dessous et le guide de l'utilisateur du DPC de test.

Créer un profil professionnel

Pour tester votre application dans un profil professionnel, vous devez d'abord provisionner un profil professionnel sur l'appareil à l'aide de l'application Test DPC, comme suit:

  1. Installez le DPC de test sur l'appareil.
  2. Dans le lanceur d'applications Android, appuyez sur l'icône de l'application Configurer Test DPC.
  3. Suivez les instructions à l'écran.
  4. Installez votre application sur l'appareil et testez-la pour voir comment elle s'exécute dans le profil professionnel.

Android crée un profil professionnel et y installe une copie du DPC Test. Vous utilisez cette instance de Test DPC de test portant un badge de travail pour définir des règles et des configurations gérées dans le profil professionnel. Pour en savoir plus sur la configuration d'un profil professionnel à des fins de développement, consultez le guide du développeur Profils professionnels.

Provisionner un appareil entièrement géré

Les organisations utilisent des appareils entièrement gérés, car ils peuvent appliquer une gamme complète de règles de gestion sur les appareils. Pour provisionner un appareil entièrement géré, procédez comme suit:

  1. Installez le DPC de test sur l'appareil.
  2. Vérifiez qu'aucun autre utilisateur ni profil professionnel n'est présent sur l'appareil.
  3. Vérifiez qu'aucun compte n'est configuré sur l'appareil.
  4. Exécutez la commande Android Debug Bridge (adb) suivante dans votre terminal :
    adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiver
  5. Une fois que vous avez terminé de provisionner le propriétaire de l'appareil, vous pouvez tester votre application sur cet appareil. Vous devez tester spécifiquement le fonctionnement des configurations gérées et des intents sur cet appareil.

Vous pouvez également utiliser d'autres méthodes de provisionnement. Consultez le Guide utilisateur de l'outil de test DPC. Pour savoir comment les administrateurs informatiques enregistrent et provisionnent généralement des appareils Android, consultez Provisionner des appareils.

Tests de bout en bout

Une fois que vous avez terminé de tester votre application dans les environnements ci-dessus, vous souhaiterez probablement tester votre application dans un environnement de production de bout en bout. Ce processus comprend les étapes qu'un client doit suivre pour déployer votre application dans son organisation, y compris les suivantes:

  • Distribution d'applications via Play
  • Configuration gérée côté serveur
  • Contrôle des règles de profil côté serveur

Vous devez accéder à une console EMM pour effectuer les tests de bout en bout. Le moyen le plus simple d'en obtenir une consiste à demander une console de test à votre EMM. Une fois que vous y avez accès, effectuez les tâches suivantes:

  1. Créez une version de test de votre application avec un nouvel ApplicationId.
  2. Revendiquez un domaine Google géré et associez-le à votre EMM. Si vous disposez déjà d'un domaine de test lié à un EMM, vous devrez peut-être le dissocier pour le tester avec l'EMM de votre choix. Veuillez contacter votre EMM pour connaître la procédure de dissociation spécifique.
  3. Publiez votre application sur la chaîne privée pour son domaine Google géré.
  4. Utilisez la console et l'application EMM pour :
    1. Configurer des appareils professionnels
    2. Distribuez votre application.
    3. Définissez la configuration gérée.
    4. Définir des règles relatives aux appareils

Ce processus varie en fonction de votre EMM. Pour en savoir plus, veuillez consulter la documentation de votre fournisseur EMM. Félicitations ! Vous avez suivi ces étapes et vérifié que votre application fonctionne bien pour les utilisateurs professionnels.