Інтеграція Workspace ONE SDK у мобільний додаток
У вас тисяча Android-пристроїв Zebra на складі та сотня iPad у менеджерів. Кожен додаток потребує індивідуальних налаштувань, а політики безпеки — централізованого контролю. VMware Workspace ONE (колишній AirWatch) — EMM-платформа, що об'єднує MDM, MAM, Identity та Zero Trust Access. На відміну від Intune, Workspace ONE пропонує глибші можливості MDM для Android-пристроїв та нативну підтримку Rugged-девайсів. Наша команда має 10+ років досвіду в мобільній розробці та успішно інтегрувала EMM-рішення для 50+ корпоративних клієнтів. Ми гарантуємо, що ваш додаток працюватиме під управлінням цієї платформи злагоджено та безпечно.
Типові проблеми при інтеграції MDM: enrollment зривається через неправильні provisioning profile, політики не застосовуються без коректного налаштування APNs або FCM, а DLP-правила блокують легітимні сценарії. Ми вирішуємо ці завдання на рівні SDK, позбавляючи вас довгих узгоджень з адміністраторами WS1.
Як працює Workspace ONE SDK?
Workspace ONE SDK — аналог Intune MAM SDK, але зі своїми API та lifecycle. Компоненти SDK:
- AWSDKCore — базовий SDK, обробка політик, аутентифікація через Workspace ONE Intelligent Hub.
- AWContentLocker — захищене файлове сховище.
- AWNetworkKit — managed networking через Workspace ONE Tunnel (per-app VPN).
- AWDataLoss — перехоплення clipboard, file sharing, screenshot.
На iOS SDK встановлюється через CocoaPods або SPM:
pod 'AWSDK', '~> 25.0'
На Android — через Maven:
implementation 'com.vmware.ws1.android:airwatchsdk:25.0.0'
Згідно з документацією VMware Workspace ONE SDK, ініціалізація AWController має бути виконана в методі application:didFinishLaunchingWithOptions:.
Ініціалізація та enrollment на iOS: покрокова інструкція
Workspace ONE SDK потребує наявності Workspace ONE Intelligent Hub на пристрої. Hub виступає брокером між SDK вашого додатку та WS1 сервером. Без Hub SDK не отримає політики.
- Додайте AWSDK через CocoaPods або SPM.
- Імпортуйте модуль AWSDK у AppDelegate.
- Викличте
AWController.clientInstance().startвapplication(_:didFinishLaunchingWithOptions:). - Обробте помилки в closure.
- Після успішного старту застосуйте managed configuration з SDK Profile.
Приклад коду:
import AWSDK
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
AWController.clientInstance().start { error in
if let error = error {
// enrollment failed
print("WS1 SDK error: \(error.localizedDescription)")
} else {
// Політики застосовані, додаток працює в managed-режимі
self.applyManagedConfiguration()
}
}
return true
}
private func applyManagedConfiguration() {
let profile = AWController.clientInstance().sdkProfile()
let serverURL = profile?.customPayloadProfile?.payload?["BackendURL"] as? String
AppConfig.shared.backendURL = serverURL ?? AppConfig.defaultBackendURL
}
}
AWController.clientInstance().start — асинхронний виклик. Додаток показує splash screen поки SDK ініціалізується та отримує політики. Якщо пристрій не зареєстровано в WS1, Hub запускає enrollment flow.
Custom Payload: передача конфігурації в додаток
Custom Payload передає конфігурацію в додаток через SDK Profile. Це аналог Managed App Configuration в Apple MDM, але керується через WS1 Console. Приклад читання на Swift:
let sdkProfile = AWController.clientInstance().sdkProfile()
guard let customPayload = sdkProfile?.customPayloadProfile?.payload else { return }
let backendURL = customPayload["BackendURL"] as? String
let featureFlags = customPayload["FeatureFlags"] as? [String: Bool]
let sessionTimeout = customPayload["SessionTimeoutMinutes"] as? Int ?? 30
У WS1 Console Custom Payload задається в XML або JSON у розділі Apps → SDK Profiles → Custom Settings. Зміни застосовуються при наступному checkin (зазвичай кожні 4 години).
Параметри Custom Payload можна описати в таблиці:
| Key | Type | Description |
|---|---|---|
| BackendURL | String | URL корпоративного бекенду |
| FeatureFlags | Dict | Включення/вимкнення функцій |
| SessionTimeoutMinutes | Integer | Тайм-аут сесії в хвилинах |
Per-app Tunnel: керований мережевий трафік
Per-app VPN через Workspace ONE Tunnel — ще один захищений канал. Трафік конкретного додатку тунелюється через корпоративний шлюз без необхідності глобального VPN-профілю.
Для включення Tunnel у додатку — додати AWNetworkKit та налаштувати URL-сесії:
import AWNetwork
// Замінюємо стандартний URLSession на Tunnel-aware
let tunnelConfig = URLSessionConfiguration.default
AWNetworkKit.shared.configureTunnel(for: tunnelConfig)
let session = URLSession(configuration: tunnelConfig)
Tunnel працює прозоро — додаток робить звичайні URLSession-запити, SDK перенаправляє їх через VPN. Не потрібно змінювати URLRequest або додавати заголовки.
Чому Custom Payload важливий для конфігурації?
Без Custom Payload кожен додаток довелося б перекомпільовувати при зміні URL бекенду або флагів функцій. Custom Payload дозволяє змінювати налаштування на льоту через консоль WS1 — адміністратор оновлює параметри, і після наступного checkin додаток їх застосовує. Це скорочує час rollout нових політик з днів до годин.
Як Workspace ONE SDK обробляє політики DLP?
SDK надає готові інструменти для захисту даних. Наприклад, при забороні копіювання в інші додатки ми очищаємо буфер обміну при кожному foreground, а при виявленні screen capture показуємо порожній екран. Політики задаються в консолі та застосовуються автоматично, що знижує операційні витрати.
Чому варто обрати Workspace ONE для управління мобільними додатками?
Порівняння з Microsoft Intune:
| Workspace ONE | Microsoft Intune | |
|---|---|---|
| Android MDM | Відмінна підтримка Rugged | Стандартна Android Enterprise |
| iOS MDM | Повний набір MDM | Повний набір MDM |
| MAM без MDM | Workspace ONE SDK | Intune MAM SDK |
| Identity | VMware Identity Manager | Azure AD / Entra |
| Краще підходить | Mixed OS fleet, Rugged devices | Microsoft 365 організації |
| On-premise | Workspace ONE On-Premises | Тільки хмара |
Для організацій з парком Android-пристроїв Zebra або Honeywell — Workspace ONE кращий через нативну підтримку OEMConfig та Staging-профілів для Rugged.
Обсяг робіт з інтеграції
Ми пропонуємо комплексну інтеграцію Workspace ONE SDK у ваш мобільний додаток під ключ. У роботу входить:
- Аудит поточної архітектури та підготовка SDK Profile з Custom Payload.
- Додавання AWSDK у проект (iOS/Android) та налаштування enrollment lifecycle.
- Реалізація Custom Payload mapping та обробка DLP-політик.
- Налаштування per-app Tunnel через AWNetworkKit (якщо потрібно).
- Тестування на managed-пристроях та rollout у корпоративне середовище.
- Передача документації та навчання команди.
Етапи інтеграції
Налаштування WS1 UEM Console → створення SDK Profile з Custom Payload → додавання AWSDK у додаток → реалізація enrollment lifecycle → Custom Payload mapping → налаштування Tunnel (якщо потрібен) → DLP політики → тестування на managed-пристроях → rollout.
Строки: базова інтеграція SDK з Custom Payload — 3–4 тижні. Повний проект з Tunnel, DLP, політиками та тестуванням — 6–10 тижнів. Вартість розраховується індивідуально.
Отримайте консультацію: зв'яжіться з нами — ми оцінимо ваш проект, запропонуємо оптимальне рішення та реалізуємо інтеграцію з гарантією якості.







