资源描述
Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,Click to edit Master title style,IOS 平台上,MDM,开发,移动互联网行业,从事移动设备安全产品的研发工作。,2013-11-23,目录大纲,MDM相关资料及源码提供,5,苹果,提供的MDM解决方案,2,IOS平台,的MDM方案Jav,a实现,4,IOS平台,MDM相关,资料,介绍,1,理解InsideAppleMDM_WP.pdf,3,IOS平台,MDM相关,资料,介绍,1、什么是 MDM?,Mobile Device Management,(移动设备管理),从设备注册、激活、使用、淘汰各个环节进行全面管理。,2、MDM如何兴起?,使用,移动终端设备来处理日常,,移动办公等,事务,,提升企业数据管理能力,3、MDM的发展前景怎样?,MAM(Mobile Application Management)移动APP管理,MCM(Mobile Content Management)移动文档管理,IOS平台,MDM相关,资料,介绍,4、IOS平台MDM开发前阅读(了解MDM),(1)、iPhone_MDM.pdf,5、IOS平台MDM开发参考的文档(非常重要),(1)、InsideAppleMDM_WP.pdf,(2)、MobileDeviceManagementProtocol.pdf,6、其他参考文档(开发需要),(1)、相关网页.txt,(2)、相关命令文件夹下的txt文档,苹果,提供的MDM解决方案,1、Android平台MDM实现,Android 2.2 之后实现MDM功能。但是平台开源,各个厂商修改底层源码,很多功能都被手机厂商阉割,或者植入类似MDM功能APP(例如:小米的云服务),2、IOS平台MDM能实现的功能,参见PDF:iPhone_MDM.pdf,我翻译的:MDM能实现的功能.doc,主要的三部分:Configure(设备配置)、Query(设备信息查询)、Manage(设备管控),苹果,提供的MDM解决方案,3、IOS平台MDM开发需要做的工作,1、注册Apple企业者账号($299),并申请MDM Vendor;,2、申请https(SSL)证书或者自建证书;,3、搭建服务器https环境,;,4、IOS端生成MDM推送p12格式证书和mobileconfig描述文件,5、了解代码RestFul架构及其风格(post、get、put、delete);,6、一定的linux操作命令或者window服务器配置操作技能(使用openssl),7、掌握Apple提供的英文开发文档(最重要),上面工作的参考文章网址在:相关网页.txt,理解InsideAppleMDM_WP.pdf,1、IOS设备安装mobileconfig文件并注册激活,MDM Server,IOS设备,步骤一,步骤一:下载.mobilecofig文件,并授权安装,步骤二:设备执行check In的Authenticate和TokenUpdate(返回MDM需要的几个参数:Token、PushMagic、UnlockToken等),步骤二,理解InsideAppleMDM_WP.pdf,2、MDM执行控制基本流程,MDM Server,IOS设备,步骤一,备注:设备控制,例如:锁屏、解锁、清除数据等,每个步骤的解释详见下页,步骤二,步骤三,步骤四,步骤五,理解InsideAppleMDM_WP.pdf,2、MDM执行控制基本流程,步骤一:服务器发送一个MDM推送信息,告诉设备,服务器需要让你执行命令了。,说明:命令格式为aps:,mdm:996ac527-9993-4a0a-8528-60b2b3c2f52b,mdm的value为设备注册时返回的PushMagic。,步骤二:APNs通知设备。,步骤三:当设备空闲和在网时去连接MDM Server并告诉服务器状态。,步骤四:MDM Server根据设备状态返回给设备需要执行命令。,说明:命令式xml格式的plist文件。,步骤五:设备实行了命令,并将执行情况返回给MDM Server。,说明:返回状态为Acknowledged则执行成功,CommandFormatError、Error、NotNow,等即为除了问题。,理解InsideAppleMDM_WP.pdf,2、MDM执行控制基本流程,例如:当需要执行锁屏时,我们的步骤如下:,我们通过MDM Server发送一个MDM推送消息给Apns,同时,我们在服务器上记录一个锁屏的数据库记录,当设备收到Apns 的消息(通知栏不提示)后,会发送一个状态为Idle(设备空闲)通过Server Url通知MDM Server,来告诉MDM Server,现在设备空闲了,可以执行命令了,当MDM Server收到这样的状态后,根据数据库记录命令的先后顺序,找到那个执行锁屏的记录,并组装成一个xml格式的plist文件返回给设备;当设备执行完了命令后,会将执行的情况再次通过MDM Server的Server URL返回来,此时状态为:Acknowledged,那个这个状态就表示设备已经成功执行了锁屏命令。需要注意的是,每个命令发送的plist文件后又一个CommandUUID属性,这个属性是用来表示执行命令和返回的唯一性。,IOS平台,的MDM方案Jav,a实现,1、MDM Server提供mobileconfig文件下载,/*,*下载设备控制描述文件功能,*throws Exception,*/,GET,Path(/down/:deviceId),public void downConfig()throws Exception,/*业务参见源码*/,参见:MdmAction.java文件,注意mobileconfig文件需要通过的openssl签名。,签名详见:,/命令相关/openssl对mobileconfig文件签名.txt,IOS平台,的MDM方案Jav,a实现,2、设备认证和上传Token等信息(Check In URL),/*,*设备认证和注册功能,*throws Exception,*/,PUT,Path(/checkin/:deviceId),public void checkIn()throws Exception,/*业务参见源码*/,参见:MdmAction.java文件,注意请求类型需要是PUT,注册认证返回数据:,/命令相关/CheckIn返回.txt,IOS平台,的MDM方案Jav,a实现,3、通过APNs发送一个需要锁屏的请求(MDM push),/*,*设备锁屏功能,*throws Exception,*/,GET,Path(/lock/:deviceId),public void deviceLock()throws Exception,*业务参见源码*/,命令类似:aps:,mdm:996ac527-9993-4a0a-8528-60b2b3c2f52b,apns推送是通过一个开源的java-apns程序发送的。,IOS平台,的MDM方案Jav,a实现,4、设备响应,发送真正的锁屏命令(Server URL),/*设备空闲状态,可以发送相关命令*/,if(info.contains(MdmUtils.Idle),/*执行命令*/,if(command.getCommand().equals(MdmUtils.Lock),/*组装锁屏命令的plist文件,并发送命令*/,/*注意有一个CommandUUID,便于获取返回数据类型判断*/,说明:当接收到状态为,Idle,表示设备空闲,那么就查询数据库,并组装命令执行。,锁屏命令参考,:,/命令相关/,锁屏命令和其他命令.txt,IOS平台,的MDM方案Jav,a实现,5、设备执行命令,并返回执行情况,/*返回状态为Acknowledged,表示执行成功*/,if(info.contains(MdmUtils.Acknowledged),/*根据CommandUUID,记录命令执行情况*/,说明:当接收到状态为,Idle,表示设备空闲,那么就查询数据库,并组装命令执行。,返回数据参见:,/命令相关/,执行命令返回状态.txt,IOS平台,的MDM方案Jav,a实现,6、其他命令说明,我们目前涉及到的几个设备安全管理的几个命令:,锁屏、清除密码、清除设备数据,其请求及执行流程和锁屏时一致的。,MDM相关资料及源码提供,一、主要文档及代码:,1、InsideAppleMDM_WP.pdf,2、MobileDeviceManagementProtocol.pdf,3、参考代码(附件文件夹),二、https证书参考:,1、edumdm证书相关(附件),2、mdm.mobileconfig 格式参考说明,三、MDM一些命令参考,1、锁屏命令和其他命令.txt,2、CheckIn返回.txt,3、openssl对mobileconfig文件签名.txt,4、执行命令返回状态.txt,四、MDM开发网页参考,1、网页资料(附件),Thank You!,
展开阅读全文