共用方式為


OMA DM 通訊協定支援

OMA DM 用戶端會透過 HTTPS 與伺服器通訊,並使用 DM Sync (OMA DM v1.2) 作為訊息承載。 本文說明 DM 用戶端一般支援的 OMA DM 功能。 您可以在 OMA 網站上找到 OMA DM 通訊協定 v1.2 的完整描述。

OMA DM 標準

下表顯示 Windows 使用的 OMA DM 標準。

一般區域 支援的 OMA DM 標準
數據傳輸和會話
  • 透過 TLS/SSL 的用戶端起始遠端 HTTPS DM 工作階段。
  • 透過 TLS/SSL 的遠端 HTTPS DM 工作階段。
  • 透過簡訊服務 (SMS) 使用 WAP 推送的遠端 DM 伺服器起始通知。 企業管理未使用。
  • 透過簡訊使用 WAP 推送進行遠端啟動程式。 企業管理未使用。
  • Bootstrap XML OMA 用戶端布建 XML。
    DM 通訊協定命令 下列清單顯示裝置所使用的命令。 如需 OMA DM 命令元素的詳細資訊,請參閱 OMA 網站提供的「OMA 網站」。
  • 新增 (隱含新增支援的)
  • 警示 (DM 警示) :當使用者從裝置觸發 MDM 取消註冊動作或 CSP 完成某些異步動作時,企業管理用戶端會使用一般警示 (1226) 。 裝置警示 (1224) 用來通知伺服器一些裝置觸發的事件。
  • 不可部分完成:不支援在不可部分完成專案內的相同節點上執行 Add 命令,後面接著 Replace。 不允許巢狀不可部分完成和取得命令,併產生錯誤碼 500。
  • 刪除:從 DM 樹狀結構中移除節點,如果節點存在,則移除該節點下方的整個子樹狀結構
  • Exec:在用戶端裝置上叫用可執行檔
  • 取得:從用戶端裝置擷取數據;對於內部節點,Data 元素中的子節點名稱會以 URI 編碼格式傳回
  • 取代:覆寫用戶端裝置上的數據
  • 結果:將 Get 命令的數據結果傳回至 DM 伺服器
  • 順序:指定必須處理命令群組的順序
  • 狀態:指出作業成功或失敗) (完成狀態

    如果不是有效 OMA DM 命令的 XML 元素位於下列其中一個元素之下,則會針對該元素傳回狀態代碼 400:
  • SyncBody
  • 原子
  • 序列

    如果 DM 命令中未提供 CmdID,用戶端會傳回狀態元素中的空白,且狀態代碼為 400。

    如果 Atomic 元素是巢狀的,則會傳回下列狀態代碼:
  • 巢狀 Atomic 命令會傳回 500。
  • 父 Atomic 命令會傳回 507。

    如需 Atomic 命令的詳細資訊,請參閱 OMA DM 通訊協定通用元素。
    不支援在 Atomic 元素內的相同節點上執行 Add 命令,後面接著 Replace。

    LocURI 無法以 開 /頭。

    裝置會忽略 SyncHdr 中的 Meta XML 標籤。
  • OMA DM 標準物件 DevInfo
  • DevDetail
  • OMA DM DMS 帳戶物件 (OMA DM 1.2 版)
  • 安全性
  • 驗證企業管理 (未使用的 DM 伺服器起始通知 SMS 訊息)
  • 應用層基本和 MD5 客戶端驗證
  • 在應用層級使用 MD5 認證驗證伺服器
  • 在應用層級使用 HMAC 的數據完整性和驗證
  • TLS/SSL 層級憑證型用戶端/伺服器驗證、加密和數據完整性檢查
  • 節點 在 OMA DM 樹狀結構中,下列規則適用於節點名稱:
  • “.” 可以是節點名稱的一部分。
  • 節點名稱不能是空的。
  • 節點名稱不能只有星號 () * 字元。
  • 布建檔案 布建 XML 的格式必須正確,並遵循 SyncML 表示通訊協定中的定義。

    如果不是有效 OMA DM 命令的 XML 元素位於 SyncBody 之下,則會針對該元素傳回狀態代碼 400。
    注意
    若要將 Unicode 字串表示為 URI,請先將字元串編碼為 UTF-8。 然後使用 URI 編碼來編碼每個 UTF-8 位元組。
    WBXML 支援 Windows 支援以 XML 格式和編碼的 WBXML 格式傳送和接收 SyncML。 在註冊期間,您可以使用 w7 APPLICATION 特性下的 DEFAULTENCODING 節點來設定這個雙格式支援。 如需WBXML編碼的詳細資訊,請參閱 SyncML 表示通訊協定 規格的第 8 節。
    處理大型物件 在 Windows 10 中,已新增將大型物件上傳至伺服器的客戶端支援。

    OMA DM 通訊協定通用元素

    其他 OMA DM 專案類型會使用通用元素。 下表列出用來設定裝置的 OMA DM 通用元素。 如需 OMA DM 通用元素的詳細資訊,請參閱 OMA 網站提供的「SyncML 表示協定 裝置管理 用量」 (OMA-SyncML-DMRepPro-V1_1_2-20030613-A) 。

    元素 描述
    Chal 指定驗證挑戰。 如果原始要求訊息中未提供認證或認證不足,則伺服器或用戶端可以傳送挑戰給另一個。
    Cmd 指定 Status 元素中參考的 OMA DM 命令名稱。
    CmdID 指定OMA DM 命令的唯一標識碼。
    CmdRef 指定要傳回其狀態或結果資訊的命令標識碼。 此元素接受對應要求訊息的 CmdID 元素值。
    信譽 指定訊息產生者的驗證認證。
    最後 表示目前的訊息是封裝中的最後一個訊息。
    LocName 指定 Target 和 Source 元素中的顯示名稱,用於傳送 MD5 驗證的使用者識別碼。
    LocURI 指定目標或來源位置的位址。 如果位址包含非英數位元,則必須根據URL編碼標準正確逸出。
    MsgID 指定OMA DM 會話訊息的唯一標識碼。
    MsgRef 指定對應要求訊息的識別碼。 此元素接受要求訊息 MsgID 元素的值。
    RespURI 指定收件者傳送此訊息的回應時必須使用的 URI。
    SessionID 指定與包含訊息相關聯之 OMA DM 會話的識別碼。 如果伺服器未透過 DMClient CSP) 中的 SyncApplicationVersion 節點通知裝置支援新版本 (,則用戶端會以十進位格式傳回整數的 SessionID。 如果伺服器支援 Windows 中使用的 DM 工作階段同步 2.0 版,則裝置用戶端會傳回 2 個字節。
    Source 指定訊息來源位址。
    SourceRef 指定對應要求訊息的來源。 此元素會接受要求訊息Source元素的值,並在 Status 或 Results 元素中傳回。
    Target 指定 DM 樹狀結構中作為 OMA DM 命令目標的節點位址。
    TargetRef 指定對應要求訊息中的目標位址。 此元素接受要求訊息 Target 元素的值,並在 Status 或 Results 元素中傳回。
    VerDTD 指定用來表示訊息之 OMA DM 表示通訊協議規格的主要和次要版本識別碼。
    VerProto 指定與訊息搭配使用之 OMA DM 通訊協定規格的主要和次要版本識別碼。

    裝置管理會話

    裝置管理 (DM) 工作階段是由 DM 伺服器與用戶端裝置之間交換的一系列命令所組成。 伺服器會傳送命令,指出必須在用戶端裝置的管理樹狀結構上執行的作業。 用戶端會藉由傳送包含結果和任何要求狀態資訊的命令來回應。

    簡短 DM 工作階段的摘要如下:

    伺服器會將 Get 命令傳送至用戶端裝置,以擷取管理樹狀結構其中一個節點的內容。 裝置會執行作業,並以包含所要求內容的結果命令回應。

    DM 工作階段可以分成兩個階段:

    1. 安裝階段:為了回應觸發事件,用戶端裝置會將起始訊息傳送至 DM 伺服器。 裝置和伺服器交換需要驗證和裝置資訊。 此階段由步驟 1、2 和 3 表示。
    2. 管理階段:D M 伺服器處於控制狀態。 它會將管理命令傳送至裝置,且裝置會回應。 階段 2 會在 DM 伺服器停止傳送命令並終止工作階段時結束。 此階段由步驟 3、4 和 5 表示。

    下列信息顯示一般 DM 工作階段期間的事件順序。

    1. 系統會叫用 DM 用戶端以回呼管理伺服器

      企業案例 - 裝置工作排程會叫用 DM 用戶端。

      MO 伺服器會傳送伺服器觸發程式訊息來叫用 DM 用戶端。

      觸發程式訊息包含伺服器標識符,並指示用戶端裝置起始與伺服器的會話。 用戶端裝置會驗證觸發程式訊息,並確認伺服器已獲授權與其通訊。

      企業案例 - 在排程的時間,會定期叫用 DM 用戶端,以透過 HTTPS 回呼企業管理伺服器。

    2. 裝置會透過IP連線傳送訊息來起始會話。

      此訊息包含裝置資訊和認證。 用戶端和伺服器會透過 TLS/SSL 通道或 DM 應用層級進行相互驗證。

    3. DM 伺服器會透過IP連線 (HTTPS) 來回應。 伺服器會傳送初始裝置管理命令,如果有的話。

    4. 裝置會回應伺服器管理命令。 此訊息包含執行指定裝置管理作業的結果。

    5. DM 伺服器會終止會話或傳送另一個命令。 DM 工作階段結束,或是重複步驟 4。

    步驟編號不代表 msgID) (訊息標識碼。 來自伺服器的所有訊息都必須具有在會話中唯一的 MsgID,從第一則訊息的 1 開始,並針對每個額外的訊息增加 1。 如需 MsgID 和 OMA SyncML 通訊協定的詳細資訊,請參閱 OMA 裝置管理 表示通訊協定 (DM_RepPro-V1_2-20070209-A)

    在 OMA DM 應用層級相互驗證期間,如果伺服器要求中 Cred 元素的裝置回應碼為 212,則 DM 會話的其餘部分不需要進一步驗證。 如果發生 MD5 驗證, Chal 則可以傳回 專案。 然後,當下一個 DM 會話啟動時,必須在 MD5 摘要中使用下一個 nonce Chal

    如果要求包含認證,且要求的回應碼為 200,則必須在下一個要求內傳送相同的認證。 如果包含元素 Chal 且需要 MD5 驗證,則會使用下一個 nonce 透過 Chal 元素建立新的摘要,以供下一個要求使用。

    如需基本或 MD5 用戶端驗證、MD5 伺服器驗證、MD5 哈希和 MD5 nonce 的詳細資訊,請參閱 OMA 裝置管理 安全性規格 (OMA-TS-DM_Security-V1_2_1-20080617-A) 、 OMA 裝置管理 通訊協定規格中的驗證回應碼處理和逐步範例 (OMA-TS-DM_Protocol-V1_2_1-20080617-A) ,可從 OMA 網站取得。

    以用戶為目標與裝置目標設定

    針對支援每個用戶設定的 CSP 和原則,MDM 伺服器可以將用戶目標設定值傳送至 MDM 註冊用戶主動登入的裝置。 裝置會透過裝置警示通知伺服器登入狀態 (1224) ,其警示類型 = DM pkg#1。

    此警示的數據部分可能是下列其中一個字串:

    • 用戶:註冊裝置的用戶會主動登入。 MDM 伺服器可以針對支援每個使用者設定的 CSP/原則傳送使用者特定設定
    • 其他使用者:另一個使用者登入,但該用戶沒有 MDM 帳戶。 伺服器只能套用全裝置設定,例如,設定適用於裝置中的所有使用者。
    • 無:沒有作用中的使用者登入。 伺服器只能套用全裝置設定,且可用的設定僅限於裝置環境, (沒有作用中的使用者登入) 。

    以下是警示範例:

    <Alert>
        <CmdID>1</CmdID>
        <Data>1224</Data>
        <Item>
            <Meta>
                <Type xmlns="syncml:metinf">com.microsoft/MDM/LoginStatus</Type>
                <Format xmlns="syncml:metinf">chr</Format>
            </Meta>
            <Data>user</Data>
        </Item>
    </Alert>
    

    伺服器會透過管理節點 LocURL 的前置詞、 ./user 針對用戶目標設定或裝置目標設定,通知裝置是以用戶為目標或 ./device 以裝置為目標的組態。 根據預設,如果 或 沒有前置./device./user詞,則為以裝置為目標的設定。

    下列 LocURL 顯示每個使用者的 CSP 節點組態: ./user/vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/<PackageFamilyName>/StoreInstall

    下列 LocURL 顯示每個裝置的 CSP 節點組態: ./device/vendor/MSFT/RemoteWipe/DoWipe

    SyncML 回應狀態代碼

    在 OMA DM 中使用 SyncML 時,會傳回標準響應狀態代碼。 下表列出您可能會看到的常見 SyncML 回應狀態代碼。 如需 SyncML 回應狀態代碼的詳細資訊,請參閱 SyncML 表示通訊協定 規格的第 10 節。

    狀態碼 描述
    200 SyncML 命令已順利完成。
    202 接受以進行處理。 此程式代碼表示異步操作,例如執行應用程式遠端執行的要求。
    212 已接受驗證。 一般而言,您只會看到此程序代碼,以回應在 OMA-DM 標準) 中用於驗證的 SyncHdr 元素 (。 如果您查看 OMA DM 記錄,可能會看到此程式代碼,但 CSP 通常不會產生此程式碼。
    214 作業已取消。 SyncML 命令已順利完成,但不會在會話內處理其他命令。
    215 未執行。 由於用戶互動取消命令,因此未執行命令。
    216 Atomic 回復 [確定]。 命令位於 專案內 Atomic ,但 Atomic 失敗。 此命令已成功復原。
    400 不正確的要求。 無法執行要求的命令,因為語法不正確。 CSP 通常不會產生此錯誤,不過,如果您的 SyncML 格式不正確,您可能會看到此錯誤。
    401 無效的認證。 要求的命令失敗,因為要求者必須提供適當的驗證。 CSP 通常不會產生此錯誤。
    403 禁止。 要求的命令失敗,但收件者瞭解要求的命令。
    404 找不到。 找不到要求的目標。 如果您查詢不存在的節點,就會產生此程序代碼。
    405 不允許使用命令。 如果您嘗試寫入只讀節點,就會產生這個響應程序代碼。
    406 不支持選擇性功能。 如果您嘗試存取 CSP 不支援的屬性,就會產生此回應碼。
    415 不支援的類型或格式。 此回應碼可能是 XML 剖析或格式錯誤所造成。
    418 已經存在。 如果您嘗試新增已經存在的節點,就會發生此回應碼。
    425 許可權遭拒。 要求的命令失敗,因為寄件者沒有足夠的訪問控制許可權 (收件者上的 ACL) 。 「拒絕存取」錯誤通常會轉譯為此回應碼。
    500 命令失敗。 一般失敗。 收件者遇到非預期的情況,導致無法滿足要求。 當 SyncML DPU 無法對應原始的錯誤碼時,就會發生此回應碼。
    507 Atomic 失敗。 區塊中的其中一個 Atomic 作業失敗。
    516 Atomic 回復失敗。 作業 Atomic 失敗,且命令未成功回復。

    設定服務提供者參考