【旧版】iOS(iPhone/iPad) 監視モードとDEPとVPPとABMについての個人的メモ

※この記事は2021/12/25版のバックアップです。

# はじめに

最初に書いてから数年経過しているので、古い情報が混じっている場合があります。
また、元は個人的メモなのでいい加減な書き方になっています。
「もっと詳しく（まともに）書け」といった項目があれツッコミをどうぞ。

この内容は、iOSの監視モードおよび、DEPとVPPについてまとめたものです。
Apple School Managerについては触れていません。
MDMについては、具体的な製品名にはあまり触れず、機能概要のみの記載に留めます。
特定MDM/EMMのトラブルシュートとかは書いてません。Intuneとか。
MDMのUser Enrollmentについても触れていません。

Androidで似たようなことをやりたい場合は「[Android Enterprise](https://qiita.com/garupon/items/844770b1eb48ac004ced)」と「[Zero Touch](https://www.android.com/intl/ja_jp/enterprise/management/zero-touch/)」で。

## 略語とかについて

ABMとDEPとVPPとMDMとEMMはそれぞれ別物です。
また、これらの略称も一般的かどうかは割と怪しいです。
とりあえず本記事中でのみの用語だと思ってください。

- DEP
  - Device Enrollment Program（≠ Deployment Program）
  - Appleデバイスを特定のMDMと紐づける機能
  - Automated Device Enrollmentとか、デバイス割り当てともいうのかもしれない
- VPP
  - Volume Purchase Program
  - App Storeのアプリライセンスを管理する機能
  - 「Volume Purchasing」とか、「Appとブック」ともいうのかもしれない
- MDM
  - Mobile Device Management
  - 主にモバイルデバイス（ここではiOS、iPadOSデバイス）を遠隔で管理する機能を持つサービス
  - だいたいクラウドサービス、オンプレも可能っちゃ可能だがつらい。
- EMM
  - Enterprise Mobility（またはMobile）Management（≒ MDM + MAM + MEM + MCM ≧ MDM）
  - だいたいMDMと一緒と考えていい。
  - 流行り廃りのものなので定義は曖昧そう
  - ほかにもUEM（Unified Endpoint Management）とか
- ABM
  - Apple Business Manager
  - DEP + VPP + Managed Apple IDを管理するためのAppleサービスおよびそのポータルサイト
  - Deployment Programの後継
  - DEP、VPPを使うためにはこれを申し込まなければならない。
- ASM
  - Apple School Manager
  - DEP + VPP + Managed Apple ID + classroomを管理するためのAppleサービスおよびポータルサイト
  - ほぼ触れない
- Deployment Program
  - DEP + VPPを管理するためのAppleサービスおよびそのポータルサイト
  - ABM/ASMの旧バージョン
  - 今は新規申し込みができない
  - DEP利用時はアップデートの案内が鬱陶しい
  - でも[2019/12/01でサービス終了](https://support.apple.com/ja-jp/HT209617)
  - アップグレードしなければならない

### 紛らわしいけどとりあえずほぼ無関係なもの

- ADEP
  - [Apple Developer Enterprise Program](https://developer.apple.com/programs/enterprise/jp/)
- ADP
  - [Apple Developer Program](https://developer.apple.com/jp/programs/)

「Developer」と付くものは、だいたいアプリ開発にかかわる方なので記事中ではほぼ触れない。
App Store公開App、カスタムAppを作る場合はADP。
エンタープライズAppを作る場合はADEP。ただしやたら申し込みのハードルが高くなっているらしい。

## 監視モードとは

iOSデバイス（iPhoneやiPad）やtvOSデバイス（Apple TV）（以下、これらを「端末」という）を、会社が従業員に貸与したり、施設が利用者に貸し出すなど非個人端末および共用端末に対して、強いポリシーや設定を適用できるモードである。
端的に「端末に対して設定できる事項が増えるモード」と考えるとよい。

### 呼称について

MDMベンダー等により「監視対象デバイス」「デバイス管理モード」「Supervisorモード」など、いくつかの呼称がある。
なお、[Appleは「監視対象」と表現している。](https://support.apple.com/ja-jp/HT202837)
Apple Configurator 2.10とiOS13からは「監理」の用語も使われるようになった。

【余談】
「監視」と言っても、「～によって監視および管理されています」とか出るけれども、これだけでiOSデバイスの状態を逐一遠隔監視したりできるようになるわけではなく、いわゆる「遠隔監視」を目的としたモードではない。
MDMを導入すれば監視モードでなくてもインストールされているアプリの一覧を取ったり位置情報を取ったりすることはできなくない。
用語的には「管理モード」が一番しっくり来るのではないかと思いつつも、言い慣れた「監視モード」で以下記載する。

### 監視モードでできるようになる主な事項

#### MDMからのAppインストールのサイレント化

アプリをインストールする際に、iOSの画面上に何も出さず、即インストールを開始させることができる。
ただし、Apple IDを利用してApp Storeからアプリをインストールしている場合は、利用規約の変更時や初回インストール時（そのApple IDに購入済みフラグが立っていない場合）はApple IDのパスワード入力を要求されるため、完全なサイレント化の実現はできない。
※非監視モードの場合はパスワードの前に、インストールするかどうかのダイアログが表示され、利用者が拒否をすることができる。
※パスワードの要求をOFFにしていても、上記のタイミングで表示される。

完全にサイレントでアプリのインストールを完了させたい場合は、監視モードを利用することのほか、VPPデバイス割り当てが必須となる。

|                                         | インストール要求ダイアログ | Apple IDパスワードダイアログ |
| :-------------------------------------: | :------------------------: | :--------------------------: |
|            監視モードである             |        表示されない        |          影響しない          |
|      VPPデバイス割当を利用している      |         影響しない         |         表示されない         |
| **監視モードかつVPPデバイス割当である** |      **表示されない**      |       **表示されない**       |

VPPデバイス割当については後述

#### MDMによる「管理対象App昇格」のサイレント化

管理対象Appとは、MDMにより管理されているAppを指す。
MDMからインストール指示したアプリ → 管理対象App
App Storeから手動でインストールしたアプリ → 管理対象外App

MDMからアップデート/アンインストールを行う場合、管理対象Appでなければならない。
管理対象外Appを管理対象Appとする操作を行えるMDMがあるが、監視モードではない場合は昇格確認ダイアログが表示されてしまい、利用者により拒否することができてしまう。

主な使い方は、意図しないアプリを利用者が勝手にApp Storeから入れたものを遠隔で消去する場合に利用できると考えられる。
非監視モードだと、利用者がダイアログでキャンセルを押してしまうと遠隔消去も出来ずに呼び出して対応する羽目になるのだろうか。

なお、そこまでアプリの利用を制限したいのであればこの機能を使うよりも後述する「App StoreからのAppのインストールを許可」禁止設定を適用しておき、インストールするアプリをあらかじめすべてMDMからの配信で管理しておく方が楽と思う。
このポリシーを適用すると、App Storeが非表示になり、iOS上でストアからアプリを入れることが出来なくなるが、MDMを利用したインストールは可能となる。

なお、非監視モードで適用できる「Appのインストールを許可」と、設定内にある機能制限のAppインストールでふさいだ場合、MDMからのインストールも阻止される場合がある。
※「Appインストールを許可」のほうは、リファレンスでも表記が怪しくなっているので使わないほうが無難かもしれない。

さらに、監視モードであれば後述の「アプリケーションホワイトリスト/ブラックリスト」も使えるので、変なアプリを利用されたくない場合は監視モードの利用は必須であると考える。
将来にわたっての追加や削除、更新すら行わないのであれば機能制限でもよいが、iOSアップデートによるAppのバージョンアップはどうしても必要となるシーンが多いので推奨しない。

ついでに「Managed App Configuration」という機能がある。
これは管理対象Appに対してMDMから設定を配信する機能であり、以下のような設定を配信できる。

- 某コミュニケートアプリ（企業向けにVoIPとかチャットを提供するアレ）のサーバ設定を配信
- 某ドキュメント管理アプリ（文書や表計算やプレゼンテーションを作成閲覧するアレ）のアカウントや機能制限

対応するにはアプリ側が遠隔での設定を受け取ることができるように作られている必要がある。
設定はXMLでレジストリのように、キーと値を設定したものを配信する。

Androidでも「管理対象設定」と似たようなものがあるが、iOSの方はアプリベンダーが情報を出さないとキーがわからない。
Androidの方はGoogleに設定可能なキーが登録されるのでとりあえずわかる。

#### 管理対象紛失モードが使える

監視モードの場合、対応しているMDMを利用することで管理対象紛失モード（ロストデバイスモードというMDMベンダーもある様子）が使える。
概要については「[モバイルデバイス管理 (MDM) と「iPhone を探す」のアクティベーションロックを使う](https://support.apple.com/ja-jp/HT202804)」内の「紛失モードと管理対象紛失モード」と「[管理対象紛失モード](https://support.apple.com/ja-jp/guide/mdm/iorb0f639322/web)」参照

特徴（遠隔ロックとの違い）としては

- iOSデバイス側では解除できないロックを仕掛ける（パスコード入力不可）
  - 解除するにはMDMから解除指示を出さなければならない
  - 指定した電話番号と緊急発信（警察、消防、海保）は可能
- このロックがかかっている場合、MDMから「iPhoneを探す」と同等の位置情報取得が行える
  - 「位置情報サービス」がOFFにされていても、遠隔でONにして位置情報を取る
  - プッシュかつiOSの機能を用いるので、MDMのクライアントが入っていなくても通信が出来れば割とすぐに位置が取れる
- Apple PayやSiriも止まる

多くの場合、紛失した時には先ず遠隔消去をする運用も多いと思われる。
しかし、紛失即遠隔消去とした場合は、それ以降の位置情報取得もできなくなってしまう。
「実は手元にありました」や「見つけました」という場合であっても、回収して再設定を行う必要が出てくる。
管理対象紛失モードを利用する場合は、デバイスが通信できる状態であれば位置情報を取れる確率は上がるし、パスコード入力もロックされる。（さらに言えばパスコード指定回数ミス時の消去も働かない）
よって、資産としての端末を取り戻せる可能性の向上と、発見時の再設定の手間を減らすことができるようになる。

端末内部に保持するデータの重要度と、紛失・発見時のコストを天秤にかけて運用を考えると良い。

##### 位置情報の取得について

ほとんどのMDMが管理対象紛失モード設定時と、以降に手動で取得指示を行ったときにしか位置情報が取れず、今のところ紛失時に自動的、定期的にこの紛失モードを利用した位置情報を取得し続けるものはない。（もしかしたら、そんな機能を実装したMDMがあるのかもしれない。単に手動指示を自動でやってくれればいいだけなので）
また、この機能を用いてこっそりと外回り営業の行動経路を盗ることは難しい。
このモードで位置情報を取ると、紛失モード解除後にロック画面や通知に「位置情報取ったどー！」と残って利用者にバレる。
あくまで、紛失時にその時の位置を取るものである。でも、外回り中にサボっている人は安心しないで欲しい。

#### 強いポリシーの適用

構成プロファイルやMDMで配信できる設定の一部は、監視モードにしておかなければ反映されない。
監視モードにすることで、それぞれのiPhoneやiPadの機能制限を設定しなくても一括で設定できる。
以下で監視モード、かつMDMか構成プロファイルのみで設定可能（iOS上では設定できない）と思われる、かつ何か利用価値がありそうな項目の一部を挙げてみる。（正しいかどうかはMDMのマニュアルやリファレンスを参照）

あまりにも増えてきたので、今後の更新はたぶんしない。

「[監理対象の制限](https://support.apple.com/ja-jp/guide/deployment/dep6b5ae23e9/web)」にまとめられたのでこっち見ると早い。

##### App StoreからのAppのインストールを許可

前述の奴。これを禁止することで、App Storeのアイコンが無くなり、端末上でAppを自由に入れることができなくなる。
ただし、iOS上のApp Store以外でのインストールは可能。
なので、MDMでアプリ配信を設定しておけば、管理者が許可したアプリのみインストールが可能で、それ以外は勝手にApp Storeからは入れられないようになる。
完全に利用者による意図しないアプリのインストールを防ぐ場合は、PCペアリングも禁止（iTunes経由でのインストールを防止）として、
さらに不正アプリを心配する場合は「新しいエンタープライズApp作成者の信頼を許可」とかを併用しなければならない。

なお、標準アプリのインストール（というか再表示に近いアレ）はMDMでは制御できない。
App Storeのアイコンがない状態で標準アプリを消してしまうと復元できなくなるため、iOS11で追加されている「システムアプリの削除を許可」を禁止として対応する。
（11.3より対応MDMから標準アプリの遠隔インストールに対応した模様）

もう一種類あるアプリインストール禁止と、スクリーンタイム（機能制限）のストア停止は、まれにMDMからのインストールもできなくなる。というか、そのキーの利用は推奨されていない。というかiOS13からは監視モードが必要になる。

##### “すべてのコンテンツと設定を消去”を許可

設定の中から初期化ができなくなる。
でも、パスコード一定回数ミスでの消去や、iTunesとかにつないでの復元は阻止できないので過信は禁物。
あくまで“すべてのコンテンツと設定を消去”だけ。
それすらも何とかしたければDEPを使うしかないかもしれない。

##### 構成プロファイルのインストールを許可

「アカウント設定の変更を許可」を禁止としても、プロファイルでやられるリスクはある（そこまでして、貸与されたものに個人アカウントを設定するマニアックな人は居ないと思いたい）
他に、プロファイルのインストールでできてしまうこととして以下が挙げられる。

- Wi-Fi設定（某フリーWi-Fi接続支援アプリとか）
- VPN設定（最近はOpera VPNとかApp StoreのアプリでVPNプロファイルを投入させるものがある。中には怪しいものもありそう。ただしiOS10以降は仕様が変わって利きづらい）
- iOS Beta Profile
- 怪しいルート証明書
- YJSNPI

この制限を行っていても、MDMから配信するものには影響しないので、プロファイルを手動でインストールする必要がないならば、仕掛けておくほうが安全かもしれない。
でも、キャリアメールやキャリアWi-Fiがプロファイルって言うジレンマ。

Wi-Fi利用制限を行う場合は併せて仕掛けることをオススメ。

##### デバイス名の変更を許可、パスコードの変更を許可、Touch ID指紋の変更を許可、制限の変更を許可

他のシステムでiOSデバイス名（iPhone/iPadの名前）を利用していて、変えられると都合が悪い場合や、共用デバイスで勝手にパスコード設定されると困るのであればこれらを制限するといいかもしれない。

##### グローバルHTTPプロキシ設定、常時接続VPN

iOSデバイスの通信内容を制御したい、保護したいときに利用できるかも知れない。
前者プロキシサーバまたはPacファイル、後者はIKEv2に対応したVPNゲートウェイへアクセスできない場合は通信自体がブロックされる。

また、モバイル網/Wi-Fi接続問わず利用されるので
がっつりアクセスログを盗りたい場合や、フリーWi-Fiスポットすらも足回りとして安全に使いたい場合は使えるかも知れない。
でも、前者はHTTPSプロキシに対応していないっぽいのと、ネット上にプロキシを設置するリスクがあると考える。
後者は適当に立てるならともかく、実務利用に耐えられる環境（IKEv2でかつiOSでの常時接続に耐えられるもの）を準備するのは、割とハードルが高い。
ちなみにどちらも環境を提供しているクラウドサービスは存在する。

ここまでやるなら、閉域モバイル網を利用するのもアリ。

なお、これらを利用した場合

- MDMや一部APNSの通信もそちら経由となること
- 紛失モードを仕掛けると、VPN接続が途絶すること
- グローバルHTTPプロキシを指定しても、それを通らず直接接続しようとする通信（80、443以外の通信）

もあるので注意されたい。

必ず事前検証を行い、通信内容やケースごとの挙動を見たうえで導入可否を判別するよう注意が必要なブツ。
なお、テザリング時にグローバルHTTPプロキシ設定でテザリング下のPCに[mitmproxy](https://qiita.com/wtotw/items/69290b178371c4d7cf76)入れて指定すればモバイル通信も覗けるので稀に使い道がある。
逆にmac側でインターネット共有を動かしてLightning接続なiOSデバイスをmac経由でネット接続させる（逆テザリング的な感じ）でもいいし、有線LANでもいい。
プロファイルにプロキシ設定と証明書の両方を**Configuratorで**突っ込んでおけば[信頼設定も省略](https://support.apple.com/ja-jp/HT204477)できたり。

##### Appの使用を制限（Appホワイトリスト/ブラックリスト）

ホワイトリストで指定したアプリのみを表示する、またはブラックリストで指定したアプリを非表示にする。
あくまで非表示なので、インストールはされてしまい、かつ削除できなくなるので要注意。
なお、標準でiOSに入っていて、アイコン長押しでも消えないものにも有効。
というか、「電話」「設定」以外は消せる。
Webクリップにも影響するので、Webクリップを指定する場合は「com.apple.webapp」をアプリ識別子として設定。

##### Wi-Fiの接続制限

Wi-Fi手動接続の制限
手動接続できない＆手動設定を無視する。
接続先はMDMか構成プロファイルで指定する。
手動プロファイルインストール制限とセットにしておくと利用者が好き勝手にWi-Fiアクセスできなくなるので、社内Wi-Fiのみに限定したりWi-Fi利用自体を止めたい時にでも。

キャリアプロファイルに含まれるWi-Fi設定には注意。iOSバージョンによって挙動が違う。

##### その他諸々

- AirPrint禁止や探査と認証
- VPN設定の作成禁止
- AirPrint（てかIPP？）ポートの指定
- IKEv2でEAP-TLS利用時のTLSバージョン指定
- 標準アプリのみの削除禁止
- ホーム画面アイコン配置強制化の中でのWebクリップ配置（復活？）
- ソフトウェア更新の遅延を強制（forceDelayedSoftwareUpdatesとenforcedSoftwareUpdateDelay）
  - 最大90日間、iOSアップデートの非表示化
  - 手動でのアップデートを抑止、MDM指示やPC接続でのアップデートは可能
- クラスルーム関連（forceClassroomRequestPermissionToLeaveClasses）
- USB制限モード（allowUSBRestrictedMode）
  - USB制限モードを無効化する。
  - 設定すると逆にセキュリティが下がる、プロファイルの中では珍しい設定。
  - Apple Configurator 2の2.7.1以降で監視モードにすると、勝手に「Disable USB Restriction」としてプロファイルが入って無効化される。はた迷惑。
- テザリング設定変更の制限（allowPersonalHotspotModification）
  - テザリングのスイッチとパスワードの変更を禁止する。iOS 12.2から
- iOS 13.xから追加されたもの
  - ファイルappにてUSBストレージのマウント禁止
    - ファイルサーバの利用禁止が13.1であるかも
  - 「探す」アプリの制限2種。デバイスと友達。両方制限するとアプリ非表示。
  - Wi-FiのON/OFF変更禁止
    - Wi-FiをONに強制が13.1でできそう
  - allowContinuousPathKeyboard
  - allowDeprecatedWebKitTLS （13.4）
    - SafariでTLS1.0-1.1での閲覧を許容？13では意味がなさそう
- iOS 14から追加されたもの
    - App Clipsの制限
    - WiFi macアドレスランダム化の制御
    - encrypted DNSの強制化
    - Managed Appの個別アンインストール禁止（もしかするとSupervisorいらんかも、MDMの対応が必要）
    - NFC利用制限（14.2？）

##### iOS13から監視モードが必要となったものの一部

- AppStoreの制限（allowAppInstallation）
- カメラの制限（allowCamera）
- iCloudの一部機能制限
- iTunesの制限（allowiTunes）
- GameCenterの一部機能制限
- Safariの制限（allowSafari）
- Facetimeの制限（allowVideoConferencing）

但しリファレンスが間違っているのかiOSがバグっているのか。13.1.3時点では下記「As of iOS 13, ～」がある項目のいくつかは監視モードでなくとも使えている。なにゆえ。

情報元は以下のとおり。

- [Configuration Profile Reference](https://developer.apple.com/business/documentation/Configuration-Profile-Reference.pdf)のなかで、「Supervised only.」と書かれている項目
  - ~~日本語版もあるが、内容が少し古い傾向にあるので、英語版のほうが確実~~ 日本語版はもはや更新されない。
  - ~~でも英語版ですら更新が微妙に遅い → ここ数か月やたらと早い。むしろ~~リリース前iOSまで出ている。 基本はコレ。
- [Apple Configurator 2 ヘルプ：ペイロード設定のリファレンス](https://help.apple.com/configurator/mac/2.6/#/cad5370d089)と[モバイルデバイス管理設定 - 制限のリファレンス - iOS の制限](https://help.apple.com/deployment/mdm/#/mdm0F7DD3D8)
  - すべてが載っているわけではないが、リファレンス日本語版よりかは見やすい
  - AC2ヘルプはバージョンアップによってURLが変わる。そしてなぜか2.7以降は該当ページがない。
- [Profile-Specific Payload Keys](https://developer.apple.com/documentation/devicemanagement/profile-specific_payload_keys)
  - おそらくProfile Referenceの後継
  - 「As of iOS 13, requires a supervised device.」の記述に注目

#### アクティベーションロックの制御

後述するが、監視モードの場合は **「iPhone（iPad）を探す」をONにしただけでは、アクティベーションロックがかからない。**
アクティベーションロックを有効化するには、対応するMDMから操作しなければならない。
https://support.apple.com/ja-jp/guide/mdm/apd593fdd1c9/web

逆に、MDMが対応していればアクティベーションロックの解除指示や、バイパスコードの取得が行える。
退職者などから返却されたときに、アクティベーションロックがかかったままで再利用できず、死蔵されるリスクの回避となる。

※アクティベーションロックは、端末自体ではなくDEPやSIMロックと同様にAppleのアクティベーションサーバが管理している事項である。
なので、デバイスを初期化したあとでもMDMからアクティベーションロック解除が可能な様子。

※バイパスコードとは、アクティベーションロックで、Apple IDとパスワードの入力が求められている画面で、IDを空欄、パスワードにこのバイパスコードを入れるとアクティベーションロックが解除される仕組み。

※しかしアクティベーションロックにはApple IDが必要だったりするジレンマ → DEP認証で代用しようぜ
　と思っていたが「監理対象デバイスでは、ユーザがそのデバイス上で自分のApple IDを使ってiCloudアカウントにサインインしなくても有効になるので、ユーザが無効にすることはできません。」とある。確認する。

#### iOSアップデートの制御

遅延とバージョン指定アップデートができる。後者はDEPも必要っぽい。アップデート禁止は無理。

## とりあえず監視モードの時に注意すること

### macOSが必要

DEPを利用せずに監視モードを運用する場合、端末を監視モードにするためだけにmacOSが必要となる。
ただ、MDMでのポリシー作成能力の問題もあったりするので、一台買っておけば便利。安いのでいい。
しかしあまり安すぎるとmacOSのバージョンアップに追従できず、最新のConfiguratorが入れられず、最新のiOSに対応できない。ウチのmacMiniはHighSierra止まり。

監視モードにしたmacでなければ後々の管理ができないというのが過去にはあったが、監視モードにするだけであればとくにmacの実機にこだわる必要はなく、別にどのmacで監視モードにしても構わない。
たとえば支店ごとに別のmacを使うとか、レンタルしてくるとかでもなんとかなる。たぶん。
また、企業設定（監視モードに利用される電子証明書類）のインポートエクスポートができるようになっているので、最低限それだけバックアップを取っていればたぶん安心。

あと、運用するときは[コレ](https://support.apple.com/ja-jp/HT207434)もバックアップしておこう。

### アクティベーションロックの仕様と、デバイス不正利用への対策

前述したが、デフォルトではiCloudにサインインして、「iPhoneを探す」「iPadを探す」をONにしてもアクティベーションロックが有効にならない。
また、VPPを使うなどで、Apple IDを使わない選択肢をとるのであればそもそもかけられない。
落として誰かが拾って、復元をかけてしまうと使えてしまう。あとパスコード指定回数ミスによる初期化とか。

なので、デバイスの不正利用や転売を気にするのであれば、対応したMDMからアクティベーションロックを有効化するか、DEPによる認証で代用するか。

※DEP認証 → アクティベーション時に、MDM側で設定されているID/パスワードで認証を行わないとアクティベーションできなくなる機能
※MDMによってどんなID/パスワードを設定できるかは異なる。
※ものによっては別の認証サーバ（Active Directoryとか）と連携して個別に設定できるものもあれば、全台共通のものしか設定できなかったり。

### 監視モードの操作をするときは原則として初期化が必要

厳密には設定アシスタントが立ち上がっている状態でなければConfiguratorで監視モードとすることが出来ない。
監視モードを解除する場合は初期化しなければならない。

バックアップからの復元を行う場合、復元元と復元先それぞれの監視モード状態を問わず、監視モードが外れるっぽい。それ以外にも復元（iCloud、iTunes）やAndroid移行とは相性がよくないっぽい
DEPは復元後にMDM加入と監視モード化が走るので普通に使える。ただし、同一デバイスへの復元はNG。DEP処理が走んない。

### 組織識別情報が表示される

監視モードにすると、監視されている旨のメッセージが表示される。

- iOS10.1以降は「設定」のトップレベル（機内モードの上の余白部）
- iOS10.1未満は、ロック画面と「設定」→「一般」（名前の下の余白部）

この表示の中に、組織識別情報に設定した組織名が表示される。
ちょっと古いiOSだとロック画面に思いっきり組織名が表示されるので、まじめに会社名をつけていると拾った人が「お、これ●●●●社のやつか、金になるかも。。。（■ω■）ﾆﾔﾘ」となるかも知れない。
なお、DEPを利用した場合はまじめに会社名に（強制的に）されてしまうので、諦めるしかないかも知れない。

一応、長さとしては日本一長い会社名でも入る模様。設定アプリが初っ端、埋まる程度には入る。でもDEPでも許容されるかはわからない。

## 監視モードにする方法

監視モードにする方法は、Apple Configurator 2を利用する方法と、DEPを利用する方法がある。
なお、Apple Configurator 2とはMac用の無料アプリで、[Mac App Store](https://apps.apple.com/jp/app/id1037126344?mt=12)からインストールできる。
割と密接にmacOSとくっついているっぽく、バージョンアップに伴いmacOSの更新も求められる。
また、iTunesも新しいものが入っていないと新しいiOSを認識できなかったりする。

- Apple Configurator 2を利用する
  - 処理したいデバイスを接続・選択して、「準備」の中で「デバイスを監視」にチェックを入れる
- cfgutil（Apple Configurator 2のおまけ）
  - prepareコマンドを実行する際に「--supervised」オプションを付与する
  - この際に利用する組織識別用の証明書、秘密鍵はDER形式でなければならない
  - シェルスクリプト化してexecコマンドと組み合わせれば、「繋いで自動実行→差し替えて自動実行」で大量処理できて便利
  - ブループリントより少しだけ細かい設定ができる
- Automator（Apple Configurator 2のおまけ）
  - 「デバイスを準備」アクション内の「デバイスを監視」にチェックを入れる
  - 証明書のパスがフルパスで保存されるので、別のmacに流用しづらい
- Apple Business ManagerかApple School ManagerでDevice Enrollment Program（DEP）を利用
  - 個人で利用はできない。個人事業主ならいけるかもしれない。
  - 前者は企業向けで[DUNSナンバー](https://duns-number-jp.dnb.com/search/jpn/login.asp)が必要、後者は教育機関向け。
  - DUNSナンバーの取り方・確認方法は東京商工リサーチに聞いてほしい。
  - DEPとMDMを組み合わせることで、Macに接続せずともiOSアクティベーション時に自動で監視モードとすることができる。MDMへの強制加入もされる。
  - 組織識別情報は、前者の場合DUNS情報が利用される。

DUNSナンバーの取得は、だいたいの会社であれば勝手に発行されているので照会のみで済む。
個人事業主は頑張って取る。

## 利用すべきか、せざるべきか

仕事のために会社が購入するする端末であれば、MDMを利用するのであれば監視モードも利用するほうがいいかもしれない。というか利用しなきゃやってられない。
あとからポリシーを強めようとしても、監視モードでなければできないこともあり、かつ監視モードにするためには初期化を伴う。
そのため、最初に監視モードとしておくことであとからでも対応できる。
監視モード+MDM+DEP+VPPの全盛りだと後からだいたいの無茶には応じられるかもしれない。

かなりゆる～いポリシー（パスワード必須化と自動ロック強制程度とか）や、ガッチガチにポリシーを極める場合は監視モード＋DEPの恩恵が大きいと思います。MDMのDEP対応で追加費用が掛からないものであれば、とりあえず検証程度でも入れてしまっていいのではないでしょうか。入れて使わないって選択肢は取れますが、あとから入れるハードルは高いので。
掛かるコストは管理者の時間と精神ぐらいでお安いですし。

## 個人で利用するシーン

さほど思いつかない
macを持っていて、iOSデバイスを複数持っていて、割とマニアックな事が好きならお遊び程度にやればいいかも。

- 外でよく使うiPad、フリーWi-Fiスポットとか怖いし常時接続VPNに
- 子供用iPhone、通信ログ全部抜いてやるプロキシ
- 家族共用iPad、気づけば勝手にパスコードが設定されていて困る。または「iTunesに接続してください」な状態にされる
  - パスコードリセットで解除できる（再起動さえされていなければ）
  - または、パスコード未設定＋パスコード変更禁止で保護

ぐらいしか思いつかない。
やっぱり基本的には法人関係か、一部のマニアックな利用者向けなのかもしれない。

個人で申し込めるMDM、どこか国内メーカーさん出してください。
（[プロファイルマネージャ](https://apps.apple.com/jp/app/macos-server/id883878097?mt=12)は実用に厳しいかもしれない）

## DEP(Device Enrollment Program)について少しだけ

### DEPの概要

DEPとは、Appleが提供するサービスで、**無料のサービス**である。
（[Apple: Device Enrollment Program に関してよくお問い合わせいただくご質問 (FAQ)](https://support.apple.com/ja-jp/HT204142)）

利用するためには、Apple Deployment Program、Apple Business Manager（ABM）、Apple School Manager（ASM）への申し込みが必要。Deployment Programはもう新規申し込みができない。というか[サービス終了が見えている。](https://support.apple.com/ja-jp/HT209617)
※Apple Deployment Programを利用しているが、その中でDEPを利用（申し込み）せずVPPのみを利用している場合は、別途ABMの新規申し込みとVPPアカウントの招待が必要

これに申し込んでから、iPhone、iPadを**買うとき**に販売店へ「DEP付けとくれ～」と言えば対応してくれる。買った後では（後付けは）原則**不可**。[自力での付与](https://support.apple.com/ja-jp/guide/apple-configurator-2/cad99bc2a859/mac)なら何とか。

キャリアごとの対応状況

- au
  - [Device Enrollment Program (Apple提供) 登録サービス by KDDI](http://www.kddi.com/business/security-managed/security/dep/)
- ソフトバンク
  - [SoftBank Device Enrollment Program](http://www.softbank.jp/biz/info/dep_business/detail/)
- ドコモ
  - 公式ページに記載はないが、法人窓口でやっている様子
- Apple
  - [Apple](http://www.apple.com/jp/)で買う場合でもOK。法人窓口でなければ通じない。というか法人番号の発行が必要
  
macとiOSデバイスが対象と言っているので、iPod Touchもいけるのかも知れない。

### 結局どんなサービスなのか

単純に言えば、デバイスとMDMをAppleが強制的に結び付けてくれるサービスである。
まずは以下の機能のみがあると考えると良い。

- MDMへの自動登録
  - アクティベーション時に、あらかじめ設定したMDMに登録させる
  - いちいち端末ごとに「WebサイトへアクセスしてMDMプロファイルを入れて・・・」とやらなくてもよくなる
  - DEPを有効化した場合、iOSの初期設定時に以下の画面が表示される。
  <img src="https://drive.google.com/uc?id=1Our77uefJ7or6e7pdePwQQBwxKN2JJRa" width=600 />
  これで「構成を適用」を選択するとMDMへの加入処理が行われる。（「構成をスキップ」を許容せず、MDM加入を強制することもできる）

そして、MDMが対応している場合はDEPを使うことにより以下を実現できる。

- 監視モードの遠隔有効化
  - いちいちApple Configuratorにつながなくてもよくなり、初期化後アクティベーションを行うタイミングで監視モードに切り替わる。
- 登録時にユーザー認証（Apple IDではない）を設ける。
  - アクティベーションロックの代わりになる。
  - AD連携とかして、利用者の普段のアカウントでアクティベーションすれば自身のメール設定を自動化させたりなんてこともできなくない。
- MDMへの強制加入
  - 強制としない場合は、アクティベーション時にMDM登録をスキップさせるボタンが出る（上図の「構成をスキップ」）
  - 強制されていればスキップができず、ホーム画面が出た時点でMDM加入完了状態とでき、設定により即ポリシー適用なので、初期化後の再設定省略や紛失後に不正に初期化されても割と追跡ができる。
- MDMプロファイルの削除禁止
  - DEPを使わずにMDMへ加入させた場合、設定の奥にあるプロファイル一覧を覗くと「削除」のボタンが赤々と出ている。これを押すとMDMの制御が外れる
  - DEPの場合、オプションでコレを非表示とさせることができるので、使っている人の操作でMDMから逃げ出すことができなくなる。強制加入やペアリング禁止と組み合わせることでMDMから逃げられない。
- 初期設定のスキップ
  - 最初に出るパスコードの設定とかApple IDの設定とか、いらないならスキップさせてくれる
  - 何がスキップできるかは[Appleが定めている](https://developer.apple.com/library/content/documentation/Miscellaneous/Reference/MobileDeviceManagementProtocolRef/4-Profile_Management/ProfileManagement.html#//apple_ref/doc/uid/TP40017387-CH7-SW6)が、MDMがそれに対応しているかによって変わる。
  - 一部、スキップさせなければ相性が悪い項目もある。（復元関係。復元されるとDEPの設定が反映されない場合あり）

あくまでDEPの機能としてはアクティベーション時のMDM自動加入のみ。
DEP管理画面では、iPhoneとかのシリアル番号ごとに、どのMDMへ加入させるのかの設定しかない。
その他の機能はMDM側で設定する。DEPプロファイルとかDEPポリシーのような名称で存在する。

上にあるとおり「デバイスとMDMを結び付けてくれる」ので、DEPに対応したMDMが必須。
DEPを申し込みつつMDMと結び付けない（≒普通のデバイス）とすることもできるが、後からDEPを活用する場合はやっぱり初期化が必要（処理はアクティベーション時にされるので、初期化して再アクティベーションしないとダメ）

DEPを活用するためには、MDMの選定が重要となる。
選定基準としては最低限、以下の2点を確認する必要があると思う。

- DEP利用時の設定がどこまで対応しているか
- 初期化後、DEPを使った再登録と再設定が運用に耐え得るか

### 夢を見すぎた利活用

DEPの機能とその他の機能に対応したMDM（DEPへの対応だけでなく、他もろもろの条件や機能対応）を組み合わせることで、こんなことができるかもしれない。

1. DEPの申し込みとMDMの申し込みとデバイスの購入をする
2. MDMの設定をしておく
3. 買ったまっさらなデバイスを社員に渡す
4. 電源入れてる
5. ポチポチとデバイスの初期設定を進める。
6. DEPによる自動設定の通知が出てくる
7. DEP認証（個人別のアカウント情報を入力）で、IDとパスワードを入れる
8. 「さあはじめよう」が出てホーム画面表示
9. 勝手にアプリがインストールされてくる
10. 機能制限されてパスコード設定させられる
11. 自分のメールやWi-Fi、VPNの設定が降ってくる
12. レッツお仕事

とこんな感じで、（業務用の端末としては）幸せな状況が実現できるかも知れない。

ただし、実際はここまで自動化させる場合は
・認証基盤との連携（場合により中継用のサーバ構築やアウトバウンドのポート開放が必要）
・認証系システムとの連携（メール連携で二段階認証やSSO系のソリューションが入っていると辛い）
・事前の検証、以降の管理運用
と負担はそれなりに大きい。

### 手動でデバイスをDEPに登録する方法

概要に少し書いたとおり、iOSデバイスの場合は手元にあればApple Configurator2を用いてDEP登録をすることができる。中古で買ったりしたものでも行ける。
手動でDEPに追加したあと、手動でシリアルの割り当て先組織を「Apple Configrator 2で登録されたデバイス」から、任意の組織（MDM）に変えておかないと運用で詰みそう。

1. 「アクティベートして登録を完了」を有効にせず、「準備」を行ってDEP登録。途中で指定するMDMのURLはダミーでいい。
2. 途中でApple IDを聞かれる。ABMのデバイスマネージャー権限があるManaged Apple IDを入れる。
3. デバイスを初期化しておく。（初期化しないとダミーURLのMDMに加入しようとして詰むことがある）
4. ABM上でデバイスの割当先MDMを「Apple Configurator 2で登録されたデバイス」から実際のMDMに変更する
5. MDMにデバイス情報が降ってくる。必要なDEPプロファイルを当てておく。
6. デバイスをアクティベートしてDEP設定を適用

とするのが無難かもしれない。
なお、このやり方の場合30日の暫定期間が設定され、この間はMDMの設定を無視してデバイス側の操作でMDMからの離脱とDEP登録の解除ができてしまうことに注意。（設定アシスタントのリモートマネージメントとMDMプロファイルのところに「リモートマネージメントから離れる」と表示される。MDM強制化＆離脱禁止でも出る。押すとすっ飛ぶ）

間違えて「所有を解除」とかやっちゃってDEPが使えなくなったり、中古で買ったやつだったり、とりあえず試してみたい場合は販売店に頼らず自力でデバイスを登録することが可能になっている。

2021/12/06に[iPhone 用 Apple Configurator](https://apps.apple.com/app/id1588794674)がリリースされた。
これをインストールしたiPhoneを、macOS 12.0.1以降がインストールされた初期状態のmac（国選択が出てるアレの画面）に近づけたりすると、macを手動DEPでABMに放り込むことができる。
ググれば初期化せずにMDM加入までやっちゃうようなコマンドまで詳しく記載されたマニアック（誉め言葉）な記事が出てくる。たぶん。

### Apple School Managerとは

教育機関向けにはApple School Managerってのがあり、こちらはDEPの機能に追加で
・Apple IDの一括取得と管理が行えるManaged Apple ID。[Azure ADとの連携にも対応](https://support.apple.com/ja-jp/guide/apple-school-manager/apdb19317543/web)
・生徒がiPadで何をしているか教員が画面を覗ける機能
・教員の画面を生徒に見せ付ける機能
・iPadをマルチユーザで利用する機能（Managed Apple IDにより、自分の環境を再現）
があるらしい。[Classroom](https://support.apple.com/ja-jp/guide/classroom/welcome/ios)のフル活用に必要かもしれないが2.0からは必須ではなくなったとかなんとか。

### DEPのまとめと注意事項

一番大きい特徴が「MDMへの自動登録（強制的登録も可能）」なので、上にもちょくちょくと書いてある「パスコード一定回数ミス時の消去」「復元による初期化」を行っても、ちょいちょいと初期設定すればMDMに登録される。いちいち回収して再設定とかしなくても済むかもしれない。
また、落として拾った悪い人が何かしても、MDMに戻ってきた時に管理対象紛失モードを仕掛ければ位置情報が判り、取り戻せる可能性も出てくる。

しかしDEPの機能としては指定したMDMへデバイスを向けること。
向けただけだとMDMへの自動加入ができず、ABMでMDMへの割り当てをした後にMDM側でデバイスの認識やDEPプロファイルの適用が必要。
これが漏れているとDEP加入に失敗して先へ進まなかったり、DEPが効かずにふつーの初期設定かつMDMへの加入がなされない。
また、一度アクティベーションの画面を経てしまうと設定値が確定してしまうので、設定を変えた場合は初期化が必要。DEP失敗で設定アシスタントが先へ進めなくなったときは場合によってはAC2やiTunesで強制リカバリが必要。

ABMは法人向け、かつ1社1環境。
すでに社内の誰かがABMを申し込み済みであった場合、申し込みがリジェクトされる。
でもサポートに問い合わせれば手助けしてくれる。
ABMを導入する場合はきちんとどこの部署が音頭をとるか決めてやらないと後で揉める。
もしこれを読んでいる人がABMの申し込みをする立場なのであれば、後から他の部課所が利用を希望したときにどうすべきかを決めておいてほしい。独り占めダメ、ゼッタイ。それで泣いている人が[たぶん居る](https://twitter.com/sakiaruto/status/1263370674774568961)

万能なサービスではないので、今まで誰かがやっていた初期設定作業をすべてなくすことができるとは限らない。
とくに、追加設定を行う必要がある場合は、それがMDMによって適用される制限事項とぶつからないか注意が必要。

たとえば一部のキャリアメールを使うときはプロファイルのインストールが必要だが、Safariを禁止してしまうとできなくなる。
また、迷惑メール設定や留守電設定、内線設定をブラウザからやる場合もあるだろうし、その際にキャリアの回線認証が行われる場合はプロキシや常時VPNとぶつかったりする。

## VPP(Volume Purchase Program)について少しだけ

### VPPの概要

VPPとは、Appleが提供するサービスで、無料のサービスである。
[Apple: Volume Purchace Program](https://images.apple.com/jp/business-docs/VPP_Business_Guide.pdf)

利用するためには、Apple Deployment Program、Apple Business Manager（ABM）、Apple School Manager（ASM）への申し込みが必要。
※Apple Deployment Programは申し込みの受付が終了されている。すでに利用中の場合は継続でき、ABMへのアップグレードが可能。
※Apple Deployment Programを利用しているが、その中でDEPを利用せずVPPのみを利用している場合は、別途ABMの新規申し込みが必要

通常、App StoreのアプリはApple IDを利用することで（無料のアプリでも）購入処理を行ってApple IDにそのアプリのライセンスをくっつける。
有料のアプリの場合は、そのApple IDに登録されているカードなどで個別に支払いする必要がある。

VPPの場合は、まず管理者がライセンスを購入する。（無料のアプリでも）
そして、そのライセンスを払い出す形を取る。

考えられる利点は、今まで利用者で立替払いをしているような場合、これを管理者側で一括して支払うので経理上の手間が減るかもしれない。

一番大きな利点は、ライセンスの払い出し方法によっては**Apple IDが不要となるので、導入と管理がちょっと楽になる。**

#### Apple IDを法人で運用する問題点

Apple IDは個人を対象としたものであるため、**法人が一括して取得する仕組みがない。**（教育機関であればASMを利用してManaged Apple IDを一括取得可能）
かといって、個別に取得すると**不正取得とみなされて途中で取得できなくなったり、取得したあとでロックされる場合がある。**
また、各利用者で取らせようにも、取り方によってはクレジットカード登録を求められて、手順をミスった人が詰む。
さらに、**個人で取得済みのApple IDを流用する人が現れて、電話帳が入り乱れたりアプリが入り乱れ**て詰んだり、逆に**Apple IDを取らずに使い始め**て詰む。
おまけに、Apple IDのパスワード、秘密の質問、生年月日、復旧キーを忘れる人も現れてにっちもさっちもいかなくなって詰む。

~~後述するが、管理対象Apple IDで管理者以外のApple IDを作ることは2019/11時点では現実的ではなく、管理対象Apple IDはあくまで管理者用アカウントの位置づけ感が強い。~~

### VPPのライセンス払い出し方法

ライセンスの払い出し方法は以下の通り。大きく2つ、小さく3つ。

- 製品引換コード（有料アプリ、カスタムB2Bアプリのみ）
    - ギフトコードを一括して買う
    - ライセンスを払い出す時は、そのギフトコードを渡す
    - 受け取った側は、App Store Appでコードを入れることで購入済みとなる。（その時にサインインしているApple IDで）
    - 一度処理したライセンスは永続的にApple IDにくっつく。**剥奪できない。**
- 監理配布方式
    - 管理配布：Apple IDベース
        - MDMによって管理できるライセンスが払い出される。利用には対応したMDMが必要
        - ライセンスを払い出す時は、MDMの操作で処理される
        - 受け取った側はダイアログ通知が出るので、それを操作することで購入済みとなる（またはメールとブラウザで処理）
        - ライセンスの剥奪と使いまわしが可能。剥奪されると一定期間後にアプリが起動しなくなるそうな
        - ライセンスはApple IDに対して割り当てられる。そのApple IDで複数のデバイスにサインインするとそれらでアプリが使える
    - 管理配布：デバイスベース
        - MDMによって管理できるライセンスが払い出される。利用には対応したMDMが必要
        - ライセンスを払い出す時は、MDMの操作で処理される
        - デバイスに対してライセンスが割り当てられるので、Apple IDでサインインしていなくてもよい
        - 受け取る側には、監視モードであればなにも画面表示されない
        - ライセンスの剥奪と使いまわしが可能。剥奪されると一定期間後にアプリが起動しなくなるそうな
- ライセンスはデバイスに対して割り当てられるため、デバイスの数だけライセンスが必要

VPPを利用せずにアプリを利用しようとした場合、App Storeのアプリライセンスは、Apple IDに対して割り当てられる。
そのため、個人が利用する場合においては、アプリをインストールするためにApple IDを取得し、端末のiTunes Storeにサインインする必要がある。
VPPデバイス割当とは、ライセンスをApple IDではなく、端末に対して割り当てることであり、結果として**Apple IDの取得とサインインなどの管理が不要となる。**

なお、VPPユーザ割当については、以下の理由により個人的に運用が面倒だと考えるため、推奨しない。

- Apple IDの取得・管理が必要となり、メリットはライセンスの回収だけになる。
- 「VPPへの招待」の手順が必要となり、iOS上で完結させる場合は**App Storeの禁止ができない**

### VPPのまとめと注意事項

製品引き換えコードと、管理配布は購入時に選ぶので、後から切り替えることは面倒かつ一方通行と考えたほうがいいかもしれない。
[Volume Purchase Program で引き換えコードから管理配布に移行する](https://support.apple.com/ja-jp/HT202863)

- 製品引換コード
  - コードを撒くのが面倒くさそう
  - ライセンスの回収ができないので、異動・退職・Apple IDのパスワード・生年月日・秘密の質問を忘れてどうしようもないときはライセンスを捨てることになる
  - MDMとかそんな面倒なものを使わずに、とにかく立替払いをなくしたい時ぐらいか
  - でもそれなら普通にギフトつかってもいいかもしれない
- 管理配布：Apple IDベース
  - ダイアログ通知が出た後の操作が、App Storeを利用禁止にしていると表示されないので詰む
  - VPP利用規約の画面が英語なので、利用する人によっては詰む
- 管理配布：デバイスベース
  - 対応しているMDM、かつ作りこまれたMDMでないと、ライセンスの払い出しとインストール処理が前後して詰む
  - App Storeを出していてもアップデートできない（App StoreはあくまでApple IDの情報を見る）ので、MDMが何かしらアップデートの仕組みを準備していないと詰む
  - Apple ConfiguratorでVPPのアカウントを使ってアプリインストールするとこれになる。Apple Configratorに繋がないとアプリのアップデートができなくなるので詰む
  - デバイスに対してライセンスを払い出すので、iPhoneとiPadを2台持ちして同じ有料アプリを使っているような場合はライセンス費用が増えて詰む
  - アプリ内課金が使えなくて詰む（インストールした時のApple IDでサインインしてくださいといわれる。そんなものはない。そしてVPPはアプリ内課金には非対応）

今までアプリを入れるためだけにApple IDを取っていたのであれば、その手間と管理の手間を省けるようになるので、デバイスベースのVPPはまだ活用できるかもしれない

### ついでのおまけ：プリインアプリの取り扱い

条件付無料のApple製アプリは申請することで無料のライセンスをくれる。→今は無料になっているので普通に￥0で買ってしまえばいい。
[Volume Purchase Program で iOS App をリクエストする](https://support.apple.com/ja-jp/HT202953)

### おまけ2：レガシーVPPとロケーションVPP

- Apple Deployment Program時代のものをレガシーVPPと言う。
  - レガシーVPPのライセンスは管理者のApple IDごとに管理される。
  - 管理者Aさんが買っても、BさんのApple IDではライセンス管理できないし、その逆ももちろん不可能
  - なので、VPP用のApple IDはきちんと管理しないと詰む。運用担当者が変わるとき面倒くさい
- ABM、ASMで利用するVPPをロケーションVPPと言う。または「Appとブック」と[言われる](https://support.apple.com/ja-jp/HT208257)
  - VPPのライセンスがApple IDと直接紐づかなくなったので、運用しやすくなっている。
- VPPトークン（Appleとシステム間連携用の証明書）は複数のMDMに入れない方がいい。
  - 使用ライセンスと残ライセンスの管理がうまく整合されず、ゾンビライセンス（どこかのデバイスに割り当たったままMDMの管理から外れ、奪え返せなくなったライセンス）になったりして詰む。
  - また、Apple Configuratorや一部のMDMだと「すでに別環境でトークン使われとんで」と言われて登録できない。もし登録できても管理できなくなって詰む。
    - なお、ゾンビライセンスについては、Apple Configurator 2を使って無理やり剥がす（レガシーVPPのみ）か、[CURLを使ったりしてAPIを直接叩いて引きはがせるっぽい](https://developer.apple.com/enterprise/documentation/MDM-Protocol-Reference.pdf)がハードルはちょっと高すぎる。

### おまけ3：カスタムB2B（→カスタムApp）

Appの配信方法にはカスタムB2Bといわれる仕組みがあり、これを利用するとアプリベンダーは特定の顧客にのみアプリを配信することができる。
配信やアップデートはApp Store基盤が利用されるが、通常ではストアに表示されず検索しても出てこない。
一部の法人向け商材のアプリに利用されていたり、一般公開したくない社内専用アプリを開発した場合の配信に利用できる。

これを利用する場合、VPPが必須となる。（上記「特定の顧客」を指定する場合にVPPの紐づけを利用する）

ただし、一般向けほどではないがAppleの審査が入る。
審査が通りそうにないような自社用アプリであれば[エンタープライズApp](https://support.apple.com/ja-jp/HT204460)で。ただし毎年プロビジョニングプロファイルの更新が必要。というかもう契約が絶望的らしい。2020年頃から。
審査が通りそうで、更新が面倒で、開発を外部に投げるのであればカスタムB2Bってな感じなのかもしれない。

### おまけ4 VPP対応可否とデバイス割当の確認方法

~~たとえば[このアプリ](https://apps.apple.com/jp/app/id382028327?mt=8)を調べる場合。~~
~~・URLのドメイン部を「apps.apple.com」から「[**vpp.itunes.**apple.com](https://vpp.itunes.apple.com/jp/app/id382028327?mt=8)」に書き換えてアクセス。**アクセスできればVPPには対応。**~~
~~・画面左下の互換性のあたりに「デバイス割当可能」と表示されていれば**VPPデバイス割当に対応。**~~
2021年中ごろにこのサイトは滅びた。

なお、対応していない場合はアプリベンダーにお願いするとチョイチョイと開放してくれる場合があった。どうやらバージョンアップを行わなくても設定変更でできる様子。

一斉に調べたい場合は[iTunes StoreのSearch APIを叩け](https://qiita.com/kurikazu/items/30be55103cf8b4744101)ば「isVppDeviceBasedLicensingEnabled」の値に[結果が出る](https://apps.apple.com/lookup?country=jp&id=382028327)。国指定を忘れずに。
ついでに、アプリ識別子も「bundleId」として出るので、上記「アプリのホワイトリスト/ブラックリスト」で指定したり、MDMのアプリ配信設定でモノによっては識別子を求められるがコレで出てくる。
複数調べるときは上記ページの方法でキーワード検索するか、[IDをカンマ区切りで複数指定](https://apps.apple.com/lookup?country=jp&id=382028327,640437525)。
キーワード検索は[ちょっとURLが違う](https://apps.apple.com/search?term=Qiita&country=jp&media=software&limit=25)。
[ベンダIDで検索](https://apps.apple.com/lookup?id=284417353&country=jp&entity=software&limit=200)するときは1つ目の結果は無視していい。
[20回/分まで。](https://affiliate.itunes.apple.com/resources/documentation/itunes_search_api_jp/)

誰かさくっと[アプリ情報をCSVで取得できる仕組み](https://apps.garupon.com/)を見栄え良く便利に使いやすい形で作ってはくれまいか。単一HTMLでローカルに置いても動くようなの。

## MDMについての個人的メモ

MDMでできることは[MDMコマンド](https://support.apple.com/ja-jp/guide/mdm/iorb0f639322/web)によるデバイス操作と[MDMクエリ](https://support.apple.com/ja-jp/guide/mdm/mdm4f3ee8847/web)によるデバイス情報の取得
すべてのMDMがすべてのコマンド・クエリを使える訳ではないことと、使えたとしても実装方式によって理想的な使い方をさせてくれないMDMが居る

### MDM選定

MDMは国産、海外産いろいろある。費用もピンキリ。
その中で、事前に把握が必要と考える点を挙げてみる。

#### デバイス登録の方法

MDMによってデバイスをMDMに登録する方法が異なる。

- ブラウザ経由で指定のサイトからMDM登録プロファイルをインストールする。
- App StoreからMDMエージェントアプリを入手し、そのアプリ経由でMDM登録プロファイルをインストールする。
- Apple Configurator 2を用いてMDM登録プロファイルをインストールする。
- Apple Configurator 2を用いてMDM登録処理設定を含める。（なんちゃってDEP）

多くのMDMがiOSデバイスから登録用のURLにアクセスして、MDMプロファイルをインストールする方式となっている気がする。

しかし、

- 登録するデバイス毎にURLが違う
  - 都度管理画面を確認しなければならない。ものよっては管理画面で事前登録しておかなければならない。
- URLがやたらと長い
  - 覚えられない。上の個別URLと組み合わさると割と地獄を見る。
- いちいち認証情報を入力しないといけない。
  - MDM管理画面でユーザー情報を登録しておき、それの割り当てを管理画面でなくデバイスだけでしかできないものだと面倒くさい。
- 登録するために、まずApp Storeからアプリを入れなければならない
  - Apple IDを管理したくないからVPPデバイスベースを選んでもMDMがコレじゃ本末転倒

場合がある。

#### 管理画面の使いやすさ

ほとんどのMDMはWebブラウザで管理画面を開く。稀にWindowsアプリの形態をとっているものもある。
ブラウザでアクセスする場合でも、IEにしか対応していないものや、IEだと表示がバグるものもある。使う環境の下調べは必要。

画面の構成もMDMによって大きく異なる。
ユーザー管理、デバイスのグループ分け、マニュアルの豊富さも大きく異なるので注意が必要。

#### プロファイルの作成機能

デバイスに対する設定を作る際、管理画面上で設定を作れるものと、別途構成プロファイルを作成してそれをアップロードしなければならないものがある。
とくに、iOSのバージョンが上がった際、新たな設定項目にどれだけ早く対応できるかは、MDMメーカーの腕の見せ所かもしれない。
ひどいMDMになると、iOS6ぐらいの時代のまま時が止まっている挙句、構成プロファイルのアップロード機能もなく設定ができなくて詰む。
アップロード機能があっても、構成プロファイルを作る環境がなければ詰む。最悪手書きできるけど辛くて詰む。

#### アプリ管理機能

MAMともいう。だいたいのMDMに実装されている。
App Storeを閉じていても管理者が定めたアプリであればインストール可能とする機能が挙げられる。

##### MAMの注意事項

- 実はApp Storeへのリンクを作るだけの機能だったりする
  - App Store禁止と競合して詰む
- App配信のための仕組み（とりあえず「Appポータル」という）が通常のWebクリップで配信される
  - Safari禁止と競合して詰む
- AppポータルがMDMクライアントアプリの一部または専用アプリ
  - VPP非対応だと、インストールできずに詰む。
  - アプリの自動インストール機能がないと、やっぱりインストールできなくて詰む。

アプリ配信機能で重要そうなものが実装されているか注意しておく。

- Managed Appとして配信できるか
- VPP（デバイスベース）に対応しているか
- アプリの自動アップデートができるか
- ユーザー向けのインストール画面（ポータル）が用意されているか

が大きなポイントかもしれない。

#### 一括操作機能・自動適用機能

全台または特定のグループに対して一括して操作を行えるか。
せっかくの遠隔管理でも、一台ごとに操作をしなければならないようなものだと、設定のたびに管理者が死ぬ。

プロファイル/アプリ配信設定の追加・変更に伴って、すでに管理されているデバイスに自動で処理が走ったり、設定を作りこんだあとにMDMへ登録されたデバイスに対して自動的に適用処理が行われるものであれば、作業がだいぶ楽になるかもしれない。

また、グループごとに設定を変えている場合で、デバイスの所属するグループを変更すると全部きちんと再設定されれば最高かもしれない。

あまりポリシーをコロコロ変えることは、適用し損ねたりするのであまり信頼しない方がいいかもしれない。
とくに時間や場所でポリシーを変える機能は過信しちゃいけない。

#### MDM用アプリ（MDMエージェント）

iOSデバイスをMDMの管理下にして遠隔制御することについて、MDM用アプリを必ずしも入れておく必要はない。
厳密にはMDM用プロファイルさえ入ってしまえば遠隔管理はできる。
ただし以下の機能を使う場合は、MDM用アプリの機能を使うことになるので必要となる。

- 管理紛失モード以外での位置情報取得
- 脱獄（Jailbreak）検知

ただし、MDMによっては

- DEPを使わないMDM加入をするときに必須
- 専用アプリストアを使うときに必須
- なんか標準設定で配信設定がされている。しかも解除できない。

ようなオチがあったりする。また、メッセージ一斉配信機能とかオマケがついているものもある。ケースバイケース。

とくに、DEPを利用せずにMDMへ加入する場合にMDMアプリが必須とされている場合は、そのアプリを入れるためだけにApple IDを取得したりサインインしたりと手間がかかるので避けるべき。

#### サポート品質

こればっかりはある程度の期間使ってみないとわからない。こわい。
せめて、運用の中で想定される事項がマニュアルで提供されているかは確認しておこう。

#### Managed App Configuration

アプリに対して設定や制限を行う機能。iOS7から実装はされている。
しかし、これの情報を公開しているアプリベンダーが極めて少ない。対応MDMはそこそこ。
対応かつ公開されていれば、アプリの自動インストールと併せて設定を遠隔で行ってしまえる。
たとえば、某ストレージアプリの法人版だと、アカウントの制限（業務用以外のアカウントでのサインインを禁止）とかできるそうな。
とあるメッセージアプリだとMDMから配信して、この機能で設定値を入れておかないとログインできない（＝社用端末以外での利用を禁止）ようにすることができる。

### 適当すぎるまとめ

ある程度やりたいことが定まったら評価環境を使って試してみるのは必須かもしれない。
よくわからなかったら、一番手軽な相談先は携帯キャリアかもしれない。
どこのキャリアもいくつかのMDMを取り扱っているのでノウハウはあるだろうし、いきなりMDMベンダー・メーカー・代理店に声をかけると薔薇色の説明だけされて押し切られて比較検討する余裕がなくなるかもしれない。

あと、運用管理については、情シスや総務あたりが担当すると考えられるが、少なくとも必ず一人はMDMの機能を把握し、操作を行える担当者を育てておかないと詰む。一人に押し付けてもその人がいなくなると詰む。
社内で運用やノウハウの蓄積ができないようであれば、運用管理はどこかに委託した方が幸せになれるかもしれない。

とくに落とした無くしたとか連絡を受けて、位置を調べ遠隔ロックまたは遠隔消去するような運用は、土日深夜関係なく襲い掛かってくる。こわい。担当者が過労死する。（ユーザーが自分で自分のデバイスをロック・ワイプできるものもあるけど、国産品では少ない感じ）

## Apple Business Manager（と少しだけApple Dployment Program）について

これらは、DEPとVPPを管理するためのポータルサイトである。無料。
（ただしDUNS番号がない場合はそれの発行費用がかかる。￥3,000ほど。）
**これ単体ですべての管理をできるわけではなく、利用には対応したMDMが必要**

持っている機能は主に以下の3つ。

- ユーザー管理
  - アカウントマネージャー
  - Managed Apple IDの発行・失効やパスワードリセット、2ファクタデバイスクリア、権限の割り当ての管理をする
- デバイス管理
  - デバイスマネージャー
  - DEPデバイスのMDMへの割り当て、または所有解除の管理する
- コンテンツ管理
  - コンテンツマネージャー
  - VPPのアプリライセンスの購入、割当先（MDM）の管理をする

ざっくりと、どのMDMにデバイスとアプリライセンスを割り当てるかの管理をする。
あとはMDMからデバイスにポリシーの割り当てや、アプリライセンスの割り当てを行う。

### Apple Deployment ProgramからApple Business Managerへ

2018/06/21に[Apple Business Manager](https://business.apple.com/)（以下、ABM）が提供開始された。これは既存の[Apple Deployment Program](https://deploy.apple.com/)の後継となるもので、最終的にはたぶん幸せになれそうな仕様。
ちなみに、Apple Deployment Programの申し込みはできなくなっているようで、今はApple Business Managerの申し込み画面に飛ばされる。

機能面では管理機能が大きく変わることと、とくに[VPPが変わる](https://support.apple.com/ja-jp/HT208257)。

[Apple Business Manager にアップグレードする](https://support.apple.com/ja-jp/HT208817)
[Apple Business Managerヘルプ](https://help.apple.com/businessmanager/)

ABMに対応を謳っていなくとも、DEP/VPPに対応していりゃ何とかMDMは使えそう。
管理者が柔軟に構成できるので、とくに複数のMDMを運用している所には刺さりそう。

「場所」は、物理ロケーションで作ると詰む。VPPトークンを基準に考える。ルート組織は使わない。ルート組織でトークンをMDMに割り当てると、複数トークンを払い出したときに権限割当で詰む。
なので、「MDMその1」「MDMその2」「ゴミ箱」ってな感じで作っておいた方が無難かも知れない。

#### VPPの変化

新しいVPPに切り替えると、今までApple IDとセットだったVPPトークンが上の「場所」とセットになる。
なので、その場所に対する管理者を増やしたりすげ替えすれば管理が容易になりそう。[MDMからMDMへのライセンスの移動](https://help.apple.com/businessmanager/#/apd1242b0715)もできるっぽい。
ただし、[ご利用は計画的に](https://help.apple.com/businessmanager/#/apd593d6f469)

今までの[VPP購入サイト](https://vpp.itunes.apple.com/store/jp/)も使えそうだが、[新しいサイトを使う方がいいっぽい。](https://help.apple.com/businessmanager/#/asmc21817890)
古い方を使うときは、設定で場所を変更しておかないと軽く詰む。

### 管理対象Apple ID（Managed Apple ID）

TXTレコードによるドメイン所有確認が追加された。
ドメイン管理権限持っている人を巻き込んでおかないと詰む詰む。
https://support.apple.com/ja-jp/guide/apple-business-manager-m/apdc27b9fd43/web

たぶん2019年10月頃、[ABMにAzure ADとの連携機能（Federated Authentication）が実装された。](https://support.apple.com/ja-jp/guide/apple-business-manager/apdb19317543/1/web/1)
これにより```Microsoft Azure ADのユーザ名とパスワードを管理対象Apple IDとして利用できます。```
ざっくばらんに言えば、上手く連携すれば社内アカウントがそのまま管理対象Apple IDとして利用ができるっぽい。
この連携認証を使った場合は、以下のようにApple IDでサインインしようとすると、Microsoftのサイトに転送され、そちらで認証が通ればログインするようになる。

設定した状態。Azure ADのドメインが管理対象Apple ID用のドメインとして追加される。
そのApple IDで例としてApple IDポータルへサインインしようとすると、以下のようにメッセージが表示されMicrosoftの認証へ飛ばされる。
<img src="https://drive.google.com/uc?id=1HCH3pdxorF4kRA2aIJ3gW3D34Msqn_Kb" width=320 />

併せて09月に[ABMの管理対象Apple IDの機能が拡張](https://support.apple.com/ja-jp/HT208802)された。
たぶん管理対象Apple IDでiCloudにサインインした場合、[ユーザアカウントの検索](https://support.apple.com/ja-jp/guide/apple-business-manager/apdb43b66449/web)が使えるようになり、一部Apple製アプリで連絡先や宛先、共有先を入力した際にインクリメント検索で他の管理対象Apple IDの人を検索することができるようになった。

~~但しこれを追記した2019年11月時点では、連携機能が実装されているとはいえ1アカウントずつアカウントをABM側に追加していく必要があることは変わらず、[ASMのように一括で管理対象Apple IDを作成する機能](https://support.apple.com/ja-jp/HT207029)とかが実装されないと辛い。~~

勘違いでした。ABM側への登録はマネージャーのみなので、従業員用に大量取得の手段の一つとして使えそうです。

他にも一応iCloudの連絡先と写真の利用は可能なので、一括作成できれば企業用（iOSデバイス利用者向け）Apple IDが一気に作れるようになるので、[前述のApple ID問題](https://qiita.com/garupon/items/78a2db6c3c90047a6e75#apple-id%E3%82%92%E6%B3%95%E4%BA%BA%E3%81%A7%E9%81%8B%E7%94%A8%E3%81%99%E3%82%8B%E5%95%8F%E9%A1%8C%E7%82%B9)はいくらかカバーできる。

https://support.apple.com/ja-jp/HT210737

いつの間にかSCIMにも対応したらしい。

### おまけ

「管理対象Apple ID」（Managed Apple ID）が追加されますが、[教育機関向けのそれ](https://support.apple.com/ja-jp/HT205918)とは異なり、エンドユーザー用のApple IDを大量に一括して取得・管理するものではないようで過度な期待をすると詰むかもしれない。

[ここ](https://help.apple.com/businessmanager/#/tes78b477c81)にあるように、一部のAppleサービスが利用できない。
とくに「App Store」と「iPhone(iPad）を探す」が使えないと使う意味がないと思うので、このApple IDはあくまでApple Business Managerにログインするためだけのものと割り切った方がいいかもしれない。

### まとまっていないまとめ

まずはABMを申し込むところから始まる

1. [DUNSナンバー](http://www.tsr-net.co.jp/service/product/get_a_duns_number/)を[取得](https://duns-number-jp.dnb.com/search/jpn/find_jpn.asp)する。[自社照会なら無料。未発行なら発行費用がかかる。](http://www.tsr-net.co.jp/service/product/get_a_duns_number/price.html)
2. [ABM](https://business.apple.com)の申し込みをする。上司に許可をもらって共に人柱になる。
3. 電話がかかってくる。応える。
4. 結果発表

## とりあえず重要な運用

- MDM用APNS証明書の取得・更新
  - **MDMを利用する上で必須**
  - MDMがAppleサーバを通じてデバイスに指示を送ったり、デバイスと通信するために使われる。
  - <a href="https://identity.apple.com/pushcert">Apple Push Certificates Portal</a>で管理する。
  - 有効期限は発行・更新から1年、切れないように更新する必要がある。
    - 切れたり更新ミス（renewでなくnewをやっちゃうとか）するとMDMからの管理が効かなくなる。取り返しがつかなくなり、**デバイスすべて再設定となる場合もある。**
      - 証明書のCN値を確認してやろう。
  - 取得にはApple IDが必要。これだけはABMの管理外。引継ぎを考えるとメーリングリストでApple IDを取った方が楽かもしれない。もしくはManaged Apple IDで。
- DEPトークンの取得・更新
  - DEPを利用する場合に必須
  - MDMがAppleサーバを通じて自身に割り当てられているデバイスの情報を取得するために使われる。
  - Apple Deployment ProgramかABMの管理画面で管理する。
  - 有効期限は発行・更新から1年、切れないように更新する必要があり、切れたり更新ミスするとDEP割り当て状態がMDMに反映されなくなる。
        - きちんと正しいものを再設定すれば取り返しがつく。
  - ほかのトークン類と設定のお作法がちょっと異なる。
- VPPトークンの取得・更新
  - VPPを利用する場合に必須
  - MDMがAppleサーバを通じてアプリライセンスの一覧を受け取ったり、ライセンスを割り当て・剥奪するために使われる。
  - Apple Deployment Programの場合はVPPストアの設定画面、ABMの場合は管理画面で管理する。
  - 有効期限は発行・更新から1年、切れないように更新する必要があり、切れたり更新ミスすると新たなVPPライセンスの割り当て・剥奪ができなくなる。
    - きちんと正しいものを再設定すれば取り返しがつく。
- 管理者の任命、運用体制の確立
    - これに限ったことではないが、一人管理者は避けるべき
         - まれに前述のトークンが期限切れを迎えていなくても失効することがある。Apple IDのパスワード変更とか、ABM誤操作がトリガ。落ち着いて更新処理すればだいたい何とかなる。すぐに対応できるようにするためにも複数管理者用意しとこうぜ
    - 社内でABM、MDMを含めてiOSデバイス関連の連絡先をきちんと社内周知しておく
    - ABMの管理部門がどこなのか、社内で調べたら判るようにしておこう