首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >苹果iOS MDM服务器设置设备注册/配置

苹果iOS MDM服务器设置设备注册/配置
EN

Stack Overflow用户
提问于 2013-01-25 13:45:47
回答 1查看 10.5K关注 0票数 5

我们正在尝试设置我们自己的内部苹果MDM服务器,我们遇到了一些问题,因为根据iOS文档,我们看到的内容并不一定与我们的预期相符。

按照Apple网站上的说明,我们设置了一个网页,用户可以通过点击链接来注册他们的设备。此链接会使设备经历“设备注册过程”,如苹果"Over- the -Air Profile Delivery and Configuration“文档的图1.1所示:https://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/iPhoneOTAConfiguration/Introduction/Introduction.html

我们的问题是:在上面提到的文档中,直到第三阶段(设备配置)的开始,我们已经有了预期的功能。但是,当我们查看web服务器和设备之间的流量时,注册流似乎执行了两次。这些是我们期望看到的对服务器的调用,基于文档:

代码语言:javascript
运行
复制
/enroll
/scep?operation=GetCACert&message=EnrollmentCAInstance
/scep?operation=GetCACaps&message=EnrollmentCAInstance
/scep?operation=PKIOperation&message=MII.....AAA

然而,在现实中,我们看到这一块调用被执行了两次,一个接一个,看起来是相同的数据。有没有人看到过这种行为,这是意料之中的吗?

一个更紧迫的问题是,在执行完阶段2、步骤3之后,我们将生成的证书向下传递给成功安装的设备。然而,根据文档,在这一点上,我们应该从设备获得响应,我们可以使用新的配置文件回复,以及我们想要在设备上设置的设置。然而,我们从来没有得到过这样的响应,即使到那时为止一切似乎都成功完成了。有没有人知道为什么没有发送响应,或者在这一点上可能出了什么问题?

提前谢谢你,

使用iphone配置实用程序检索的设备日志:

代码语言:javascript
运行
复制
<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.

发送到MDM服务器的完整请求流:

代码语言:javascript
运行
复制
/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

添加作为SCEP配置的一部分发回的有效负载:

代码语言:javascript
运行
复制
<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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-26 00:21:42

回答你关于两个SCEP块执行的问题。

请看这个问题:Update an expired iOS MDM profile

在回答中,我描述了设备为什么要进行两次SCEP调用。这是每种设计(没什么问题)。

关于阶段2的问题,步骤3。您能否a)在您的问题中添加对服务器的呼叫的完整打印输出b)设备日志

当我使用MDM时,我发现如果没有这两条信息,几乎不可能排除故障。

--更新1 --

调用的正确顺序如下

协议的OTA部分

/enroll

返回:请求UDID、IMEI等的第一个配置文件

/profile

Input:由iOS设备私钥签名的UDID、IMEI等/ Return:带有SCEP有效负载的配置文件

/scep?operation=GetCACert&message=EnrollmentCAInstance

/scep?operation=GetCACaps&message=EnrollmentCAInstance

/scep?operation=PKIOperation&message=MII.....AAA

这是SCEP对设备的调用,以获取用于OTA部分返回的标识: OTA身份证书。

/profile

输入:由与OTA证书关联的私钥签名的UDID、IMEI等返回:带有SCEP有效负载的配置文件+ MDM有效负载

/scep?operation=GetCACert&message=EnrollmentCAInstance

/scep?operation=GetCACaps&message=EnrollmentCAInstance

/scep?operation=PKIOperation&message=MII.....AAA

这是SCEP调用设备获取用于MDM部分返回的标识: MDM身份证书。

协议的MDM部分

/checkin输入:签入请求返回: HTTP代码200

正如你所看到的,它与你所拥有的非常不同。您是否按照OTA交付和配置中所述实施了所有内容?真的很难猜测出了什么问题,因为看起来"/profile“用法的整个部分都丢失了。

我建议从头开始,并确保每个对服务器的调用都是按照描述的顺序完成的,并返回描述的返回配置文件。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14516065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档