alt

TECHNICAL CENTER


MDMのしくみ

2016-02-29
MDM



PDFをダウンロードする

iOS対応MDMの概要

「モバイルデバイス管理」(MDM)は、iOS 4以降、Appleが提供した機能で、ネットワーク経由でiOSデバイスを遠隔から管理するものです。iOSに対応する MDMは、大まかに次の流れでデバイスを管理します。

デバイスの管理を行なうサーバを「MDMサーバ」と呼びます。Appleによって提供されるPushサービスは、APNs(Apple Push通知サービス)と呼ばれ、世界中のiOSデバイスにPush通知を配信します。APNsは、Apple Push Notification Serviceの略称です。

デバイスからAPNsとのセッションを開く
デバイスが起動し、通信可能になると、APNs間でTLSセッションを確立します。デバイスはAPNsと常時接続され、APNsからの命令を即座に受け取れるようになります。

MDMサーバがPush要求を送る
MDMサーバは、管理下にあるデバイスとの通信が必要になる度に、APNsに対して、デバイスへのPush通知を要求します。

APNsからデバイスにPush通知が届く
APNsに接続しているネットワーク(3G/LTE回線、もしくはWi-Fi)を通じて、APNsからデバイスにPush通知が届けられます。このPush通知は、iOS組み込まれているシステムサービス(mdmd)を起動します。iOSの場合、MDMを利用するためにデバイスにアプリケーションを新たにインストールする必要はありません。

デバイスとMDMサーバが通信する
iOS組み込まれているシステムサービス(mdmd)は、あらかじめ登録されたMDMサーバに対してhttpsリクエストを送ります。MDMサーバはこれを受けて、デバイス上で実行すべき命令を伝えます。

命令の種類
iOSは、デバイス上で実行できる5系統の命令があります:

デバイス情報の取得
iOSのバージョンや、インストールされているアプリ一覧など、デバイスの情報を取得します。ただし、デバイスがロックされている時は、セキュリティ情報は取得できません。それ以外の情報は、ロック中でも取得できます。ロック中で情報が取得できなかったという情報は取得できます。

デバイスの設定
デバイスは、Apple Configuratorで作成した設定ファイルを受け取ると、設定ファイルの指定通りに、デバイスの設定を変更します。デバイスがロックされている時は、設定ファイルをデバイスは受信できません。ただし、デバイスから設定を削除することは、ロック中でも可能です。

アプリの配布
iOSデバイスは、AppStoreアプリや自社開発アプリをデバイスにインストールすることができます。デバイスがロックされている時は、アプリをデバイスにインストール(アップデートも)できません。ただし、デバイスからアプリを削除することは、ロック中でも可能です。

コンテンツの配布
iOSデバイスは、iBook Storeのコンテンツや自社コンテンツをiBookにインストールすることができます。デバイスがロックされている時は、コンテンツをデバイスにインストール(アップデートも)できません。ロック中でも、デバイスからコンテンツを削除できます。

特殊命令
・パスコードの消去
・リモートロック
・リモートワイプ

iOSデバイスは、ロック中は暗号化されているため、デバイスがロックされ、スリープしている状態では実行されない命令があります。登録や更新系の命令は、ユーザがパスコードを入力し、デバイスのロックが解除されるまで実行が保留されます。削除系の命令(設定、アプリ、コンテンツ、リモートワイプ)は、ロック中でも即座に実行されます。

当然のことですが、デバイスの電源が入っていない場合やネットワークに繋がっていない場合など、Push通知を受け取れない場合も、命令は実行されません。こうした場合は、電源が入り、ネットワークに接続し、デバイスがPush通知を受け取れるようになるまで実行が保留されます。

このように、MDMサーバから送った個々の命令がいつ実行されるかは、ネットワークの状態やロック中といった利用状況によって異なります。完了した命令はMDMサーバで確認することができます。ロック時に実行される削除系の命令と、実行されない登録・更新・参照系の命令の併用には注意が必要です。

デバイスの情報取得や設定だけを指して、MDM(Mobile Device Management)と呼ぶ人もいます。アプリ一覧の取得と配布をMAM(Mobile Application Management)と呼ぶ人もいます。さらにコンテンツの配布をMCM(Mobile Contents Management)と呼ぶ人もいます。iOSはサンドボックス構造のため、コンテンツはアプリ内に格納されます。Apple社は、iOSデバイス上の設定やアプリ、コンテンツなどの資源を一括して扱います。そのためMAMやMCMのように呼ぶことはありません。

 

Android対応MDMの概要

AndroidデバイスがMDMを利用するには、AndroidアプリケーションであるMDMクライアントをインストールする必要があります。MDMクライアントは、Androidマーケット(Google Play)からインストールできます。

Android対応MDMは、大まかに次の流れでデバイスを管理します。

デバイスの管理を行なうサーバをMDMサーバと呼びます。GCM (Googleプッシュ通知サービス)は、Google社によって提供されるPushサービスで、世界中のAndroidデバイス上のAndroidアプリケーション(MDMクライアントを含む)にPush通知を送信します。GCMは、Google Cloud Messagingの略称です。

デバイス上のMDMクライアントからGCMのセッションを開く
Androidデバイスが起動し、通信可能になると、MDMクライアントからGCMに接続し、TLSセッションを確立します。これにより、MDMクライアントはGCMと常時接続され、MDMクライアントは、GCMからの命令を即座に受け取ることができます。

MDMサーバがPush要求を送る
MDMサーバは、管理下にあるAndroidデバイス上のMDMクライアントとの通信が必要になると、まず、GCMに対してPush通知をリクエストします。

GCMからデバイスにPush通知が届く
GCMに接続しているネットワーク(3G/LTE回線、もしくはWi-Fi)を通じて、GCMからMDMクライアントにPush通知が届けられます。このPush通知は、MDMクライアントを起動します。

デバイスとMDMサーバが通信する
Push通知を受けたMDMクライアントは、あらかじめ登録されたMDMサーバに対してhttpsリクエストを送ります。MDMサーバはこれを受けて、デバイス上で実行すべき命令を伝えます。

命令の種類
Androidは、MDMで実行できる4つの系統の命令があります。

デバイス情報の取得
Android OSのバージョンや、インストールされているアプリ一覧など、デバイスの情報を取得します。

デバイスの設定
MDM管理画面から、各種設定をデバイスに反映させます。

アプリの配布
MDM管理画面から、Google Playアプリや自社開発アプリを、デバイスに導入します。

特殊命令
・パスコードの消去
・リモートロック
・リモートワイプ

Androidデバイスの場合、命令はデバイスがロックされ、スリープしている状態でも実行されます、ただし、一部の機種ではスリープしている状態では実行されない場合があります。その場合、スリープ解除後に命令が実行されます。デバイスがネットワークに繋がっていないなど、Push通知を受け取れない状態にあると、命令は実行されません。この場合、デバイスがネットワークに繋がるまで実行が保留されます。実行が完了したかどうかはMDMサーバ上で確認することができます。

 

BizMobile Go! for iOSの構成

BizMobile Go! for iOS のMDM構成は次のようになっています。

※1 契約ごとに決定。
※2 Wi-Fi接続時17.0.0.0/8のアドレスのうち、いずれか(開発者プログラム"Technical Note TN2265"より)。

セキュリティ
MDMサーバとデバイスとの接続には、SSLサーバ証明書とクライアント証明書を用いた相互認証が行なわれ、セキュリティ的に強固になっています。

クライアント証明書の元となる秘密鍵は、デバイスの内部で生成し、ハードウェアレベルのデバイス保護によって守られます。これにより、第三者がそのデバイスになりすましてサーバに接続することは困難となります。

デバイスはPush通知に必要となるキーを、信頼するサーバにだけ受け渡します。このキーがなければPush通知を送ることは出来ません。更に、デバイスは最初に登録したサーバ以外に接続することはなく、第三者によってデバイスがコントロールされるリスクは小さくなります。

BizMobile Go! for Androidの構成
BizMobile Go! for Android のMDM構成は次のようになっています。

※1 契約ごとに決定。
※2 Googleの保有するアドレスは74.125.0.0/16、72.14.192.0/18です。"mtalk.google.com"を利用。

セキュリティ
MDMサーバとデバイスとの接続には、独自のトークンを用いて認証が行なわれます。トークンはMDMサーバにより生成されデバイス側に保存されます。(保存先はMDMクライアントアプリのみアクセス可能)第三者がそのデバイスになりすましてサーバに接続することは困難となります。デバイスはPush通知に必要となるキーを、信頼するサーバにだけ受け渡します。このキーがなければPush通知を送ることは出来ません。更にデバイスは最初に登録したサーバ以外に接続することはなく、第三者によってデバイスがコントロールされるリスクは小さくなります。

 

Push通知

iOS Push証明書

Push通知を送るためには、Appleから組織単位でPush証明書を取得する必要があります。MDMサーバによって管理される各デバイスは、登録時に組織毎のPush証明書と関連付けられます。他の組織に向けて発行されたPush証明書を使って通知が送られることはありません。

デバイス側の動作
iOSでは、3G/LTE回線、またはWi-Fi接続を用いてPush通知が行なわれます。Wi-Fi接続では、デバイスとAPNsとの間で切れることのないTLSセッション(TCPポート5223)が作られ、APNs側からデバイスに向けて通知が送られます。デバイスが充電中であるか、バッテリーに余裕のある限りは、15~30分間隔でキープアライブが交換されます。Push通知の動作は、デバイスによって若干異なります。

iPhone / iPad 回線モデル(3G/LTE)
デバイスが回線(3G/LTE)により通信できるときには、常に3G回線による通知が行なわれます。これらのデバイスでも、回線(3G/LTE)が使えないときにはWi-Fi接続が利用されます。

iPad Wi-Fiモデル
iPad Wi-Fiモデルでは、Wi-Fiが使える状態にある限りはPush通知を受け取れます。

デバイスがスリープ状態になっても、TLSセッションは切れることなく維持されます。APNsから通知が送られると、デバイスはスリープ状態から解除され、必要な処理が行なわれます。注意点として、iPadのバッテリーが20%を切っているとセッションは切断され、Push通知を受け取れなくなります。この場合、手動でスリープを解除するか、あるいはデバイスの充電を始めると、再びセッションが確立されます。

iPod touch
iPod touchでは、デバイスを操作中である(スリープしていない)か、もしくは充電中のときにだけ、Push通知を受け取れます。

通知の保留
デバイスがPush通知を受け取れない状態にあるときは、APNsは最後に要求された通知内容をサーバ上に保持します。デバイスがAPNsとの通信を回復すると、保留されていたPush通知が送られます。

 

Android Push証明書

Push通知を送るためには、Googleアカウントが設定されていてAndroid Marketアプリがインストールされている必要があります。MDMサーバによって管理される各デバイスは、登録時に特定のデバイス上の特定のアプリ(MDMクライアント)に関連付けられます。

デバイス側の動作
Androidでは、回線(3G/LTE)、またはWi-Fi接続を用いてPush通知が行なわれます。Wi-Fi接続では、デバイスとGCMとの間で切れることのないTLSセッション(TCPポート5228、5226、5226)が作られ、GCM側からデバイスに向けて通知が送られます。

3Gモデル
3G回線(Wi-Fiが接続されていない場合)により通信ができるときには、3G/LTE回線による通知が行なわれます。Wi-Fiが接続されている場合では、Wi-Fiが優先的に利用されます。

Wi-Fiモデル
Wi-Fiが使える状態にある限りはPush通知を受け取れます。

スリープ状態
デバイスがスリープ状態になっても、TLSセッションは切れることなく維持されます。GCMから通知が送られると、必要な処理がMDMクライアントで行なわれます。一部の機種ではスリープ状態ではMDMクライアントで正しく処理が行われない場合があります。その場合はスリープ復帰後に必要な処理が再度実行されます。

通知の保留
デバイスがPush通知を受け取れない状態にあるときは、デバイスがGCMとの通信を回復すると、保留されていたPush通知が送られます。一部のAndroid端末ではPush通知を受け取れない状態ではMDMクライアントで正しく処理が行われない場合があります。その場合は通信回復後に必要な処理が再度実行されます。

 

サーバ側の動作

一度に送れるデバイス上限(Push)数
一度に送れるPush数に制限はありません。単位時間(1分間)に送信するPush数はサーバ側で上限を定めています。

Push通知の保存期間
MDMサーバにおけるオフライン状態のデバイスに対する要求は、デバイス登録解除されるまで永久に保存されます。APNsにおけるPush通知の保存期間は、Appleのドキュメントに「一定期間保存後に削除」とあるのみで明確には定義されていません。GCMにおけるPush通知の保存期間は、特に定義されていません。そのためBizMobile Go! は、1日1回Push通知を再送しています。






Copyright© BizMobile Inc. All Rights Reserved. BizMobile株式会社
alt