我的公司里有很多iOS设备,我必须集中管理它们,所以我们尝试使用第三方MDM应用程序,例如:airwatch,但成本非常高。
我们决定不使用它,并考虑从头开始创建MDM。我们尝试了所有在线提供的解决方案但我没有得到任何解决方案任何人都可以帮助我。
答案 0 :(得分:38)
iOS MDM是无客户端协议。因此,您开发了一个服务器,但是您没有为它开发客户端应用程序。实际上,有一个客户端应用程序,但它由Apple开发并内置到操作系统中。
因此,您的服务器将发送命令,内置的MDM客户端将接收并执行它。
一般来说,如果要开发MDM服务器,则需要注册到Enterprise Developer Program并获取MDM文档。
文档here它可以帮助您从头开始创建自己的mdm解决方案我相信
开发mdm服务器的其他一些有用的链接 Ref 1, Ref 2
以下是堆栈溢出浏览中MDM tag的链接,这将有助于您获得大多数常见问题解答
如果您想在此处做出任何澄清,请完成以下评论。 我已经准备好帮助你
了<强>概述强>
为了管理设备,我们可以使用iOS设置应用
手动配置它但它存在可扩展性问题,并且需要手动配置每个设备并且需要物理访问才能进行大量工作
所以Apple介绍了iPCU(iPhone配置实用程序)工具,我们可以使用它来创建配置文件(.moibleconfig),我们可以通过USB或OTA(空中)安装它
但它需要用户互动
因此,苹果推出了适用于iOS的MDM服务,它不需要用户交互,我们可以在没有用户同意的情况下轻松完成许多工作,例如远程锁定,解锁,擦除,配置邮件等......
MDM基本上是一种协议,您可以使用它远程管理设备。
概述
我们在iOS设置应用中进行的更改存储在 / var / mobile / Library / ConfigurationProfiles as .plist文件以及iPCU和MDM安装的配置文件(.plist)
假设我们正在关闭设备中的App Store应用安装,为此,我们将设置 - >限制并关闭App Store安装,以便 allowAppInstallation 在其配置(.plist)中将变为false。假设我们正在使用iPCU以及MDM配置应用程序安装,那么当我们的配置配置文件之间出现冲突时,我们将采取最严格的限制。 iOS设置应用配置文件,iPCU配置文件和MDM配置文件。
iOS通过合并所有这些配置文件创建一个名为ProfileTruth.plist的配置文件,iOS工作与此plist相关
MDM基本上由这些东西组成
iOS设备
它可以是使用iOS运行的任何设备。所有iOS设备都有一个内置的MDM客户端。它将根据MDM服务器提供的指令进行操作
MDM Server
它基本上是一个托管在应用程序或Web服务器上的应用程序,它将命令提供给iOS设备上托管的MDM客户端
信令
这是一种从服务器调用mdm客户端的机制,在我们的例子中是APNS
此处我附上了MDM工作流程
MDM注册
首先是MDM注册资料
在iPCU中,您可以选择MDM有效负载
创建新的配置文件签入网址
The is the URL where enrolment of the device happens.
i.e upon installation of profile on the device MDM client sends necessary information to the MDM server which MDM server will use to authenticate and connect with the device
服务器网址
Once the MDM server got the enrolment information.It can use the information to connect the device using APNS and when MDM client wakes up it connects with the URL mentioned in Server URL and Server can send back the queued commands to MDM client
主题
Enter the subject of APNS certificate that's going to be used for MDM.
身份
It can be any certificate generated by Certificate Assistant but important thing is it has to be signed by globally trusted CA or in the case of self signed CA the CA has be installed in the device.
安装MDM注册配置文件
您可以使用无线或通过USB
安装此配置文件安装完成后,iOS内置客户端将通过Authenticate请求连接到MDM服务器(Check In URL)
PUT:/ checkin
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>MessageType</key>
<string>Authenticate</string>
<key>Topic</key>
<string>com.example.mdm.pushcert</string>
<key>UDID</key>
<string> [ redacted ] </string>
</dict>
</plist>
现在服务器可以接受或拒绝身份验证请求。为了接受服务器必须用空白plist响应
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
</dict>
</plist>
收到回复后,MDM客户端将发送 TokenUpdate 请求
PUT:/ checkin
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>MessageType</key>
<string>TokenUpdate</string>
<key>PushMagic</key>
<string> [ redacted uuid string ] </string>
<key>Token</key>
<data> [ 32 byte string, base64 encoded, redacted ] </data>
</data>
<key>Topic</key>
<string>com.example.mdm.pushcert</string>
<key>UDID</key>
<string> [ redacted ] </string>
<key>UnlockToken</key>
<data>
[ long binary string encoded in base64, redacted ]
</data>
</dict>
</plist>
再次,服务器需要发送普通plist来完成注册过程
MDM服务器必须在服务器中存储以下密钥
PushMagic
服务器必须将此附加到它发送的所有Push通知以连接MDM客户端
令牌
标识设备到APNS的唯一ID
UnlockToken
用于清除设备密码的密钥。
管理设备
现在,服务器必须通过将 Token 传递给Token for Push通知库并将 Pushmagic 的Payload作为密钥 MDM的值>来发送推送通知EM>
{"mdm":"996ac527-9993-4a0a-8528-60b2b3c2f52b"}
请参阅此有效负载中 aps
设备收到推送通知后,MDM客户端会联系服务器URL ,而不是签入URL 状态空闲
PUT:/ server
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Status</key>
<string>Idle</string>
<key>UDID</key>
<string> [ redacted ] </string>
</dict>
</plist>
然后,服务器以其为该设备排队的任何命令进行响应。
让我们看一下设备锁定
的示例 The server has to respond with command like this to the client request
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Command</key>
<dict>
<key>RequestType</key>
<string>DeviceLock</string>
</dict>
<key>CommandUUID</key>
<string></string>
</dict>
</plist>
当MDM客户端因先前发送的状态空闲请求而收到此消息时,它会立即锁定设备并使用以下标准确认响应服务器
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CommandUUID</key>
<string></string>
<key>Status</key>
<string>Acknowledged</string>
<key>UDID</key>
<string> [ redacted ] </string>
</dict>
</plist>
你可以在这里找到一些命令列表
这就是全部。这种方法可以做一个简单的演示。
注意:
我会尝试微调或添加更多内容以便于理解
答案 1 :(得分:2)
请完成此link和内容
关于移动设备管理
移动设备管理(MDM)协议为系统管理员提供了一种向运行iOS 4及更高版本的托管iOS设备,运行OS X v10.7及更高版本的OS X设备以及运行iOS的Apple TV设备发送设备管理命令的方法7(Apple TV软件6.0)及更高版本。通过MDM服务,IT管理员可以检查,安装或删除配置文件;删除密码;并在受管设备上开始安全擦除。
MDM协议建立在HTTP,传输层安全性(TLS)和推送通知之上。相关的MDM签入协议提供了一种将初始注册过程委派给单独服务器的方法。
MDM使用Apple推送通知服务(APNS)向受管设备发送“唤醒”消息。然后,设备连接到预定的Web服务以检索命令并返回结果。
要提供MDM服务,您的IT部门需要部署HTTPS服务器以充当MDM服务器,然后将包含MDM有效负载的配置文件分发到您的受管设备。
受管设备使用标识通过TLS(SSL)向MDM服务器验证自身。此标识可以作为证书有效负载包含在配置文件中,也可以通过使用SCEP注册设备来生成。
注意:有关SCEP的信息,请参阅位于datatracker.ietf.org/doc/draft-nourse-scep/的SCEP规范草案。 MDM有效负载可以放置在使用电子邮件或网页分发的配置文件(.mobileconfig)文件中,作为通过无线注册服务提供的最终配置文件的一部分,或自动使用设备注册程序。在任何给定时间,设备上只能安装一个MDM有效负载。
通过MDM服务安装的配置文件和配置文件称为托管配置文件。删除MDM有效内容后,将自动删除这些配置文件。虽然MDM服务可能有权检查设备以获取配置文件或配置文件的完整列表,但它可能只删除最初安装的应用程序,配置文件和配置文件。使用托管配置文件安装的帐户称为管理帐户。
除了托管配置文件,您还可以使用MDM安装应用程序。通过MDM服务安装的应用程序称为托管应用程序。 MDM服务可以进一步控制托管应用及其数据在设备上的使用方式。
运行iOS 5及更高版本的设备在准备使用Apple Configurator 2进行部署时可以指定为受监督设备。此外,可以使用设备注册程序监控运行iOS 7及更高版本的设备。受监督的设备为组织提供对其配置和限制的额外控制。在本文档中,如果任何配置选项仅限于受监督设备,则其描述会指出该限制。
除非使用设备注册程序安装配置文件,否则用户可以随时删除包含MDM有效内容的配置文件。 MDM服务器始终可以删除自己的配置文件,无论其访问权限如何。在OS X v10.8及更高版本和iOS 5中,MDM客户端在删除配置文件时单次尝试使用CheckOut命令联系服务器。在早期的OS版本中,当用户删除有效负载时,设备不会联系MDM服务器。有关如何检测不再管理的设备的建议,请参阅MDM最佳实践。
除非使用设备注册程序安装,否则无法锁定包含MDM有效内容的配置文件。但是,可以锁定通过MDM安装的托管配置文件。删除主MDM配置文件时,即使它们已被锁定,也会删除通过MDM安装的所有托管配置文件。
概览
本文档是为系统管理员和系统集成商编写的,他们设计用于管理企业环境中设备的软件。
MDM签入协议允许设备联系您的服务器 在初始化期间使用MDM签入协议来验证设备是否有资格进行MDM注册,并通知服务器设备的设备令牌已更新。
相关章节:MDM签到协议 MDM协议向设备发送管理命令 (主)MDM协议使用推送通知来告知受管设备执行特定功能,例如删除应用程序或执行远程擦除。
相关章节:移动设备管理(MDM)协议 您设计有效负载的方式 为了最大限度地提高效率和安全性,请安装仅包含最基本MDM管理信息的基本配置文件,然后在管理设备后将其他配置文件安装到设备。
相关章节:MDM最佳实践 设备注册程序允许您使用“设置助理”配置设备 基于HTTP的设备注册计划可满足大量购买和部署设备的组织的大规模配置需求,无需在部署之前进行工厂定制或设备预配置。
云服务API提供配置文件管理和映射。使用此API,您可以创建配置文件,更新配置文件,删除配置文件,获取设备列表,以及将这些配置文件与特定设备相关联。
相关章节:设备注册计划 批量购买计划允许您为用户和设备分配应用程序许可 批量购买计划提供了许多Web服务,MDM服务器可以调用这些服务来将批量购买与特定用户或设备相关联。
相关章节:VPP App Assignment 可以通过Apple推送证书门户生成Apple推送通知证书 在从客户收到CSR之前,必须通过iOS Provisioning Portal下载“MDM签名证书”和相关的信任证书。然后,您必须使用该证书签署客户的证书。