iOS MDM详解(1)— 初识和深刻

关于MDM分为如下几个步骤操做来介绍:

1、MDM介绍

MDM - Moblie Device Management 移动设备管理,目的就是让企业可以方便的管理 iPhone、Pad等移动设备。java

当企业大量的使用移动设备办公或涉及到一些安全限制时设备管理的做用就能明显的体现出来,经过MDM IT人员门可以在企业环境下安全地注册设备,无线配置和更新设置,监督公司政策的遵照状况,还能远程擦除或锁定被管理的设备。例如(不少电子厂一线员工上班期间都不让带手机,惧怕不法分子随便拍照泄露产品信息,若是此时引入MDM则能够再上班期间禁止员工的手机摄像头的应用,其余也不影响手机使用)。git

经过MDM能实现如下操做:github

  • 安装和删除一个描述文件
  • 安装和删除一个配置文件
  • 获取已安装的描述文件列表
  • 获取已安装的配置文件列表
  • 获取已安装的证书列表
  • 获取已安装的第三方的应用列表
  • 应用的安装与删除
  • 获取设备信息(UDID、Languages、DeviceID、BatteryLevel等)
  • 获取安全相关的信息
  • 设备锁屏、重启、关机、清除密码、数据擦除
  • 获取已启用的约束列表
  • 锁住、定位已丢失的设备
  • 设备相关的设置管理、设备名称、壁纸、移动网络等
  • 设置已安装的应用属性
  • 得到可更新的系统的信息
  • 安装一个文件或书籍

等等还有其余不少细微的功能没有所有列出来。是否是感受MDM的功能不少很强大,若是你之前没有了解过它,确定会很惊奇、没有越狱的设备竟然还可以这样搞?O(∩_∩)O 是的,MDM就是这么强大,因此在企业应用部署及设备管理能发挥很大的做用。安全

虽然MDM的功能那么多,咱们在实际应用中也就是涉及到,锁屏及密码删除、APP的安装和删除、配置文件的安装和删除、获取已安装的APP列表及其余设备相关的信息,也就是说经常使用的操做也就那几个。服务器

2、关于

刚开始接触MDM我也一脸的懵逼,不知道该从何着手。看着网上零零散散的资料,问题涉及到的也是支离破碎,真不到他们是否具体操做过?有没有实际跑通?反正各大论坛的也都是转来转去,可能有的人理解了,作出来了,可是写的也是一律而过,真正的按照步骤操做时也是一团浆糊。没办法,我只能硬着头皮去看官方资料,由于其余有用的资料带来的信息太少了。网络

通过几个月的学习和了解、对MDM认知也慢慢的清晰了好多。至此咱们的管理平台也跑通了,正打算部署到企业内部使用。因此我想好好的总结一下,把作过的,想过的,遇到的问题一步一步的记录下来,或许可以帮助你更好的理解MDM、快速的使用MDM。app

3、MDM工做流程

引用官网提供的一张图: ide

MDM工做流程

从上图能够看出要实现MDM服务须涉及到,苹果推送服务器APNs、本身的或者第三方提供的MDM服务器、受管理的设备。实际中三者之间经过HTTPS相互通讯,因此推送和普通APP推送同样必需要有推送证书。没有操做的状况下,除了设备自己和APNs之间保持链接,其余都不在链接状态。各自在系统中的做用以下:工具

  • MDM服务器:对于设备,经过它发送指令对设备进行管理,获取相关信息及操做,回应响应设备操做。对于APNs,向APNs发送一个命令,目的来唤醒设备去主动链接MDM服务器,报告其当前状态是否处于空闲(若设备空闲,MDM服务器会继续下一步操做好比开始发送指令)。post

  • APNs:可看做其余二者之间的信使,主要就是转发MDM服务器指令给设备,意思告诉设备开始去链接服务器啦。

  • 设备:首先经过Safari访问服务器安装一个配置描述文件(下文叙述)并登记注册使其成为受管理的设备,当收到APNs指令后,根据已安装的配置文件的url 链接MDM服务器并报告其状态,而后接受下一步命令好比命令DeviceInformation(查询设备信息如ModelName、BatteryLevel、WiFiMAC等),设备收到XML格式的指令后再向服务器传送其相关查询的信息,若是不须要继续发送指令,服务器关闭链接。

另外设备和MDM服务器之间数据传输都是以XML格式形式,以PUT请求的方式进行的,因此发送指令时,服务器要把指令封装成一个XML的文件同时要实现PUT请求相关操做处理。APNs所发送的仅仅是一个与设备自己相关的标示符,没有其余命令,目的就是唤醒设备去链接MDM服务器。

4、要作的操做及我遇到过的问题

经过以上了解可看出,要实现一个完整的MDM服务,咱们须要:制做APNs推送证书、设备安装的配置文件、实现https通讯、实现MDM相关协议、学习MDM协议相关命令及使用、一个MDM服务器(这里不做主要叙述,由于这些相关的都是有咱们后台作的)。因此接下来的时间我打算依次作如下任务。

以上即为MDM服务中几个关键的操做,其余的一些细微的方面的操做之后在慢慢整理。

正常状况下操做我遇到了如下几个问题:

问题一、 mobileconfig配置文件安装失败

设备在安装过程当中,一直提示安装失败!当我想使用抓包工具Charles查看时竟然安装成功了,关闭软件再次安装仍是失败,猜想可能因为Charles代理的做用能链接到还处于内网的MDM Server,若直接发布到外网应该能避免这个问题(目前尚未验证?)。

问题二、MDM服务器与APNs没法创建链接,形成一直推送不成功

推送命令时Java后台一直报错,javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found 后来升级了SKD错误解除。

随之又出现错误 Software caused connection abort: recv failed 后经排查原来链接的是开发环境的地址,mobileconfig配置中有这个配置选项默认是生成环境,经过identity.apple.com/pushcert申请的推送证书只能是生成环境的证书,这一点我当时还傻傻的觉得生成和推送都同样呢😭。

问题三、命令推送成功后设备没有响应操做或者很慢

命令推送成功了有时没响应,多数都是在MDM Server 与 APNs之间,估计设备没被唤醒或者没有收到指令,APNs 和设备之间因为推送不是那么及时因此会有必定的延时。

当设备与Sever创建链接后,发送命令很快获得了响应。但有时连续几个操做后响应会很慢,猜想可能设备自己还没来得及处理,具体还的在研究

问题四、想实现APP的静默安装

因为咱们是企业应用分发,发布一个应用但愿全部受控的设备强制安装即不须要弹框提示用户点击确认操做。可是尚未实现,好像安卓的能够,关于iOS 的还在研究。

###5、总结

以上为MDM的简单介绍和理解,若是你也熟悉MDM有不恰当的地方谢谢指导,若是你不熟悉刚接触但愿能有一点帮助。接下来我会安装以上所述操做步骤开展下一步的工做。

相关文章
相关标签/搜索