2

iOS デバイスを管理するための iOS MDM サーバーを構築しています。以下は、iOS デバイスを MDM サーバーに登録する際に必要な手順です。

  1. 登録構成の送信
  2. SCEP を実行する
  3. MDM サーバー証明書を送信します。
  4. APNS 証明書を作成します。
  5. デバイスにプッシュ通知を送信します。

デバイスはプッシュ通知を受信し、MDM サーバーの「serverUrl」に接続します。以下に示す Status = "Idle" で応答します

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Status</key>
    <string>Idle</string>
    <key>UDID</key>
    <string><udid-of-device></string>
</dict>
</plist>

このデバイス情報取得コマンドに対して、以下のように応答します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Command</key>
        <dict>
            <key>RequestType</key>
            <string>DeviceInformation</string>
            <key>Queries</key>
            <array>
                <string>UDID</string>
                <string>DeviceName</string>
                <string>OSVersion</string>
                <string>ModelName</string>
                <string>IMEI</string>
            </array>
        </dict>
        <key>CommandUUID</key>
        <string>command-for-the-session</string>
    </dict>
</plist>

デバイスは、以下に示すようにデバイス情報を返します

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CommandUUID</key>
    <string>command-for-the-session</string>
    <key>QueryResponses</key>
    <dict>
        <key>DeviceName</key>
        <string>iPhone</string>
        <key>IMEI</key>
        <string>01 353150 432467 8</string>
        <key>ModelName</key>
        <string>iPhone</string>
        <key>OSVersion</key>
        <string>7.1</string>
        <key>UDID</key>
        <string><udid-device></string>
    </dict>
    <key>Status</key>
    <string>Acknowledged</string>
    <key>UDID</key>
    <string><udid-device></string>
</dict>
</plist>

このフローは必要に応じて機能します。この後、デバイスに送信するものがないため、デバイスとの接続を終了したいと思います。

私の質問は、その CommandUUID の有効な詳細をデバイスから受け取った後、この接続を停止または閉じる方法です。mdm サーバーの URL を呼び出し続け、接続を終了しません。

接続を停止するために空の plist を送信しようとしましたが、うまくいきませんでした。

親切に助けてください。

読んでくれてありがとう。!

4

2 に答える 2

1

デバイスは、以下を送信することにより、継続的にサーバーに新しいコマンドを問い合わせます。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Status</key>
    <string>Idle</string>
    <key>UDID</key>
    <string><udid-of-device></string>
</dict>
</plist>

この場合、コマンドがない場合は、本文が空の HTTP 200 を返す必要があります。これは、次のプッシュ通知を送信するまでポーリングを停止する必要があることをデバイスに通知します。

于 2014-08-20T16:38:58.167 に答える