从 MDM 服务器验证配置字典

Posted

技术标签:

【中文标题】从 MDM 服务器验证配置字典【英文标题】:Validating configuration dictionary from MDM server 【发布时间】:2013-10-11 19:35:23 【问题描述】:

我正在开发一个使用 JAMF 作为我的 MDM 服务器的 MDM 解决方案。我正在使用 Apple 的新 API,利用 com.apple.configuration.managed 从推送服务器获取配置字典。在我的NSNotificationCenter. 中使用NSUserDefaultsDidChangeNotification 更改字典时,我注册以收到通知

我遇到的问题是我想在收到字典时对其进行验证,以确保标签和一切都正确。当我测试这个时,我会改变类似的东西

<key>Some_Key</key>

<key>Some_Key<key>

当我提交损坏的字典时,我从来没有收到有关字典更改的通知,我的控制台只会读出:

Oct 11 15:26:21-iPad mdmd[2772] <Notice>: (Note ) MDM: Push token received.
Oct 11 15:26:21-iPad mdmd[2772] <Notice>: (Note ) MDM: Received push notification.
Oct 11 15:26:21-iPad mdmd[2772] <Notice>: (Warn ) MDM: Ignoring extra keys in push dictionary: 
        time = 1381519580;
    
Oct 11 15:26:21-iPad mdmd[2772] <Notice>: (Note ) MDM: Polling MDM server https://jss.jamfcloud.com/mycompany/mdm/ServerURL for next command.
Oct 11 15:26:21-iPad mdmd[2772] <Notice>: (Note ) MDM: Could not send response to MDM server. Error: NSError:
    Desc   : A connection to the server could not be established.
    US Desc: A connection to the server could not be established.
    Domain : MCHTTPTransactionErrorDomain
    Code   : 23001
    Type   : MCFatalError
    Params : (
        "https://jss.jamfcloud.com/mycompany/mdm/ServerURL",
        400
    )

我显然收到了推送,它在第二行中这么说,但由于它无效,我猜它不会更改存储在 com.apple.configuration.managed 中的字典。我如何拦截这样的错误,以便通知用户服务器配置不正确?

【问题讨论】:

我创建了一个简单的服务来安装和配置托管应用程序。如果您对此仍有疑问,请查看 - testmdm.cloudapp.net 【参考方案1】:

以下是对 MDM 工作原理的高级描述:

1) 您发送推送通知。此通知只是一条“回电”消息。

2) MDM 客户端(集成在 ios 中)转到您的服务器以接收一个或多个命令(例如设置应用配置字典)

3) MDM 客户端执行这些命令

所以,你是对的,你收到了推送。但是,您的应用程序在第 2 项失败。它不接收命令,所以它不知道它是设置应用程序配置的命令还是擦除设备的命令。

因此,首先您需要让基本的 MDM 协议正常工作,然后才能使用其他命令。我相信即使您提交了正确的字典,您也不会收到通知。

【讨论】:

以上是关于从 MDM 服务器验证配置字典的主要内容,如果未能解决你的问题,请参考以下文章

开源MDM服务器的选择

配置MDM的描述文件

iOS MDM 服务器 SSL 证书不受设备信任

如何在 iPhone 中安装 MDM 配置文件?

Apple iOS MDM 服务器设置设备注册/配置

MDM大批量数据同步测试验证