關(guān)于MDM分為以下幾個(gè)步驟操作來介紹:
- iOS MDM詳解(1)— 初識(shí)和深入
- iOS MDM詳解(2)— 證書的制作
- iOS MDM詳解(3)— 生成mobileconfig配置文件
- iOS MDM詳解(4)— 安裝mobileconfig配置文件
- iOS MDM詳解(5)— 給設(shè)備發(fā)個(gè)指令操作
一、MDM介紹
MDM - Moblie Device Management 移動(dòng)設(shè)備管理,目的就是讓企業(yè)能夠方便的管理 iPhone、Pad等移動(dòng)設(shè)備。
當(dāng)企業(yè)大量的使用移動(dòng)設(shè)備辦公或涉及到一些安全限制時(shí)設(shè)備管理的作用就能明顯的體現(xiàn)出來,通過MDM IT人員門能夠在企業(yè)環(huán)境下安全地注冊設(shè)備,無線配置和更新設(shè)置,監(jiān)督公司政策的遵守情況,還能遠(yuǎn)程擦除或鎖定被管理的設(shè)備。例如(很多電子廠一線員工上班期間都不讓帶手機(jī),害怕不法分子隨便拍照泄露產(chǎn)品信息,如果此時(shí)引入MDM則可以再上班期間禁止員工的手機(jī)攝像頭的應(yīng)用,其他也不影響手機(jī)使用)。
通過MDM能實(shí)現(xiàn)以下操作:
- 安裝和刪除一個(gè)描述文件
- 安裝和刪除一個(gè)配置文件
- 獲取已安裝的描述文件列表
- 獲取已安裝的配置文件列表
- 獲取已安裝的證書列表
- 獲取已安裝的第三方的應(yīng)用列表
- 應(yīng)用的安裝與刪除
- 獲取設(shè)備信息(UDID、Languages、DeviceID、BatteryLevel等)
- 獲取安全相關(guān)的信息
- 設(shè)備鎖屏、重啟、關(guān)機(jī)、清除密碼、數(shù)據(jù)擦除
- 獲取已啟用的約束列表
- 鎖住、定位已丟失的設(shè)備
- 設(shè)備相關(guān)的設(shè)置管理、設(shè)備名稱、壁紙、移動(dòng)網(wǎng)絡(luò)等
- 設(shè)置已安裝的應(yīng)用屬性
- 獲得可更新的系統(tǒng)的信息
- 安裝一個(gè)文件或書籍
等等還有其他很多細(xì)微的功能沒有全部列出來。是不是感覺MDM的功能很多很強(qiáng)大,如果你以前沒有了解過它,肯定會(huì)很驚奇、沒有越獄的設(shè)備居然還能夠這樣搞?O(∩_∩)O 是的,MDM就是這么強(qiáng)大,所以在企業(yè)應(yīng)用部署及設(shè)備管理能發(fā)揮很大的作用。
雖然MDM的功能那么多,我們在實(shí)際應(yīng)用中也就是涉及到,鎖屏及密碼刪除、APP的安裝和刪除、配置文件的安裝和刪除、獲取已安裝的APP列表及其他設(shè)備相關(guān)的信息,也就是說常用的操作也就那幾個(gè)。
二、關(guān)于
剛開始接觸MDM我也一臉的懵逼,不知道該從何著手??粗W(wǎng)上零零散散的資料,問題涉及到的也是支離破碎,真不到他們是否具體操作過?有沒有實(shí)際跑通?反正各大論壇的也都是轉(zhuǎn)來轉(zhuǎn)去,可能有的人理解了,做出來了,但是寫的也是一概而過,真正的按照步驟操作時(shí)也是一團(tuán)漿糊。沒辦法,我只能硬著頭皮去看官方資料,因?yàn)槠渌杏玫馁Y料帶來的信息太少了。
經(jīng)過幾個(gè)月的學(xué)習(xí)和了解、對(duì)MDM認(rèn)知也慢慢的清晰了好多。至此我們的管理平臺(tái)也跑通了,正打算部署到企業(yè)內(nèi)部使用。所以我想好好的總結(jié)一下,把做過的,想過的,遇到的問題一步一步的記錄下來,或許能夠幫助你更好的理解MDM、快速的使用MDM。
三、MDM工作流程
引用官網(wǎng)提供的一張圖:

從上圖可以看出要實(shí)現(xiàn)MDM服務(wù)須涉及到,蘋果推送服務(wù)器APNs、自己的或者第三方提供的MDM服務(wù)器、受管理的設(shè)備。實(shí)際中三者之間通過HTTPS相互通信,所以推送和普通APP推送一樣必須要有推送證書。沒有操作的情況下,除了設(shè)備本身和APNs之間保持連接,其他都不在連接狀態(tài)。各自在系統(tǒng)中的作用如下:
- MDM服務(wù)器:對(duì)于設(shè)備,通過它發(fā)送指令對(duì)設(shè)備進(jìn)行管理,獲取相關(guān)信息及操作,回應(yīng)響應(yīng)設(shè)備操作。對(duì)于APNs,向APNs發(fā)送一個(gè)命令,目的來喚醒設(shè)備去主動(dòng)連接MDM服務(wù)器,報(bào)告其當(dāng)前狀態(tài)是否處于空閑(若設(shè)備空閑,MDM服務(wù)器會(huì)繼續(xù)下一步操作比如開始發(fā)送指令)。
- APNs:可看作其他兩者之間的信使,主要就是轉(zhuǎn)發(fā)MDM服務(wù)器指令給設(shè)備,意思告訴設(shè)備開始去連接服務(wù)器啦。
- 設(shè)備:首先通過Safari訪問服務(wù)器安裝一個(gè)配置描述文件(下文敘述)并登記注冊使其成為受管理的設(shè)備,當(dāng)收到APNs指令后,根據(jù)已安裝的配置文件的url 連接MDM服務(wù)器并報(bào)告其狀態(tài),然后接受下一步命令比如命令
DeviceInformation(查詢設(shè)備信息如ModelName、BatteryLevel、WiFiMAC等),設(shè)備收到XML格式的指令后再向服務(wù)器傳送其相關(guān)查詢的信息,如果不需要繼續(xù)發(fā)送指令,服務(wù)器關(guān)閉連接。
另外設(shè)備和MDM服務(wù)器之間數(shù)據(jù)傳輸都是以XML格式形式,以PUT請求的方式進(jìn)行的,所以發(fā)送指令時(shí),服務(wù)器要把指令封裝成一個(gè)XML的文件同時(shí)要實(shí)現(xiàn)PUT請求相關(guān)操作處理。APNs所發(fā)送的僅僅是一個(gè)與設(shè)備本身相關(guān)的標(biāo)示符,沒有其他命令,目的就是喚醒設(shè)備去連接MDM服務(wù)器。
四、要做的操作及我遇到過的問題
通過以上了解可看出,要實(shí)現(xiàn)一個(gè)完整的MDM服務(wù),我們需要:制作APNs推送證書、設(shè)備安裝的配置文件、實(shí)現(xiàn)https通信、實(shí)現(xiàn)MDM相關(guān)協(xié)議、學(xué)習(xí)MDM協(xié)議相關(guān)命令及使用、一個(gè)MDM服務(wù)器(這里不作主要敘述,因?yàn)檫@些相關(guān)的都是有我們后臺(tái)做的)。所以接下來的時(shí)間我打算依次做以下任務(wù)。
- iOS MDM詳解(1)— 初識(shí)和深入
- iOS MDM詳解(2)— 證書的制作
- iOS MDM詳解(3)— 生成mobileconfig配置文件
- iOS MDM詳解(4)— 安裝mobileconfig配置文件
- iOS MDM詳解(5)— 給設(shè)備發(fā)個(gè)指令操作
以上即為MDM服務(wù)中幾個(gè)關(guān)鍵的操作,其他的一些細(xì)微的方面的操作以后在慢慢整理。
正常情況下操作我遇到了以下幾個(gè)問題:
問題1、 mobileconfig配置文件安裝失敗
設(shè)備在安裝過程中,一直提示安裝失??!當(dāng)我想使用抓包工具`Charles`查看時(shí)居然安裝成功了,關(guān)閉軟件再次安裝還是失敗,猜測可能由于`Charles`代理的作用能連接到還處于內(nèi)網(wǎng)的MDM Server,若直接發(fā)布到外網(wǎng)應(yīng)該能避免這個(gè)問題(目前還沒有驗(yàn)證?)。
問題2、MDM服務(wù)器與APNs無法建立連接,造成一直推送不成功
推送命令時(shí)Java后臺(tái)一直報(bào)錯(cuò),*`javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found`* 后來升級(jí)了SKD錯(cuò)誤解除。
隨之又出現(xiàn)錯(cuò)誤 Software caused connection abort: recv failed 后經(jīng)排查原來連接的是開發(fā)環(huán)境的地址,mobileconfig配置中有這個(gè)配置選項(xiàng)默認(rèn)是生成環(huán)境,通過identity.apple.com/pushcert申請的推送證書只能是生成環(huán)境的證書,這一點(diǎn)我當(dāng)時(shí)還傻傻的以為生成和推送都一樣呢??。
問題3、命令推送成功后設(shè)備沒有響應(yīng)操作或者很慢
命令推送成功了有時(shí)沒響應(yīng),多數(shù)都是在MDM Server 與 APNs之間,估計(jì)設(shè)備沒被喚醒或者沒有收到指令,APNs 和設(shè)備之間由于推送不是那么及時(shí)所以會(huì)有一定的延時(shí)。
當(dāng)設(shè)備與Sever建立連接后,發(fā)送命令很快得到了響應(yīng)。但有時(shí)連續(xù)幾個(gè)操作后響應(yīng)會(huì)很慢,猜測可能設(shè)備本身還沒來得及處理,具體還的在研究。
問題4、想實(shí)現(xiàn)APP的靜默安裝
由于我們是企業(yè)應(yīng)用分發(fā),發(fā)布一個(gè)應(yīng)用希望所有受控的設(shè)備強(qiáng)制安裝即不需要彈框提示用戶點(diǎn)擊確認(rèn)操作。但是還沒有實(shí)現(xiàn),好像安卓的可以,關(guān)于iOS 的還在研究。
五、總結(jié)
以上為MDM的簡單介紹和理解,如果你也熟悉MDM有不恰當(dāng)?shù)牡胤街x謝指導(dǎo),如果你不熟悉剛接觸希望能有一點(diǎn)幫助。接下來我會(huì)安裝以上所述操作步驟開展下一步的工作。