簡介
配置文件的安裝有以下幾種方式:
- 方式一栖袋、使用
Apple Configurator 2
安裝- 方式二、通過郵件的方式
- 方式三抚太、通過網(wǎng)頁的方式
- 方式四栋荸、通過
over-the-air
的方式這里我們使用了方式三來安裝。配置文件的安裝經(jīng)歷三個過程:通過網(wǎng)頁訪問下載文件凭舶、根據(jù)提示安裝晌块,設備認證過程,設備更新Token信息的過程帅霜。
設備認證
主動以PUT 請求的方式訪問 CheckInURL
提交設備相關的信息匆背,發(fā)送的內容如下:
20170807更新:不斷有簡友發(fā)信好奇這個操作是如何進行的比如沒有安裝APP呀或其他看的見的操作之類的?請求方式為什么是PUT請求呢身冀?
我的理解及解答
問題1:是的钝尸,不需要人為 的操作括享,這一請求是在安裝好配置文件的瞬間,有iOS系統(tǒng)自動發(fā)起的珍促。因為iOS本身支持MDM服務铃辖,同時也實現(xiàn)了MDM協(xié)議。其實這個和HTTP協(xié)議類似猪叙,都是一個通信的機制娇斩,只要客戶端和服務端都實現(xiàn)了協(xié)議,雙方才能正常的通信交流穴翩。不過這里的客戶端都是iOS系統(tǒng)本身完成的犬第,我們要做的 就是在服務端實現(xiàn)就行了。通過以下的幾個簡單操作可以看出芒帕,其操作發(fā)送的XML格式的 指令 都是固定的歉嗓,具體的其他操作的指令名稱或字段可參看蘋果官方MDM協(xié)議描述文檔。
問題2:MDM通信以PUT請求的方式進行的背蟆,為什么是PUT請求鉴分?我理解因為協(xié)議的實現(xiàn)是基于PUT請求的,這個是蘋果的選擇带膀,我們只要遵照這個協(xié)議要求就行了志珍。
<?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>BuildVersion</key>
<string>13D15</string>
<key>IMEI</key>
<string>35 884805 093285 4</string>
<key>MEID</key>
<string>35884805093285</string>
<key>MessageType</key>
<string>Authenticate</string>
<key>OSVersion</key>
<string>9.2.1</string>
<key>ProductName</key>
<string>iPad4,5</string>
<key>SerialNumber</key>
<string>F4KMG0FSFLMM</string>
<key>Topic</key>
<string>com.apple.mgmt.External.*</string>
<key>UDID</key>
<string>UDID</string>
</dict>
</plist>
以上可看出
MessageType
標記消息類型,其值為Authenticate
Topic
推送主題本砰,即證書中的用戶ID
UDID
設備的唯一標示符
Server收到請求后根據(jù)MessageType
的值做不同的數(shù)據(jù)處理操作碴裙,然后響應一個空的字典,完成認證
<?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></dict>
</plist>
設備發(fā)送TokenUpdate信息
<?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>AwaitingConfiguration</key>
<false/>
<key>MessageType</key>
<string>TokenUpdate</string>
<key>PushMagic</key>
<string>2969ACF9-DD9C-46D2-8784-F0949CB25BB9</string>
<key>Token</key>
<data>
m200tX8dSj/oBDKKlBpy1NRTQzvfOLNYa1rB7A0/rUM=
</data>
<key>Topic</key>
<string>com.apple.mgmt.External.bc2c8764-9ce5-4fd3-9330-4036325a91cc</string>
<key>UDID</key>
<string>233deb277d03bd4aaf91108390c7d9fe2c49c8be</string>
<key>UnlockToken</key>
<data>
REFUQQAABO...//Base64編碼的字符串钢悲,鎖屏時需要的參數(shù)
</data>
</dict>
</plist>
主要參數(shù):
PushMagic
:MDM server 用于推送時標記設備唯一的識別符(可以理解為類似token)点额,每次與APNs發(fā)消息時必須帶上它。
Token
:設備的token莺琳。
UnlockToken
當清除設備密碼時需要的一個token还棱,必須帶上。
Server響應惭等,返回的數(shù)據(jù)為空珍手,操作完成結束連接。
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Cache-Control: no-cache
Content-Type: text/plain;charset=UTF-8
Content-Length: 0
Date: Wed, 26 Apr 2017 07:33:48 GMT
以上及完成了設備了登記注冊辞做,此時在Server后臺可以查看到該注冊設備相關的信息琳要。