使用AppConfig配置公司移动应用

如果您是一家拥有内部移动应用程序的公司的管理员,那么无论是出于常规信使或邮件还是条形码扫描器之类的特殊功能,迟早您将面临远程配置和管理应用程序的任务。您可以使用拐杖在所有电话中指定特定的ID或服务器地址,但也有现成的解决方案-实际上已经是可以与现有EMM / UEM平台之一结合使用的标准(企业移动管理/统一端点管理)。



在本文中,我们决定提供有关如何开发自己的Android应用程序的说明。也就是说:您的应用程序中究竟需要更改哪些内容才能满足公司受众的需求。我们还以Knox管理平台为例描述了管理员的所有工作

 





问题的提法



与SRI SOKB(集成安全系统科学与测试研究所)的同事的采访中,我们同意没有集中控制系统就无法想象现代企业移动基础架构。 



例如,在瑞士铁路公司SBB,每30,000名员工的接收专为工作任务定制的电话-不仅有邮件和信使,而且还例如发送有关故障的消息。委托员工来建立所有这些外围设备的任务不仅费时,而且还充满了过程中可能出现的错误。而且在某些情况下(例如,当发生故障时),完全重新刷新和重新初始化手机比查找错误要容易得多。因此,为公司应用程序正确选择的解决方案使公司IT管理员的工作变得更加轻松。



通常,在引入集中式系统时,我们面临两个任务:



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

  2. . ,   ,





作为第二个问题的解决方案,有AppConfig机制,这不是某个公司的倡议,而是几个供应商的现行惯例。其实质简述如下:开发人员在其移动应用程序中实现-邮件,Messenger,视频通信客户端等。-支持为特定用户定制的托管配置开发人员决定可以从外部设置应用程序中的哪些参数(标识符,用户名,服务器地址)。通过公司的Google Play,这些参数进入EMM系统。而且它已经允许您创建托管配置并将其远程分配给特定的设备和用户。 



要了解是否在特定应用程序中实现了此类功能:



  • 转到公司的Google Play。

  • 查找您想要的应用。 

  • 如果它支持托管配置,您将在名称下看到图标“可以远程配置此应用程序”:







 一般过程如下所示:



  1. 开发人员在其应用程序中添加了对托管配置的支持。XML模式文件中,它指定了远程配置的参数,在应用程序代码中,它扩展了这些参数。然后,他将应用程序上传到公司的Google Play。

  2. EMM系统提供了一个管理界面,通过该界面可以使用iframe从Google Play上的应用程序检索XML模式

  3. 管理员输入应在公司设备上显示的参数值。之后,EMM系统会将配置转移到Google Play。

  4. Google Play会在所有公司设备上更新该应用,以反映新的配置。



    



使公司移动应用程序适应AppConfig的过程



     假设您需要在电子邮件客户端中远程输入地址和用户名。以Samsung Knox Manage为例,使用托管配置来配置这些参数的界面将如下所示:







对于电子邮件地址字段,输入$ emailaddress $,对于用户名输入$ username $(这些变量将被动态替换,具体取决于特定用户)。       



开发人员如何向其应用程序添加AppConfig支持?



假设我们正在开发一个移动应用程序,其中可配置参数是服务器地址。根据Google建议,开发人员必须:



  1. 查找XML资源文件,该文件通常位于res / xml项目文件夹中。它包含有关所有可配置参数的信息,然后可通过Google Play API进入EMM系统。



    <?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. 在应用程序清单中的应用程序标记内明确列出app_restrictions.xml文件。



    <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. 在应用程序代码中实现对ACTION_APPLICATION_RESTRICTIONS_CHANGED事件的处理。此步骤确保应用程序收到管理员定义的新值。



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




通过此简单的修改,在将应用程序发布到公司的Google Play中之后,您将能够从服务器接收自定义配置: 





在从服务器接收配置之前和之后的应用程序



管理员如何通过Knox管理控制台配置应用程序?



要设置控件配置,管理员需要通过Knox Manage(KM)从公司Google Play商店中添加应用程序本身,或者从计算机上将其作为Managed Google Play Private上传(然后发布到公司Google Play中是可选的)。设置新配置:



  1. 在KM中,打开“组”选项卡,选择与您的设备关联的组,然后单击“应用程序”按钮



  2. 现在选择您的应用程序,然后单击分配



  3. 选择“ Android Enterprise”作为目标设备。单击设置配置按钮。



  4. 如果您正确执行了所有操作,并且您的应用程序具有AppConfig支持,则KM将使用值填充必要的参数。只需输入服务器地址(不要忘记输入配置名称),然后单击“保存”按钮即可。



  5. 按下分配按钮将新配置下载到设备。



  6. 单击确定进行确认。





如果应用程序正在运行,并且开发人员已正确实现了AppConfig支持,则该应用程序将收到在KM控制台中指定的新服务器地址。





通过KM控制台输入服务器地址的应用程序 



我们不仅配置应用程序,还配置设备本身



在某个时候,开发人员认为:如果我们不仅要配置应用程序,还要以类似的方式配置设备本身的参数,该怎么办?OEMConfig是用于将配置发送到设备制造商编写的应用程序的新标准。使用相同的XML模式完成发送。Android硬件制造商遵循此标准,以使管理员可以对其设备进行更多控制。因此,在支持Knox的三星智能手机上,有一个解决方案-Knox服务插件(KSP),可以从Google Play下载但是,我们下次再谈。



结果



  • 使用AppConfig支持应用程序的托管配置。它非常容易实现,最重要的是,它确实非常有用。
  • 使用EMM系统(在我们的示例中为Knox Manage)创建一个新配置并将其发送到大量用户的设备。
  • 尽量减少拐杖,使用现成的解决方案和标准方法!




关于该主题的其他资源:







作者:Pavel Lepeev,

B2B售前/售后

业务开发团队工程师

俄罗斯三星研发院



All Articles