iOS MDM詳解(4)— 安裝mobileconfig配置文件

簡介

配置文件的安裝有如下幾種方式:bash

  • 方式1、使用 Apple Configurator 2安裝
  • 方式2、經過郵件的方式
  • 方式3、經過網頁的方式
  • 方式4、經過over-the-air的方式

這裏咱們使用了方式三來安裝。配置文件的安裝經歷三個過程:經過網頁訪問下載文件、根據提示安裝,設備認證過程,設備更新Token信息的過程。app

設備認證

主動以PUT 請求的方式訪問 CheckInURL提交設備相關的信息,發送的內容以下:ui

###20170807更新:不斷有簡友發信好奇這個操做是如何進行的好比沒有安裝APP呀或其餘看的見的操做之類的?請求方式爲何是PUT請求呢? 個人理解及解答編碼

問題1:是的,不須要人爲 的操做,這一請求是在安裝好配置文件的瞬間,有iOS系統自動發起的。由於iOS自己支持MDM服務,同時也實現了MDM協議。其實這個和HTTP協議相似,都是一個通訊的機制,只要客戶端和服務端都實現了協議,雙方纔能正常的通訊交流。不過這裏的客戶端都是iOS系統自己完成的,咱們要作的 就是在服務端實現就好了。經過如下的幾個簡單操做能夠看出,其操做發送的XML格式的 指令 都是固定的,具體的其餘操做的指令名稱或字段可參看蘋果官方MDM協議描述文檔。spa

問題2:MDM通訊以PUT請求的方式進行的,爲何是PUT請求?我理解由於協議的實現是基於PUT請求的,這個是蘋果的選擇,咱們只要遵守這個協議要求就好了。3d

<?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>
複製代碼

以上可看出code

MessageType標記消息類型,其值爲Authenticate
Topic推送主題,即證書中的用戶ID
UDID設備的惟一標示符server

Server收到請求後根據MessageType的值作不一樣的數據處理操做,而後響應一個空的字典,完成認證xml

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

複製代碼

設備發送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編碼的字符串,鎖屏時須要的參數
	</data>
</dict>
</plist>

複製代碼

主要參數:token

PushMagic :MDM server 用於推送時標記設備惟一的識別符(能夠理解爲相似token),每次與APNs發消息時必須帶上它。

Token :設備的token。

UnlockToken當清除設備密碼時須要的一個token,必須帶上。

Server響應,返回的數據爲空,操做完成結束鏈接。

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後臺能夠查看到該註冊設備相關的信息。

相關文章
相關標籤/搜索