Haw*_*001 5 mdm ios provisioning-profile
我们正在尝试设置我们自己的内部iOS MDM服务器,并且我们遇到了一些问题,根据Apple文档,我们看到的内容并不一定符合我们的预期.
按照Apple网站上的说明,我们设置了一个网页,用户可以通过点击链接注册他们的设备.此链接使设备通过"设备注册过程",如苹果"无线配置文件传送和配置"文档的图1.1所示:https://developer.apple.com/library/ios/#文档/ NetworkingInternet /概念/ iPhoneOTAConfiguration /简介/ Introduction.html
我们的问题是:在上述文档的第3阶段(设备配置)开始之前,我们的工作正常.但是,当我们查看Web服务器和设备之间的流量时,似乎注册流程执行了两次.根据文档,这些是我们希望看到服务器的调用:
/enroll
/scep?operation=GetCACert&message=EnrollmentCAInstance
/scep?operation=GetCACaps&message=EnrollmentCAInstance
/scep?operation=PKIOperation&message=MII.....AAA
Run Code Online (Sandbox Code Playgroud)
但是,实际上,我们看到调用块一次又一次地执行,看起来是相同的数据.有没有人看过这种行为,是否有望?
一个更紧迫的问题是,在第2阶段执行第3步后,我们将生成的证书传递给设备,该设备已成功安装.但是,根据该文档,此时我们应该从设备返回一个响应,我们可以使用我们想要在设备上设置的设置使用新的配置文件进行回复.但是,即使到目前为止的所有内容都已成功完成,我们也永远不会得到响应.有谁知道为什么没有发送响应,或者那时可能出现什么问题?
提前致谢,
使用iphone配置实用程序检索的设备日志:
<Notice>: (Note ) MC: Profile “com.test.profileservice.scep” queued for installation.
<Notice>: (Note ) MC: Checking for MDM installation...
<Notice>: (Note ) MC: ...finished checking for MDM installation.
<Notice>: (Note ) MC: Enrolling in OTA Profile service...
<Error>: Jan 25 16:34:13 SecTrustEvaluate [leaf AnchorTrusted]
<Error>: Jan 25 16:34:14 SecTrustEvaluate [leaf AnchorTrusted]
<Notice>: (Note ) MC: Attempting to retrieve issued certificate...
<Notice>: (Note ) MC: Issued certificate received.
<Notice>: (Note ) MC: Retrieving profile from OTA Profile service...
<Notice>: (Note ) MC: Received final profile: Test Config
<Notice>: (Note ) MC: Beginning profile installation...
<Error>: Jan 25 16:34:17 SecTrustEvaluate [leaf AnchorTrusted]
<Notice>: (Note ) MC: Attempting to retrieve issued certificate...
<Notice>: (Note ) MC: Issued certificate received.
<Notice>: (Note ) MC: Profile “Test Config” installed.
<Error>: Checking for changed log settings
<Error>: valid 0 value 0
<Error>: Verbose logging disabled
<Notice>: (Note ) MC: mc_mobile_tunnel starting.
<Notice>: (Note ) MC: mc_mobile_tunnel shutting down.
Run Code Online (Sandbox Code Playgroud)
发送到MDM服务器的完整请求流:
/enroll
/checkin
/scep?operation=GetCACert&message=EnrollmentCAInstance
/scep?operation=GetCACaps&message=EnrollmentCAInstance
/scep?operation=PKIOperation&message=MII.....AAA
/checkin
/scep?operation=GetCACert&message=EnrollmentCAInstance
/scep?operation=GetCACaps&message=EnrollmentCAInstance
/scep?operation=PKIOperation&message=MII.....AAA
Run Code Online (Sandbox Code Playgroud)
添加作为SCEP配置的一部分发回的有效负载:
<plist version="1.0">
<dict>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadUUID</key>
<string>Ignored</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadIdentifier</key>
<string>Test Config</string>
<key>PayloadDisplayName</key>
<string>Test Profile:SCEP</string>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadContent</key>
<dict>
<key>URL</key>
<string>https://test.com/mdm_scep</string>
<key>Name</key>
<string>EnrollmentCAInstance</string>
<key>Subject</key>
<array>
<array>
<array>
<string>O</string>
<string>Test Organization, Inc.</string>
</array>
</array>
<array>
<array>
<string>CN</string>
<string>test.com</string>
</array>
</array>
</array>
<key>Challenge</key>
<string>DummyChallenge</string>
<key>Keysize</key>
<integer>1024</integer>
<key>Key Type</key>
<string>RSA</string>
<key>Key Usage</key>
<integer>5</integer>
</dict>
<key>PayloadDescription</key>
<string>Provides device encryption identity</string>
<key>PayloadUUID</key>
<string>12345678-1234-1234-1234-123456789012</string>
<key>PayloadType</key>
<string>com.apple.security.scep</string>
<key>PayloadDisplayName</key>
<string>Encryption Identity</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadOrganization</key>
<string>Test Organization, Inc.</string>
<key>PayloadIdentifier</key>
<string>com.test.profileservice.scep</string>
</dict>
</array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
回答有关两个 SCEP 块执行的问题。
请看一下这个问题: 更新过期的 iOS MDM 配置文件
在答案中,我描述了设备执行两次 SCEP 调用的原因。这是按照设计的(没有错)。
关于第 2 阶段第 3 步的问题。您可以 a) 在您的问题中添加对服务器的调用的完整打印输出 b) 设备日志
当我使用 MDM 时,我发现如果没有这两条信息,几乎不可能对其进行故障排除。
-- 更新1 --
正确的调用顺序如下
协议的 OTA 部分
/enroll
返回:第一个配置文件请求 UDID、IMEI 等
/profile
输入:由 iOS 设备私钥签名的 UDID、IMEI 等/ 返回:带有 SCEP 负载的配置文件
/scep?operation=GetCACert&message=EnrollmentCAInstance
/scep?operation=GetCACaps&message=EnrollmentCAInstance
/scep?操作=PKIOperation&消息=MII.....AAA
这是 SCEP 要求设备获取用于 OTA 部分的标识 返回:OTA 身份证书。
/轮廓
输入:由与 OTA 证书关联的私钥签名的 UDID、IMEI 等 返回:具有 SCEP 有效负载 + MDM 有效负载的配置文件
/scep?operation=GetCACert&message=EnrollmentCAInstance
/scep?operation=GetCACaps&message=EnrollmentCAInstance
/scep?操作=PKIOperation&消息=MII.....AAA
这是 SCEP 要求设备获取用于 MDM 部分的标识 返回:MDM 身份证书。
协议的 MDM 部分
/checkin 输入:签入请求 返回:HTTP 代码 200
正如您所看到的,它与您拥有的非常不同。您是否按照 [OTA 交付和配置][1] 中所述实施了所有内容?真的很难猜测出了什么问题,因为看起来“/profile”用法的整个部分都丢失了。
我建议从头开始,确保对服务器的每次调用都按描述的顺序完成并返回描述的返回配置文件。
| 归档时间: |
|
| 查看次数: |
10302 次 |
| 最近记录: |