在这里我们只谈基本的设备管理(MDM),其他的设计到内容管理,邮件管理的暂且不谈,这里也会涉及到一些应用管理的部分。
MDM或者说是EMM,由于其使用场景特殊,基本要求对设备的管理具有闭环的生命周期。
也可以叫做设备绑定或者设备启用,不论是COPE或者是BYOD的设备,都要求对设备和服务器进行绑定,服务器创建设备或者用户,下发注册信息,设备输入注册信息通过认证,就表示该设备绑定成功。
通过注册的设备,一般会下发一些初始的配置策略,来对设备进行检测或者进行基本管理,在设备使用中,后台会相继下发不同的策略,对设备进行不同的管理。
用户在使用设备的时候,要遵守后台针对该设备下发的管理策略,例如密码强度要求,WIFI使用权限,摄像机使用权限等,当检测到用户的非法操作时,进行相应的处理,例如警告或者上报服务器。设备配置以及使用不会受到登陆状态影响,只要设备已经绑定,服务器就会有权限对设备进行策略下发以及管理。
或者叫做设备解绑,解绑之后设备恢复自由,恢复到设备绑定之前的状态,设备解绑不能由用户进行自操作,需要经过后台的授权或者同意,非法的解绑动作应该被禁止,启迪思创就通过计算认证碼的方式来防止非法解绑,以及通过Hook的方法禁止用户关闭设备管理器。
设备整体的声明周期如下图所示:
设备淘汰时,需要进行企业信息擦除,包括下发的配置策略,产生的数据以及安装的企业应用,但是不能影响BYOD设备中的个人信息。
策略下发基本上都通过推送来完成,一般都是由服务器主动下发策略,此时需要保持长连接,一般的策略有三个部分:命令,目标,数据。
MDM和其他管理策略型的系统不同,严重依赖于后台的管理,所以需要做到完全并且强制遵从策略,基于这一点,我们一定要做服务端认证。
数据管理主要涉及到数据隔离以及数据擦除两部分。
根据目前的调研,大多数厂商没有做到真正意义上的数据隔离,基本上都是用隐藏文件+加解密的方式进行折中处理,真正要实现数据隔离,要使用到定制的ROM或者企业定制设备来完成,或者使用基于CPU的安全空间技术(Knox)来进行隔离,在Android5.0之后,可以使用Android for Work来限制应用之间的访问,以及文件共享机制的控制,但是也不能完全的实现数据隔离。
数据擦除可以分为三种:
远程控制基于策略下发,服务器通过下发指令,进行设备的控制,例如修改配置信息,发送短信,打电话,控制WIFI,蓝牙等。
通常会在MDM系统之上搭建企业应用商店,这样就扩展到MAM的层次,同时,应用管理也是展现MDM能力的一个表现窗口,通过服务器进行应用分发,通过策略进行应用的强制安装或者建议安装,也可以通过策略进行应用升级,直接进行应用安装等。
推送是MDM中策略分发的基础,MDM中大部分的指令,策略以及操作都需要由服务器向客户端发起,推送是最合适的选择。
推送中的重难点之一就是要做到进程保活,同时,MDM中设备的监测也要做到进程保活,所以进程保活是我们要做的基础工作。
前期我们需要把MDM完成,由MDM为基础,延伸到应用管理,内容管理,邮件管理,最终演变为企业移动化管理的解决方案(EMM)。
我们主要参看来国内在这方面比较有代表性的厂商,总结其在MDM方面的主要功能。
华为AnyOffice是主要面向企业移动办公的一个方案,提供的产品形式是SDK,具有如下功能:
华为的这个SDK基本上没有设备管理的功能,但是通过重写IO进行数据库以及文件的加解密这种方式是值得我们学习的,也是目前大多数厂商的做法。
中国移动MDM是中国移动为企业提供的MDM平台,官网看不出有什么特点,基本功能:
中国移动MDM提供的基本功能模块和其他厂商的没有什么区别,但是可以通过定制操作系统或专用终端实现双域功能,并且支持三星Knox,这点值得我们学习。
智衍企业移动管理平台在国内算是比较成熟的企业移动解决方案提供者,有以下功能:
智衍企业移动管理平台的特点是功能比较全面,且常年耕耘企业移动管理,技术和产品比较成熟,结合自身的移动开发平台,推送平台以及云平台,很容易形成围绕自家产品的生态。
烽火星空MobileArk企业移动管理平台从产品介绍上看,和智衍差不多,大概功能也很类似,
启迪国信NQSky EMM是国内实力较强的企业移动信息化解决方案提供者,有如下特点
启迪国信提供的企业移动信息化解决方案远超出了EMM的范畴,是目前国内比较成熟的厂商,对我们来说很有借鉴意义。
基本的MDM功能,实现方式在Android有对应的API:
这些功能大部分需要通过服务器推送来触发,推送在国内基本上只有两种方式,第三方推送平台以及自建推送服务器,但是不论使用哪种,在客户端都需要考虑进程保活问题。
客户端实现消息处理器,大部分的MDM客户端和服务器采用自定义协议,走Socket形式的TCP长连接,接受到消息后传入到消息处理器,由消息处理器解析协议,并根据不同类型的消息进入对应的消息处理模块,在一些场景中,消息处理完毕之后,还需要上报服务器处理的结果。
由于客户端通常面对的是多租户模式的服务器,客户端在一般在注册前,要进行一些简单的配置,或者是在注册时一并进行配置,这些配置包括要注册集团域,IP端口或者是HTTPS信任证书,在FlyvyMDM客户端中采用了二维码的方式进行这些配置,可以值得我们借鉴。
Android5.0之后的特性,可以帮助我们创建另外一个配置文件,区别于私人的配置文件,基于这个配置可以实现在同一台设备上同时支持工作应用和个人应用,工作数据通过work profile和个人数据隔离出来。但是在Android上,需要通过Google Play Services来实现Afw,并且需要去Google购买使用授权,国外一些厂商可以完成这些服务,包括Google自身的App for work团队,VMware的airwatch,以及思杰。
WSO2之前提供了一套开源的EMM前后端方案,现在已经升级成了IOT管理服务器,但是依然是开源,增加了物联网设备的管理,Iot Server为我们提供了在功能和代码方面实现的思路,可参考性极大,缺点在于后台基于WSO2的Carbon中间件实现,并且架构比较庞大,理解起来可能比较困难,想彻底理解其中的原理不是一件容易的事情。