Интеграция 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 недель. Стоимость рассчитывается индивидуально.
Получите консультацию: свяжитесь с нами — мы оценим ваш проект, предложим оптимальное решение и реализуем интеграцию с гарантией качества.







