Configurando um aplicativo móvel corporativo usando AppConfig

Se você é um administrador em uma empresa com um aplicativo móvel interno, não importa para quê - seja um mensageiro comum ou correio, ou algo especial como um leitor de código de barras - mais cedo ou mais tarde você se deparará com a tarefa de configuração remota e gerenciamento de aplicativos. Você pode usar muletas para prescrever um ID específico ou endereço de servidor em todos os telefones, mas também há uma solução pronta - um padrão de fato que pode ser usado em conjunto com uma das plataformas EMM / UEM existentes (Enterprise Mobile Management / Unified Endpoint Management).



Neste artigo, decidimos dar instruções sobre como tornar seu aplicativo Android configurável se você for o desenvolvedor. Ou seja: o que exatamente precisa ser alterado em seu aplicativo para atender às necessidades do público corporativo. Também descrevemos todo o trabalho do administrador usando a plataforma Knox Manage como exemplo .

 





Formulação do problema



Em uma entrevista com colegas do SRI SOKB (Instituto Científico e de Testes para Sistemas Integrados de Segurança), concordamos que não se pode mais imaginar uma infraestrutura móvel corporativa moderna sem um sistema de controle centralizado. 



Por exemplo, na empresa ferroviária suíça SBB, cada um dos 30.000 funcionários recebeum telefone personalizado para tarefas de trabalho - não existe apenas correio e um mensageiro, mas também, por exemplo, o envio de mensagens sobre avarias. Confiar a um funcionário a tarefa de montar toda essa periferia custa não apenas em horas-homem, mas também está repleto de possíveis erros no processo. E em alguns casos - por exemplo, quando aparecem falhas - é mais fácil atualizar completamente e reinicializar o telefone do que procurar por um erro. Portanto, uma solução escolhida corretamente para um aplicativo corporativo facilita muito a vida de um administrador de TI de uma empresa.



Normalmente, ao introduzir sistemas centralizados, nos deparamos com duas tarefas:



  1. . , : Knox Mobile Enrollment, Android Zero Touch Android Enterprise Enrollment (EMM-, QR- .)

  2. . ,   ,





Como solução para o segundo problema, existe o mecanismo AppConfig , não é uma iniciativa de uma única empresa, mas sim a convenção atual de vários fornecedores. Sua essência é resumidamente a seguinte: o desenvolvedor implementa em seu aplicativo móvel - mail, messenger, cliente de vídeo, etc. - suporte para configurações gerenciadas , personalizadas para um usuário específico. O desenvolvedor decide quais parâmetros no aplicativo podem ser definidos externamente (identificador, nome de usuário, endereço do servidor). Por meio do Google Play corporativo , esses parâmetros vão para o sistema EMM. E já permite que você crie configurações gerenciadas e as atribua remotamente a dispositivos e usuários específicos. 



Para descobrir se essa funcionalidade é implementada em um aplicativo específico:



  • para o Google Play corporativo.

  • Encontre o aplicativo que você deseja. 

  • Se for compatível com configurações gerenciadas, você verá o ícone "Este aplicativo pode ser configurado remotamente" com o nome:







 O processo geral é semelhante a este:



  1. O desenvolvedor adiciona suporte para configurações gerenciadas ao seu aplicativo. No arquivo de esquema XML, ele especifica os parâmetros que são configurados remotamente e, no código do aplicativo, ele expande esses parâmetros. Em seguida, ele carrega o aplicativo no Google Play corporativo.

  2. O sistema EMM fornece uma interface administrativa por meio da qual o esquema XML é recuperado de um aplicativo no Google Play usando um iframe .

  3. O administrador insere os valores dos parâmetros que devem aparecer nos dispositivos corporativos. Depois disso, o sistema EMM transfere a configuração para o Google Play.

  4. O Google Play atualiza o aplicativo em todos os dispositivos corporativos para refletir a nova configuração.



    



O processo de adaptação de um aplicativo móvel corporativo para AppConfig



     Suponha que você precise inserir remotamente um endereço e nome de usuário em um cliente de email. Usando o Samsung Knox Manage como exemplo, a interface para configurar esses parâmetros usando uma configuração gerenciada será semelhante a esta:







Para o campo de endereço de e-mail, insira $ emailaddress $ e para o nome de usuário, $ username $ (essas variáveis ​​serão substituídas dinamicamente, dependendo do usuário específico).       



Como um desenvolvedor pode adicionar suporte AppConfig ao seu aplicativo?



Suponha que estejamos desenvolvendo um aplicativo móvel onde o parâmetro configurável é o endereço do servidor. De acordo com as recomendações do Google, o desenvolvedor deve:



  1. Encontre o arquivo de recurso XML, que geralmente é encontrado na pasta de projeto res / xml. Ele contém informações sobre todos os parâmetros configuráveis, que então entram no sistema EMM por meio das APIs do 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>  
    
  2. Liste explicitamente o arquivo app_restrictions.xml no manifesto do aplicativo dentro da tag do aplicativo.



    <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" />
  3. Implemente o tratamento do evento ACTION_APPLICATION_RESTRICTIONS_CHANGED no código do aplicativo. Esta etapa garante que o aplicativo receba o novo valor conforme definido pelo administrador.



    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. 
              */  
         }  
    };  




Como resultado deste simples refinamento, após publicar o aplicativo no Google Play corporativo, você poderá receber a configuração personalizada do servidor: 





Aplicativo antes e depois de receber a configuração do servidor



Como um administrador pode configurar um aplicativo por meio do console Knox Manage?



Para definir as configurações de controle, o administrador precisa adicionar o próprio aplicativo por meio do Knox Manage (KM) da loja Google Play corporativa ou carregá-lo de seu computador como Gerenciado Google Play Privado (a publicação no Google Play corporativo é opcional). Para definir uma nova configuração:



  1. No KM, abra a guia Grupo, selecione o grupo associado ao seu dispositivo e clique no botão Aplicativo



  2. Agora selecione seu aplicativo e clique em Atribuir



  3. Selecione Android Enterprise como o dispositivo de destino. Clique no botão Definir configuração.



  4. Se você fez tudo corretamente e seu aplicativo tem suporte para AppConfig, então KM preencherá os parâmetros necessários com valores. Basta inserir o endereço do servidor (não se esqueça de inserir o nome da configuração) e clicar no botão Salvar.



  5. Pressione o botão Atribuir para baixar a nova configuração para o dispositivo.



  6. Clique OK para confirmar.





Se o aplicativo estiver em execução e o desenvolvedor tiver implementado corretamente o suporte a AppConfig, o aplicativo receberá o novo endereço de servidor especificado no console KM.





Aplicativo com o endereço do servidor inserido através do console KM 



Configuramos não apenas os aplicativos, mas também o próprio dispositivo



Em algum momento, os desenvolvedores pensaram: e se quisermos configurar não apenas os aplicativos, mas também os parâmetros do próprio dispositivo de forma semelhante? OEMConfig é um novo padrão para enviar configurações para aplicativos escritos por fabricantes de dispositivos. O envio é feito usando o mesmo esquema XML. Os fabricantes de hardware Android seguem esse padrão para dar aos administradores mais controle sobre seus dispositivos. Portanto, em smartphones Samsung com suporte para Knox, existe uma solução - Knox Service Plugin (KSP), que pode ser baixado do Google Play. Mas falaremos sobre isso em outra ocasião.



Resultado



  • Use AppConfig para oferecer suporte a configurações gerenciadas para seus aplicativos. É muito simples de implementar e, o mais importante, pode ser muito útil.
  • Crie uma nova configuração e envie-a para dispositivos de um grande número de usuários usando o sistema EMM (em nosso exemplo, Knox Manage).
  • Com o mínimo de muletas possível, use soluções prontas e métodos padrão!




Recursos adicionais sobre o tema:







Postado por Pavel Lepeev,

engenheiro,

equipe de desenvolvimento de negócios de pré / pós-vendas B2B

Instituto de P&D da Samsung na Rússia



All Articles