iOS MDM詳解(1)— 初識和深刻

關於MDM分爲如下幾個步驟操做來介紹:

1、MDM介紹

MDM - Moblie Device Management 移動設備管理,目的就是讓企業可以方便的管理 iPhone、Pad等移動設備。java

當企業大量的使用移動設備辦公或涉及到一些安全限制時設備管理的做用就能明顯的體現出來,經過MDM IT人員門可以在企業環境下安全地註冊設備,無線配置和更新設置,監督公司政策的遵照狀況,還能遠程擦除或鎖定被管理的設備。例如(不少電子廠一線員工上班期間都不讓帶手機,懼怕不法分子隨便拍照泄露產品信息,若是此時引入MDM則能夠再上班期間禁止員工的手機攝像頭的應用,其餘也不影響手機使用)。git

經過MDM能實現如下操做:github

  • 安裝和刪除一個描述文件
  • 安裝和刪除一個配置文件
  • 獲取已安裝的描述文件列表
  • 獲取已安裝的配置文件列表
  • 獲取已安裝的證書列表
  • 獲取已安裝的第三方的應用列表
  • 應用的安裝與刪除
  • 獲取設備信息(UDID、Languages、DeviceID、BatteryLevel等)
  • 獲取安全相關的信息
  • 設備鎖屏、重啓、關機、清除密碼、數據擦除
  • 獲取已啓用的約束列表
  • 鎖住、定位已丟失的設備
  • 設備相關的設置管理、設備名稱、壁紙、移動網絡等
  • 設置已安裝的應用屬性
  • 得到可更新的系統的信息
  • 安裝一個文件或書籍

等等還有其餘不少細微的功能沒有所有列出來。是否是感受MDM的功能不少很強大,若是你之前沒有了解過它,確定會很驚奇、沒有越獄的設備竟然還可以這樣搞?O(∩_∩)O 是的,MDM就是這麼強大,因此在企業應用部署及設備管理能發揮很大的做用。安全

雖然MDM的功能那麼多,咱們在實際應用中也就是涉及到,鎖屏及密碼刪除、APP的安裝和刪除、配置文件的安裝和刪除、獲取已安裝的APP列表及其餘設備相關的信息,也就是說經常使用的操做也就那幾個。服務器

2、關於

剛開始接觸MDM我也一臉的懵逼,不知道該從何着手。看着網上零零散散的資料,問題涉及到的也是支離破碎,真不到他們是否具體操做過?有沒有實際跑通?反正各大論壇的也都是轉來轉去,可能有的人理解了,作出來了,可是寫的也是一律而過,真正的按照步驟操做時也是一團漿糊。沒辦法,我只能硬着頭皮去看官方資料,由於其餘有用的資料帶來的信息太少了。網絡

通過幾個月的學習和了解、對MDM認知也慢慢的清晰了好多。至此咱們的管理平臺也跑通了,正打算部署到企業內部使用。因此我想好好的總結一下,把作過的,想過的,遇到的問題一步一步的記錄下來,或許可以幫助你更好的理解MDM、快速的使用MDM。app

3、MDM工做流程

引用官網提供的一張圖: ide

MDM工做流程

從上圖能夠看出要實現MDM服務須涉及到,蘋果推送服務器APNs、本身的或者第三方提供的MDM服務器、受管理的設備。實際中三者之間經過HTTPS相互通訊,因此推送和普通APP推送同樣必需要有推送證書。沒有操做的狀況下,除了設備自己和APNs之間保持鏈接,其餘都不在鏈接狀態。各自在系統中的做用以下:工具

  • MDM服務器:對於設備,經過它發送指令對設備進行管理,獲取相關信息及操做,迴應響應設備操做。對於APNs,向APNs發送一個命令,目的來喚醒設備去主動鏈接MDM服務器,報告其當前狀態是否處於空閒(若設備空閒,MDM服務器會繼續下一步操做好比開始發送指令)。post

  • APNs:可看做其餘二者之間的信使,主要就是轉發MDM服務器指令給設備,意思告訴設備開始去鏈接服務器啦。

  • 設備:首先經過Safari訪問服務器安裝一個配置描述文件(下文敘述)並登記註冊使其成爲受管理的設備,當收到APNs指令後,根據已安裝的配置文件的url 鏈接MDM服務器並報告其狀態,而後接受下一步命令好比命令DeviceInformation(查詢設備信息如ModelName、BatteryLevel、WiFiMAC等),設備收到XML格式的指令後再向服務器傳送其相關查詢的信息,若是不須要繼續發送指令,服務器關閉鏈接。

另外設備和MDM服務器之間數據傳輸都是以XML格式形式,以PUT請求的方式進行的,因此發送指令時,服務器要把指令封裝成一個XML的文件同時要實現PUT請求相關操做處理。APNs所發送的僅僅是一個與設備自己相關的標示符,沒有其餘命令,目的就是喚醒設備去鏈接MDM服務器。

4、要作的操做及我遇到過的問題

經過以上了解可看出,要實現一個完整的MDM服務,咱們須要:製做APNs推送證書、設備安裝的配置文件、實現https通訊、實現MDM相關協議、學習MDM協議相關命令及使用、一個MDM服務器(這裏不做主要敘述,由於這些相關的都是有咱們後臺作的)。因此接下來的時間我打算依次作如下任務。

以上即爲MDM服務中幾個關鍵的操做,其餘的一些細微的方面的操做之後在慢慢整理。

正常狀況下操做我遇到了如下幾個問題:

問題一、 mobileconfig配置文件安裝失敗

設備在安裝過程當中,一直提示安裝失敗!當我想使用抓包工具Charles查看時竟然安裝成功了,關閉軟件再次安裝仍是失敗,猜想可能因爲Charles代理的做用能鏈接到還處於內網的MDM Server,若直接發佈到外網應該能避免這個問題(目前尚未驗證?)。

問題二、MDM服務器與APNs沒法創建鏈接,形成一直推送不成功

推送命令時Java後臺一直報錯,javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found 後來升級了SKD錯誤解除。

隨之又出現錯誤 Software caused connection abort: recv failed 後經排查原來鏈接的是開發環境的地址,mobileconfig配置中有這個配置選項默認是生成環境,經過identity.apple.com/pushcert申請的推送證書只能是生成環境的證書,這一點我當時還傻傻的覺得生成和推送都同樣呢😭。

問題三、命令推送成功後設備沒有響應操做或者很慢

命令推送成功了有時沒響應,多數都是在MDM Server 與 APNs之間,估計設備沒被喚醒或者沒有收到指令,APNs 和設備之間因爲推送不是那麼及時因此會有必定的延時。

當設備與Sever創建鏈接後,發送命令很快獲得了響應。但有時連續幾個操做後響應會很慢,猜想可能設備自己還沒來得及處理,具體還的在研究

問題四、想實現APP的靜默安裝

因爲咱們是企業應用分發,發佈一個應用但願全部受控的設備強制安裝即不須要彈框提示用戶點擊確認操做。可是尚未實現,好像安卓的能夠,關於iOS 的還在研究。

###5、總結

以上爲MDM的簡單介紹和理解,若是你也熟悉MDM有不恰當的地方謝謝指導,若是你不熟悉剛接觸但願能有一點幫助。接下來我會安裝以上所述操做步驟開展下一步的工做。

相關文章
相關標籤/搜索