移动设备管理(MDM)已经成为一个热门话题,并融入到了企业社会的各个层面,远程管理和控制移动设备的需求日益迫切。在2010年,Apple推出了针对iOS的移动设备管理(Mobile Device Management,MDM)服务,这是面向企业的面向iOS MDM问题的解决方案。该系统具有远程安装配置文件,查询设备设置以及某些远程控制的功能,如:设备锁定,解锁和远程擦除等。
(1)苹果官方MDM文档地址 https://developer.apple.com/documentation/devicemanagement
(2)在MDM 服务主要由三个要素
①设备管理(iPhone,iPad,iPod)
②服务器管理(各种MDM 服务器)
③服务器启动设备(APNS)
(3)设备注册
MDM 服务器支持无线(OTA)注册, 在注册期间,设备向服务器提供唯一标识(UDID)信息,服务器将使用该标识信息通过 Apple 推送通知服务发送消息。从服务器到客户端或客户端到服务器的长期连接在 MDM 设计中是不存在的,目前仅与 APNS 的连接。这个长期的 APNS连接是推送通知框架的一部分,支持多个 iOS 应用程序,而不仅仅是 MDM。注册后,客户端设备和MDM 服务器之间的每次交互都由四个元素组成:
①服务器MDMServer 请求苹果 APNS 推送服务
②Apple 推送消息到设备
③设备连接MDMServer 服务器
④服务器发出命令和响应
(4)推送通知
当MDM 服务器需要与设备进行通信时,它将所需的命令排队,然后通过 APNS 发送一个非常简单的推送通知消息。此消息中不存在除识别标记之外的其他信息。收到通知后,设备联系服务器,然后将排队的命令提供给客户端。在完成该命令后,客户端设备将结果返回给 MDMServer,并关闭客户端和服务器之间的连接。
(5)客户端/服务器交互
设备通过连接到指定的URL 并以 Apple Property List(.plist)文件的形式交换 XML 格式的数据来与服务器进行交互。客户端连接到服务器时发送的第一条消息是一个简单的“状态:空闲”通知,指示设备已准备好接收来自 MDM 服务器的命令。收到此消息后,服务器发送可能正在等待的任何命令该设备。这个命令也是以 XML 格式的.plist 文件形式呈现,在大多数情况下只是一个简单的命令(可能有一些相关的参数)。设备根据命令行事,然后可以用另一个.plist 响应,提供对命令的简单确认,错误消息或详细响应(在设备清单和类似命令的情况下)。