5

私たちは独自の内部 iOS MDM サーバーをセットアップしようとしていますが、Apple のドキュメントに基づいて、私たちが見ているものが私たちが期待しているものと必ずしも一致しないといういくつかの問題がありました.

Apple サイトの指示に従って、ユーザーがリンクをクリックしてデバイスを登録できる Web ページをセットアップします。このリンクにより、Apple の「Over-The-Air Profile Delivery and Configuration」ドキュメントの図 1.1 に示されているように、デバイスは「デバイス登録プロセス」を通過します: https://developer.apple.com/library/ios/# documentation/NetworkingInternet/Conceptual/iPhoneOTAConfiguration/Introduction/Introduction.html

私たちの質問は次のとおりです。上記のドキュメントのフェーズ 3 (デバイス構成) の開始までは、期待どおりに機能しています。ただし、Web サーバーとデバイス間のトラフィックを見ると、登録フローが 2 回実行されているように見えます。これらは、ドキュメントに基づいて、サーバーに表示されると予想される呼び出しです。

/enroll
/scep?operation=GetCACert&message=EnrollmentCAInstance
/scep?operation=GetCACaps&message=EnrollmentCAInstance
/scep?operation=PKIOperation&message=MII.....AAA

しかし、実際には、同じデータのように見える呼び出しのブロックが、2 回連続して実行されていることがわかります。誰かがその動作を見たことがありますか?それは期待されていますか?

より差し迫った問題は、フェーズ 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.

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

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>
4

1 に答える 1

4

2 つの SCEP ブロックの実行に関する質問に答えます。

この質問を見てください: 期限切れの iOS MDM プロファイルを更新する

回答で、デバイスが 2 つの SCEP 呼び出しを行う理由を説明しました。それは設計ごとです(何も問題はありません)。

フェーズ 2 のステップ 3 の問題について。お願いできますか a) サーバーへの呼び出しの完全なプリントアウトを質問に追加してください b) デバイスのログ

MDM を使用しているときに、これら 2 つの情報がなければトラブルシューティングを行うことはほとんど不可能であることがわかりました。

-- アップデート 1 --

呼び出しの正しい順序は次のとおりです

プロトコルの OTA 部分

/enroll
Return: UDID、IMEI などを要求する最初のプロファイル

/profile
入力: iOS デバイスの秘密鍵によって署名された UDID、IMEI など/ 戻り値: SCEP ペイロードを含むプロファイル

/scep?operation=GetCACert&message=EnrollmentCAInstance

/scep?operation=GetCACaps&message=EnrollmentCAInstance

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

これは、デバイスが OTA 部分に使用される ID を取得するための SCEP 呼び出しです。戻り値: OTA ID 証明書。

/プロフィール

入力: OTA 証明書に関連付けられた秘密鍵で署名された UDID、IMEI など 戻り: SCEP ペイロード + MDM ペイロードを含むプロファイル

/scep?operation=GetCACert&message=EnrollmentCAInstance

/scep?operation=GetCACaps&message=EnrollmentCAInstance

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

これは、デバイスが MDM 部分に使用される ID を取得するための SCEP 呼び出しです。戻り値: MDM ID 証明書。

プロトコルの MDM 部分

/checkin 入力: チェックイン要求 Return: HTTP コード 200

ご覧のとおり、あなたが持っているものとは非常に異なります。[OTA 配信と構成][1] で説明されているようにすべてを実装しましたか? 「/profile」の使用箇所全体が欠落しているように見えるため、何が問題なのかを推測するのは非常に困難です。

最初から開始し、サーバーへの各呼び出しが記述された順序で実行され、記述された戻りプロファイルが返されることを確認することをお勧めします。

于 2013-01-25T16:21:41.703 に答える