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 標準 |
---|---|
數據傳輸和會話 | |
Bootstrap XML | OMA 用戶端布建 XML。 |
DM 通訊協定命令 | 下列清單顯示裝置所使用的命令。 如需 OMA DM 命令元素的詳細資訊,請參閱 OMA 網站提供的「OMA 網站」。 如果不是有效 OMA DM 命令的 XML 元素位於下列其中一個元素之下,則會針對該元素傳回狀態代碼 400: 如果 DM 命令中未提供 CmdID,用戶端會傳回狀態元素中的空白,且狀態代碼為 400。 如果 Atomic 元素是巢狀的,則會傳回下列狀態代碼: 如需 Atomic 命令的詳細資訊,請參閱 OMA DM 通訊協定通用元素。 不支援在 Atomic 元素內的相同節點上執行 Add 命令,後面接著 Replace。 LocURI 無法以 開 / 頭。裝置會忽略 SyncHdr 中的 Meta XML 標籤。 |
OMA DM 標準物件 | DevInfo |
安全性 | |
節點 | 在 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 工作階段可以分成兩個階段:
- 安裝階段:為了回應觸發事件,用戶端裝置會將起始訊息傳送至 DM 伺服器。 裝置和伺服器交換需要驗證和裝置資訊。 此階段由步驟 1、2 和 3 表示。
- 管理階段:D M 伺服器處於控制狀態。 它會將管理命令傳送至裝置,且裝置會回應。 階段 2 會在 DM 伺服器停止傳送命令並終止工作階段時結束。 此階段由步驟 3、4 和 5 表示。
下列信息顯示一般 DM 工作階段期間的事件順序。
系統會叫用 DM 用戶端以回呼管理伺服器
企業案例 - 裝置工作排程會叫用 DM 用戶端。MO 伺服器會傳送伺服器觸發程式訊息來叫用 DM 用戶端。
觸發程式訊息包含伺服器標識符,並指示用戶端裝置起始與伺服器的會話。 用戶端裝置會驗證觸發程式訊息,並確認伺服器已獲授權與其通訊。
企業案例 - 在排程的時間,會定期叫用 DM 用戶端,以透過 HTTPS 回呼企業管理伺服器。裝置會透過IP連線傳送訊息來起始會話。
此訊息包含裝置資訊和認證。 用戶端和伺服器會透過 TLS/SSL 通道或 DM 應用層級進行相互驗證。
DM 伺服器會透過IP連線 (HTTPS) 來回應。 伺服器會傳送初始裝置管理命令,如果有的話。
裝置會回應伺服器管理命令。 此訊息包含執行指定裝置管理作業的結果。
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 失敗,且命令未成功回復。 |