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

关于MDM分为以下几个步骤操作来介绍:

一、MDM介绍

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

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

通过MDM能实现以下操作:

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

等等还有其他很多细微的功能没有全部列出来。是不是感觉MDM的功能很多很强大,如果你以前没有了解过它,肯定会很惊奇、没有越狱的设备居然还能够这样搞?O(∩_∩)O 是的,MDM就是这么强大,所以在企业应用部署及设备管理能发挥很大的作用。

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

二、关于

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

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

三、MDM工作流程

引用官网提供的一张图:


MDM工作流程
MDM工作流程

从上图可以看出要实现MDM服务须涉及到,苹果推送服务器APNs、自己的或者第三方提供的MDM服务器、受管理的设备。实际中三者之间通过HTTPS相互通信,所以推送和普通APP推送一样必须要有推送证书。没有操作的情况下,除了设备本身和APNs之间保持连接,其他都不在连接状态。各自在系统中的作用如下:

  • MDM服务器:对于设备,通过它发送指令对设备进行管理,获取相关信息及操作,回应响应设备操作。对于APNs,向APNs发送一个命令,目的来唤醒设备去主动连接MDM服务器,报告其当前状态是否处于空闲(若设备空闲,MDM服务器会继续下一步操作比如开始发送指令)。
  • APNs:可看作其他两者之间的信使,主要就是转发MDM服务器指令给设备,意思告诉设备开始去连接服务器啦。
  • 设备:首先通过Safari访问服务器安装一个配置描述文件(下文叙述)并登记注册使其成为受管理的设备,当收到APNs指令后,根据已安装的配置文件的url 连接MDM服务器并报告其状态,然后接受下一步命令比如命令DeviceInformation(查询设备信息如ModelName、BatteryLevel、WiFiMAC等),设备收到XML格式的指令后再向服务器传送其相关查询的信息,如果不需要继续发送指令,服务器关闭连接。

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

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

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

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

正常情况下操作我遇到了以下几个问题:

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

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

问题2、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申请的推送证书只能是生成环境的证书,这一点我当时还傻傻的以为生成和推送都一样呢😭。

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

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

当设备与Sever建立连接后,发送命令很快得到了响应。但有时连续几个操作后响应会很慢,猜测可能设备本身还没来得及处理,具体还的在研究

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

由于我们是企业应用分发,发布一个应用希望所有受控的设备强制安装即不需要弹框提示用户点击确认操作。但是还没有实现,好像安卓的可以,关于iOS 的还在研究。

五、总结

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,398评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,585评论 18 139
  • 带着感恩的心惜别2016,满怀期待拥抱2017年! 今天静下心来为刚刚过去的一年写点什么呢? 2016年可以说是我...
    李光平阅读 659评论 1 0
  • 正确的知识加上行为习惯改变的能力,才是成功交易最为重要的,如果没有行为习惯的改变,正确的知识可能会导致错误的交易执...
    Uzor阅读 776评论 0 1
  • Android Handler机制系列文章整体内容如下: Android Handler机制1之ThreadAnd...
    隔壁老李头阅读 12,522评论 2 26