链接代理应用程序与注册设备MDM iOS

链接代理应用程序与注册设备MDM iOS,ios,mdm,Ios,Mdm,将设备注册到MDM服务器时,设备将向服务器发送设备UDID以进行标识。在该设备中,我还安装了一个代理应用程序,它需要获取设备UDID并将其用作与服务器通信的密钥,这样服务器就可以知道哪个注册设备正在发送消息。然而,问题是苹果限制了通过编码获取设备UDID的权利。我无法通过唯一的密钥链接应用程序和设备 我找到了一些链接解决方案,通过使用托管应用程序配置,并在密钥链中存储供应商密钥的标识,而不是UDID 对于托管应用程序配置解决方案,它只是将数据推送到托管应用程序,因此在我的情况下无法应用非托管应用

将设备注册到MDM服务器时,设备将向服务器发送设备UDID以进行标识。在该设备中,我还安装了一个代理应用程序,它需要获取设备UDID并将其用作与服务器通信的密钥,这样服务器就可以知道哪个注册设备正在发送消息。然而,问题是苹果限制了通过编码获取设备UDID的权利。我无法通过唯一的密钥链接应用程序和设备

我找到了一些链接解决方案,通过使用托管应用程序配置,并在密钥链中存储供应商密钥的标识,而不是UDID

对于托管应用程序配置解决方案,它只是将数据推送到托管应用程序,因此在我的情况下无法应用非托管应用程序

为了在Keychain中存储供应商密钥的标识符,我的想法是应用程序将获取该密钥并发送到服务器,同时,服务器还将查询设备以获取包含设备UDID的值。然后,它将比较重试的密钥和从代理应用程序发送的密钥,并将它们匹配。但问题是我找不到任何MDM命令来查询设备密钥链以获得该值

因此,我的问题是:

如何使用MDM服务查询设备密钥链以获取密钥? 对于如何将代理应用程序与注册设备链接,是否还有其他解决方案? 编辑 我找到了一个可行的解决方案。 安装*.mobileconfig配置文件后,设备将向服务器发送其UDID值。然后从Web服务器,它将通过URL方案在设备上打开应用程序,并将UDID附加到该应用程序。从应用程序内部,它可以处理以在方法中获取此值:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
但问题是Web服务器如何知道将在哪个设备上打开应用程序以连接正确的UDID?假设我有两个设备,device1和device2。当我在device1上打开应用程序时,我如何知道目标设备是device1并将device1的UDID附加到命令而不是device2的值


非常感谢你的帮助

是否可以使用企业分发而不是应用商店分发来安装代理?然后你可以使用私有API来读取UDID。我正在研究私有API来获取UDID,但还没有找到,你能推荐一个吗?嗯。我只是认为你可以,但似乎即使使用私有API,你也无法访问UDID。是的,没错。您知道服务器可以通过URL方案打开应用程序,其中包含UDID,然后应用程序可以获得该值吗?我不清楚这件事。我想那可能行得通。我不熟悉MDM配置文件注册的工作原理,但您的web服务器可能会向设备发送URI-如果您的应用程序已经安装了注册的URL方案,您可以重定向到您的应用程序,并在URI中包含UDID。我知道我必须在注册设备之前安装MobileIron应用程序,所以我想他们就是这样做的