Настройка Mobile Device Management (MDM) для корпоративного мобільного додатка
MDM—це не «поставити антивірус на телефон». Це протокол управління пристроєм з сервера, який дозволяє принудово встановлювати додатки, застосовувати політики безпеки, видаляти дані та контролювати конфігурацію без участі користувача. Для корпоративного мобільного додатка MDM-інтеграція—це різниця між «сотрудник може видалити додаток» та «додаток завжди присутній на пристроях парку».
Apple MDM Protocol та Managed Devices
Apple MDM побудований на push-pull протоколі: MDM-сервер відправляє push-сповіщення через APNs (MDM topic), пристрій «тягне» команду з сервера, виконує, відправляє результат. Усі команди та відповіді—XML plist по HTTPS.
Щоб пристрій став управляємим:
- Supervised mode через Apple Configurator 2 або ABM (Apple Business Manager)—максимальний контроль. Лише Supervised-пристрої підтримують блокування видалення додатків, Silent Install без згоди користувача, Single App Mode.
- User Enrollment (iOS 13+)—пристрій належить сотруднику (BYOD), MDM управляє лише Managed Apple ID зоною. Додатки можна встановлювати принудово у керовану область, особисті дані недоступні.
Для корпоративного додатка на managed-пристрої ключові MDM-команди:
| Команда | Опис |
|---|---|
InstallApplication |
Silent install з App Store VPP або enterprise IPA |
RemoveApplication |
Видалення без згоди |
LockDevice |
Негайна блокування екрану |
EraseDevice |
Factory reset—при крадіжці/звільненні |
Restrictions |
Запрет AirDrop, iCloud backup, screenshot |
Managed App Configuration—механізм передачі конфігурації в додаток через MDM без хардкода. Додаток читає словник з UserDefaults з суфіксом .managed:
let managedConfig = UserDefaults.standard.dictionary(forKey: "com.apple.configuration.managed")
let backendURL = managedConfig?["BackendURL"] as? String
let tenantID = managedConfig?["TenantID"] as? String
MDM-сервер передає AppConfiguration plist при установці або через окрему команду InstallApplication з ManifestURL. Сотрудник не бачить і не змінює ці параметри.
Android Enterprise: Work Profile та Fully Managed
Android Enterprise—аналог Apple MDM із більш гнучкою моделлю розгортання.
Fully Managed Device (COBO—Corporate Owned Business Only). Пристрій налаштовується через DPC (Device Policy Controller) при першому включенні: QR-сканування або NFC bump. DevicePolicyManager дає повний контроль: установка додатків, мережні політики, принудовий VPN, блокування hardware-кнопок.
Work Profile (COPE/BYOD). Керований профіль створюється поряд з особистим простором. Корпоративні додатки—у Work Profile з окремим лаунчером та піктограмою-портфелем. IT управляє лише Work Profile, особисті дані недоступні.
Ключовий клас для Fully Managed—DevicePolicyManager:
val dpm = getSystemService(DEVICE_POLICY_SERVICE) as DevicePolicyManager
val adminComponent = ComponentName(this, DeviceAdminReceiver::class.java)
// Принудова установка пакетів
dpm.setAlwaysOnVpnPackage(adminComponent, VPN_PACKAGE, true, null)
// Блокування видалення
dpm.setUninstallBlocked(adminComponent, TARGET_PACKAGE, true)
// Managed Config для додатка
val bundle = Bundle().apply {
putString("backend_url", "https://corp.example.com")
putString("tenant_id", "CORP-001")
}
dpm.setApplicationRestrictions(adminComponent, TARGET_PACKAGE, bundle)
Вибір MDM-сервера
| Рішення | Платформи | Особливості |
|---|---|---|
| Microsoft Intune | iOS, Android, Windows | Azure AD інтеграція, Conditional Access |
| Jamf Pro | iOS, macOS | Найкращий для Apple-флота |
| VMware Workspace ONE | iOS, Android | MDM + MAM + VPN в одному |
| MobileIron (Ivanti) | iOS, Android | Mature enterprise, on-premise можливий |
| Open-source: MicroMDM | iOS only | Self-hosted, немає MDM UI |
Для гомогенного Apple-флота—Jamf. Для Microsoft-орієнтованої інфраструктури—Intune. Для змішаного парку з on-premise вимогою—MobileIron/Ivanti або Workspace ONE.
Інтеграція додатка з MDM: що потрібно розробнику
MDM управляє пристроєм, але додаток повинен «знати» про свій managed-статус:
- Перевіряти Managed App Configuration при запуску та при
UIApplicationWillEnterForeground. - Реагувати на MDM Remote Wipe: очищувати Keychain, базу даних, кеш.
- Підтримувати
openURLсхему для enrollment deeplink. - Якщо використовується MAM SDK (Intune App SDK, Workspace ONE SDK)—інтегрувати для enforcement політик на рівні додатка, не лише пристрою.
Етапи настройки
Інвентаризація пристроїв → вибір MDM-платформи → enrollment стратегія (ABM, QR, manual) → створення профілів та політик → VPP/Managed Google Play для додатків → Managed App Configuration для корпоративного додатка → pilot group → rollout → моніторинг compliance.
Терміни: базова настройка MDM для готового парку пристроїв—2–4 тижні. Повний rollout з інтеграцією додатка, enrollment workflow та обучанням IT-відділу—6–10 тижнів. Вартість розраховується індивідуально.







