Dans cet article, nous avons décidé de donner des instructions sur la façon de rendre votre application Android configurable si vous êtes son développeur. Autrement dit: ce qui doit exactement être changé dans votre application pour répondre aux besoins du public de l'entreprise. Nous avons également décrit tout le travail de l'administrateur en utilisant la plateforme Knox Manage à titre d'exemple .
Formulation du problème
Dans un entretien avec des collègues du SRI SOKB (Scientific and Testing Institute for Integrated Security Systems), nous avons convenu qu'une infrastructure mobile d'entreprise moderne ne pouvait plus être imaginée sans un système de contrôle centralisé.
Par exemple, dans la compagnie ferroviaire suisse CFF, chacun des 30000 employés reçoitun téléphone personnalisé pour les tâches professionnelles - il n'y a pas seulement du courrier et un messager, mais aussi, par exemple, l'envoi de messages sur les défauts. Confier à un employé la tâche de mettre en place toute cette périphérie est non seulement coûteux en heures de travail, mais est également semé d'embûches dans le processus. Et dans certains cas - par exemple, en cas de dysfonctionnement - il est plus facile de reflasher complètement et de réinitialiser le téléphone que de rechercher une erreur. Par conséquent, une solution correctement choisie pour une application d'entreprise facilite grandement la vie d'un administrateur informatique d'une entreprise.
Habituellement, lors de l'introduction de systèmes centralisés, nous sommes confrontés à deux tâches:
- . , : Knox Mobile Enrollment, Android Zero Touch Android Enterprise Enrollment (EMM-, QR- .)
- . , ,
Comme solution au deuxième problème, il y a le mécanisme AppConfig , ce n'est pas une initiative d'une seule entreprise, mais la convention actuelle de plusieurs fournisseurs. Son essence est brièvement la suivante: le développeur implémente dans son application mobile - mail, messager, client vidéo, etc. - prise en charge des configurations gérées , personnalisées pour un utilisateur spécifique. Le développeur décide quels paramètres de l'application peuvent être définis de l'extérieur (identifiant, nom d'utilisateur, adresse du serveur). Via Google Play d'entreprise, ces paramètres sont transmis au système EMM. Et il vous permet déjà de créer des configurations gérées et de les attribuer à distance à des appareils et des utilisateurs spécifiques.
Pour savoir si une telle fonctionnalité est implémentée dans une application spécifique:
- Accédez à Google Play d'entreprise.
- Trouvez l'application que vous voulez.
- S'il prend en charge les configurations gérées, vous verrez l'icône «Cette application peut être configurée à distance» sous le nom:
Le processus général ressemble à ceci:
- Le développeur ajoute la prise en charge des configurations gérées à son application. Dans le fichier de schéma XML, il spécifie les paramètres qui sont configurés à distance et dans le code de l'application, il développe ces paramètres. Ensuite, il télécharge l'application sur Google Play d'entreprise.
- Le système EMM fournit une interface d'administration via laquelle le schéma XML est récupéré à partir d'une application sur Google Play à l'aide d'un iframe .
- L'administrateur entre les valeurs de paramètres qui doivent apparaître sur les appareils de l'entreprise. Après cela, le système EMM transfère la configuration sur Google Play.
- Google Play met à jour l'application sur tous les appareils d'entreprise pour refléter la nouvelle configuration.
Le processus d'adaptation d'une application mobile d'entreprise Ă AppConfig
Supposons que vous deviez saisir à distance une adresse et un nom d'utilisateur dans un client de messagerie. En utilisant Samsung Knox Manage comme exemple, l'interface de configuration de ces paramètres à l'aide d'une configuration gérée ressemblera à ceci:
Pour le champ Adresse e-mail, entrez $ emailaddress $, et pour le nom d'utilisateur, spécifiez $ username $ (ces variables seront remplacées dynamiquement, en fonction de l'utilisateur spécifique).
Comment un développeur peut-il ajouter le support AppConfig à son application?
Supposons que nous développions une application mobile où le paramètre configurable est l'adresse du serveur. Selon les recommandations de Google, le développeur doit:
- Recherchez le fichier de ressources XML, qui se trouve généralement dans le dossier du projet res / xml. Il contient des informations sur tous les paramètres configurables, qui pénètrent ensuite dans le système EMM via les API Google Play.
<?xml version="1.0" encoding="utf-8"?> <restrictions xmlns:android="http://schemas.android.com/apk/res/android"> <restriction android:key="address" android:title="@string/title" android:restrictionType="string" android:description="@string/description" android:defaultValue="sample address" /> </restrictions>
- Répertoriez explicitement le fichier app_restrictions.xml dans le manifeste de votre application à l'intérieur de la balise d'application.
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <meta-data android:name="android.content.APP_RESTRICTIONS" android:resource="@xml/app_restrictions" />
- Implémentez la gestion de l'événement ACTION_APPLICATION_RESTRICTIONS_CHANGED dans le code de l'application. Cette étape garantit que l'application reçoit la nouvelle valeur définie par l'administrateur.
IntentFilter restrictionFilter = new IntentFilter(Intent.ACTION_APPLICATION_RESTRICTIONS_CHANGED); BroadcastReceiver restrictionReciever = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { Bundle appRestrictions = restrictionsManager.getApplicationRestrictions(); /* Fetch the values of managed application configuration from this bundle and take action in your app accordingly. */ } };
Grâce à ce simple raffinement, après avoir publié l'application dans le Google Play d'entreprise, vous pourrez recevoir une configuration personnalisée du serveur:
Application avant et après réception de la configuration du serveur
Comment un administrateur peut-il configurer une application via la console Knox Manage?
Pour définir les configurations de contrôle, l'administrateur doit ajouter l'application elle-même via Knox Manage (KM) à partir du Google Play Store d'entreprise, ou la télécharger depuis son ordinateur en tant que Managed Google Play Private (la publication sur Google Play d'entreprise est facultative). Pour définir une nouvelle configuration:
- Dans KM, ouvrez l'onglet Groupe, sélectionnez le groupe associé à votre appareil et cliquez sur le bouton Application
- SĂ©lectionnez maintenant votre application et cliquez sur Attribuer
- SĂ©lectionnez Android Enterprise comme appareil cible. Cliquez sur le bouton DĂ©finir la configuration.
- Si vous avez tout fait correctement et que votre application prend en charge AppConfig, KM remplira les paramètres nécessaires avec des valeurs. Entrez simplement l'adresse du serveur (n'oubliez pas de saisir le nom de la configuration) et cliquez sur le bouton Enregistrer.
- Appuyez sur le bouton Attribuer pour télécharger la nouvelle configuration sur l'appareil.
- Cliquez sur OK pour confirmer.
Si l'application est en cours d'exécution et que le développeur a correctement implémenté la prise en charge d'AppConfig, l'application recevra la nouvelle adresse de serveur spécifiée dans la console KM.
Application avec l'adresse du serveur saisie via la console KM
Nous configurons non seulement les applications, mais Ă©galement l'appareil lui-mĂŞme
À un moment donné, les développeurs ont pensé: que se passe-t-il si nous voulons configurer non seulement les applications, mais également les paramètres de l'appareil lui-même de la même manière? OEMConfig est une nouvelle norme pour l'envoi de configurations aux applications écrites par les fabricants d'appareils. L'envoi se fait en utilisant le même schéma XML. Les fabricants de matériel Android suivent cette norme pour donner aux administrateurs plus de contrôle sur leur appareil. Ainsi, sur les smartphones Samsung avec le support Knox, il existe une solution - Knox Service Plugin (KSP), qui peut être téléchargée depuis Google Play. Mais nous en reparlerons une autre fois.
RĂ©sultat
- Utilisez AppConfig pour prendre en charge les configurations gérées pour vos applications. C'est assez simple à mettre en œuvre et, surtout, cela peut être vraiment utile.
- Créez une nouvelle configuration et envoyez-la aux appareils d'un grand nombre d'utilisateurs utilisant le système EMM (dans notre exemple, Knox Manage).
- Le moins de béquilles possible, utilisez des solutions toutes faites et des méthodes standards!
Ressources supplémentaires sur le sujet:
- https://docs.samsungknox.com/admin/uem/km-configure-appconfig.htm
- https://docs.samsungknox.com/dev/managed-configurations/introduction-to-managed-configurations.htm
- https://developer.android.com/work/managed-configurations
- https://www.samsungknox.com/en/solutions/it-solutions/knox-manage
- https://www.appconfig.org/android/
- https://docs.samsungknox.com/admin/knox-service-plugin/welcome.htm
Publié par Pavel Lepeev,
ingénieur,
équipe de développement commercial B2B avant / après vente
Samsung R&D Institute Russia