MDM - Moblie Device Management 移動設(shè)備管理,目的就是讓企業(yè)能夠方便的管理 iPhone、Pad等移動設(shè)備。
岳西網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)2013年開創(chuàng)至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
通過MDM能實(shí)現(xiàn)以下操作:
等等還有其他很多細(xì)微的功能沒有全部列出來。是不是感覺MDM的功能很多很強(qiáng)大,如果你以前沒有了解過它,肯定會很驚奇、沒有越獄的設(shè)備居然還能夠這樣搞?O(∩_∩)O 是的,MDM就是這么強(qiáng)大,所以在企業(yè)應(yīng)用部署及設(shè)備管理能發(fā)揮很大的作用。
雖然MDM的功能那么多,我們在實(shí)際應(yīng)用中也就是涉及到,鎖屏及密碼刪除、APP的安裝和刪除、配置文件的安裝和刪除、獲取已安裝的APP列表及其他設(shè)備相關(guān)的信息,也就是說常用的操作也就那幾個(gè)。
剛開始接觸MDM我也一臉的懵逼,不知道該從何著手??粗W(wǎng)上零零散散的資料,問題涉及到的也是支離破碎,真不到他們是否具體操作過?有沒有實(shí)際跑通?反正各大論壇的也都是轉(zhuǎn)來轉(zhuǎn)去,可能有的人理解了,做出來了,但是寫的也是一概而過,真正的按照步驟操作時(shí)也是一團(tuán)漿糊。沒辦法,我只能硬著頭皮去看官方資料,因?yàn)槠渌杏玫馁Y料帶來的信息太少了。
經(jīng)過幾個(gè)月的學(xué)習(xí)和了解、對MDM認(rèn)知也慢慢的清晰了好多。至此我們的管理平臺也跑通了,正打算部署到企業(yè)內(nèi)部使用。所以我想好好的總結(jié)一下,把做過的,想過的,遇到的問題一步一步的記錄下來,或許能夠幫助你更好的理解MDM、快速的使用MDM。
引用官網(wǎng)提供的一張圖:
從上圖可以看出要實(shí)現(xiàn)MDM服務(wù)須涉及到,蘋果推送服務(wù)器APNs、自己的或者第三方提供的MDM服務(wù)器、受管理的設(shè)備。實(shí)際中三者之間通過HTTPS相互通信,所以推送和普通APP推送一樣必須要有推送證書。沒有操作的情況下,除了設(shè)備本身和APNs之間保持連接,其他都不在連接狀態(tài)。各自在系統(tǒng)中的作用如下:
另外設(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)的都是有我們后臺做的)。所以接下來的時(shí)間我打算依次做以下任務(wù)。
以上即為MDM服務(wù)中幾個(gè)關(guān)鍵的操作,其他的一些細(xì)微的方面的操作以后在慢慢整理。
正常情況下操作我遇到了以下幾個(gè)問題:
隨之又出現(xiàn)錯誤 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í)還傻傻的以為生成和推送都一樣呢????。
命令推送成功了有時(shí)沒響應(yīng),多數(shù)都是在MDM Server 與 APNs之間,估計(jì)設(shè)備沒被喚醒或者沒有收到指令,APNs 和設(shè)備之間由于推送不是那么及時(shí)所以會有一定的延時(shí)。
當(dāng)設(shè)備與Sever建立連接后,發(fā)送命令很快得到了響應(yīng)。但有時(shí)連續(xù)幾個(gè)操作后響應(yīng)會很慢, 猜測可能設(shè)備本身還沒來得及處理,具體還的在研究 。
由于我們是企業(yè)應(yīng)用分發(fā),發(fā)布一個(gè)應(yīng)用希望所有受控的設(shè)備強(qiáng)制安裝即不需要彈框提示用戶點(diǎn)擊確認(rèn)操作。但是還沒有實(shí)現(xiàn),好像安卓的可以,關(guān)于iOS 的還在研究。
以上為MDM的簡單介紹和理解,如果你也熟悉MDM有不恰當(dāng)?shù)牡胤街x謝指導(dǎo),如果你不熟悉剛接觸希望能有一點(diǎn)幫助。接下來我會安裝以上所述操作步驟開展下一步的工作。
移動設(shè)備管理(MDM)即Mobile Device Managment,是為了方便企業(yè)能夠遠(yuǎn)程管理iPad、iPhone等移動設(shè)備。
MDM工作流程如下:
設(shè)備需要安裝一個(gè)config文件,描述文件中定義了server可以對設(shè)備有哪些管控權(quán)限。服務(wù)端通過APNS推送MDM命令來實(shí)現(xiàn)對設(shè)備的管理。
可以看到MDM提供的功能是很多的,并且權(quán)限很高,能幾乎管控一個(gè)設(shè)備的使用。
初試企業(yè)證書并不具備MDM功能,需要申請開通成為Vendor。
完整的證書列表如下:
流程如下:
大多情況下只輝出現(xiàn)Acknowledge和Idle兩種狀態(tài)
命令必須包含Command和CommandUUID,例如如下:
步驟1: MDM服務(wù)器發(fā)送一個(gè)MDM推送信息,告訴設(shè)備服務(wù)器需要你執(zhí)行的命令了。
步驟2: 蘋果推送通知給iOS設(shè)備
步驟3: 當(dāng)設(shè)備空閑和有網(wǎng)絡(luò)時(shí),去連接MDM服務(wù)器并告訴服務(wù)器其狀態(tài)
步驟4: MDM服務(wù)器根據(jù)設(shè)備狀態(tài)返回給設(shè)備需要執(zhí)行的命令
步驟5: 設(shè)備執(zhí)行了命令,并將執(zhí)行的結(jié)果給MDM服務(wù)器
從上面日志我們可以看到上面的apsd進(jìn)程,apsd是一個(gè)長鏈接進(jìn)程,每當(dāng)MDM服務(wù)器推送MDM指令,此進(jìn)程就會工作處理VPNS消息。
其中的(426590595)這個(gè)id,當(dāng)MDM執(zhí)行的時(shí)候會取這個(gè)id的任務(wù)。
表明當(dāng)前有MDM任務(wù)再執(zhí)行,新來的MDM任務(wù)需要等待當(dāng)前MDM任務(wù)執(zhí)行完成才能執(zhí)行,所有新來的MDM任務(wù)按照先后順序依次執(zhí)行。并且新來的任務(wù)apsd也都是先接收到進(jìn)行APSMessageStore。
個(gè)人使用總結(jié),若有疑問隨時(shí)私信我溝通。
比如:
制作一個(gè)配置文件可以 iPhone配置使用工具 和 手寫XML文件 兩種方式。為了方便操作我用了前者(網(wǎng)上說這個(gè)已被蘋果拋棄,好像不影響文件生成)。
打開文件——新建配置文件,主要涉及使用到的配置如下:
至此配置設(shè)置基本完成,保存、導(dǎo)出會提示給配置文件簽名,選擇無即可。
我們可以直接修改此XML文件,據(jù)此 Configuration Profile Reference 可添加其他所需的字段。你也可以在此基礎(chǔ)上修改適合為自己的(估計(jì)很容易遺漏或出錯),我還是喜歡在 iPhone配置使用工具 中操作比較方便。
以上生成的配置文件其實(shí)可以直接安裝到設(shè)備上,如果安裝成功后會有一個(gè)紅色的提示‘未簽名’如下。
簽名要經(jīng)歷兩個(gè)操作,一、MDM Sever端簽名。二、用蘋果頒發(fā)的證書簽名。
需要以下證書文件:
可以再終端中執(zhí)行: openssl smime -sign -in unsigned.mobileconfig -out signed.mobileconfig -signer server.crt -inkey server.key -certfile cert-chain.crt -outform der -nodetach
(以上是Java后臺簽名的操作過程,我沒有驗(yàn)證,在此作為一個(gè)操作步驟總結(jié)放在這里)。
我猜測MDM Sever的簽名只是為了和客戶端進(jìn)行下認(rèn)證和對描述文件的加密過程,只是讓這兩個(gè)之間相互認(rèn)知對方,和iOS系統(tǒng)是否承認(rèn)無關(guān)。所以以上操作之后還會提示‘未簽名’。(實(shí)際測試中這個(gè)操作可以省略)。
以下操作引自網(wǎng)絡(luò)
這個(gè)操作有幾種方法可供選擇,這里我使用了腳本簽名。
借助于強(qiáng)大的github,找到了一個(gè) python腳本 進(jìn)行簽名
1.簽名一個(gè)mobileconfig
profile_signer.py與 mobileconfig 放在同一目錄,終端進(jìn)入目錄執(zhí)行
./profile_signer.py -n "3rd Party Mac Developer Application" sign AcrobatPro.mobileconfig AcrobatProSigned.mobileconfig
2.加密一個(gè)mobileconfig
./profile_signer.py -n "3rd Party Mac Developer Application" encrypt AcrobatPro.mobileconfig AcrobatProEnc.mobileconfig
3.簽名并且加密一個(gè)mobileconfig
./profile_signer.py -n "3rd Party Mac Developer Application" both AcrobatPro.mobileconfig AcrobatProBoth.mobileconfig
"3rd Party Mac Developer Application"為你的證書在鑰匙串中的全名,選擇證書=顯示簡介=復(fù)制常用名稱加上引號即可,比如
"iPhone Developer: jakey.shao xxxx@xxx.com "
"iPhone Distribution: Skyfox Network Technology Co., Ltd."
66911171-EE9C-4DB7-BFCE-6564CC1B4E1A如果能正確讀取到證書,會提示允許訪問鑰匙串,點(diǎn)擊允許即可!
最終安裝提示已驗(yàn)證啦。
MDM的全稱是Mobile Device Management,顧名思義是移動設(shè)備管理,幫助企業(yè)將IT管理能力從傳統(tǒng)的 PC 延伸到移動設(shè)備甚至移動應(yīng)用APP 。
不是免費(fèi)開放的,需要一個(gè)企業(yè)級開發(fā)者賬戶($299),并且開通了mdm功能(需要提交蘋果申請才能開通此功能)