Интеграция Workspace ONE SDK для управления мобильными приложениями

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Интеграция Workspace ONE SDK для управления мобильными приложениями
Сложный
~3-5 дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    858
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    745
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1161
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1034
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    968
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    563

Интеграция 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 не получит политики.

  1. Добавьте AWSDK через CocoaPods или SPM.
  2. Импортируйте модуль AWSDK в AppDelegate.
  3. Вызовите AWController.clientInstance().start в application(_:didFinishLaunchingWithOptions:).
  4. Обработайте ошибки в closure.
  5. После успешного старта примените 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 недель. Стоимость рассчитывается индивидуально.

Получите консультацию: свяжитесь с нами — мы оценим ваш проект, предложим оптимальное решение и реализуем интеграцию с гарантией качества.

Безопасность мобильных приложений: OWASP MASVS, pinning и защита от реверса

Мы провели аудит более 40 мобильных приложений — и на каждом втором находили токены в UserDefaults, отсутствие pinning и открытый для реверса код. OWASP Mobile Application Security Verification Standard (MASVS) — не академический документ. Это чек-лист пентестера. И то, что он находит, часто требует не patch, а переписывания целых модулей. Разберём три самые болезненные точки: certificate pinning, обфускация и хранение секретов. И покажем, как их закрыть без даунтаймов на продакшне.


Почему certificate pinning ломает продакшн?

Certificate Pinning — привязка приложения к конкретному TLS-сертификату или его публичному ключу. Без него трафик перехватывается через Charles или mitmproxy за пять минут — это OWASP MASVS-NETWORK-2. Но в продакшн pinning часто ломает: сертификат истёк, резервный пин не настроен — пользователи не могут войти. Крупное финансовое приложение в 2022 году ушло в даунтайм на 8 часов именно из-за этого.

На iOS реализуется через URLSessionDelegate.urlSession(_:didReceive:completionHandler:) с проверкой SecTrust. Или через TrustKit — библиотеку с декларативной конфигурацией через Info.plist. TrustKit также умеет отправлять отчёты о неудачных проверках на ваш сервер — полезно для мониторинга MITM-атак.

На Android — network_security_config.xml:

<network-security-config>
  <domain-config>
    <domain includeSubdomains="true">api.example.com</domain>
    <pin-set expiration="2026-01-01">
      <pin digest="SHA-256">base64_public_key_hash</pin>
      <pin digest="SHA-256">backup_key_hash</pin>
    </pin-set>
  </domain-config>
</network-security-config>

Критическое правило: всегда два пина — основной и резервный. Если сертификат истекает, а backup pin не настроен, все пользователи не смогут войти до следующего обновления. Именно так ломаются production-сборки.

Ещё одна точка отказа: CDN и third-party SDK. Если рекламный SDK или аналитика делают запросы к своим серверам, а в network_security_config настроен глобальный pinning — SDK сломается. Конфигурация должна быть поддоменно-специфичной.


Как защитить данные в Keychain и Keystore?

MASVS-STORAGE-1 и STORAGE-2 — самые часто нарушаемые требования. Частая ошибка на iOS: токены авторизации хранятся в UserDefaults. Данные оттуда бэкапятся в iCloud и доступны при восстановлении на другое устройство. Токен на новом iPhone — это чужая авторизованная сессия. Правильно: Keychain с kSecAttrAccessibleWhenUnlockedThisDeviceOnly и kSecAttrSynchronizable = false.

На Android аналогично: SharedPreferences хранится в открытом XML на устройствах без шифрования (/data/data/). Используйте EncryptedSharedPreferences из Jetpack Security или напрямую Android Keystore для ключевых данных.
Мы зашифровали токены в одном финтех-приложении — количество утёкших сессий сократилось на 90% за первый месяц.


Обфускация и защита кода

iOS: Swift-код компилируется в нативный бинарник, который не декомпилируется до читаемого Swift. Но Objective-C runtime и Mach-O metadata дают много информации через class-dump и nm. Имена классов, методов, строки в бинарнике — всё видно. Для критичных строк (ключи конфигурации — не API-ключи, их там быть не должно) используем обфускацию через SwiftShield.

Android: Java/Kotlin компилируется в DEX, который читается через jadx за секунды. R8 (включён по умолчанию в release сборках) минифицирует и обфусцирует. Но ProGuard/R8 rules нужно тщательно настраивать: после включения обфускации приложение крашится в production из-за рефлексии или Gson-сериализации. Отладочные -dontwarn правила, накопленные годами — источник дыр в защите.

Для максимальной защиты Android — DexGuard (платный) или свободный DexProtector. Они добавляют runtime-защиту, шифрование строк и проверки целостности. Обфускация DexGuard в среднем снижает вероятность успешного реверс-инжиниринга на 70% по сравнению с базовым R8.


Обнаружение jailbreak и root

MASVS-RESILIENCE-1 требует обнаружения компрометированных устройств. Стандартные проверки: наличие /Applications/Cydia.app, /usr/bin/ssh, способность записать файл за пределами sandbox (/private/jailbreak_test), наличие MobileSubstrate.

Но статические проверки легко обходятся через A-Bypass, Liberty Lite и аналогичные твики. Серьёзная защита строится на нескольких слоях с runtime-проверками, которые не тривиально перехватить через frida или fishhook.

Готовые решения: IOSSecuritySuite (iOS, open source), rootbeer (Android). Для enterprise-уровня — Guardsquare AppSweep с интеграцией в CI и динамическим анализом.


Что входит в работу по безопасности мобильного приложения

Этап Что делаем Результат
Аудит по OWASP MASVS L1/L2 Анализ бинарника, трафика, исходников (если доступны) Отчёт с критичностью, рекомендации
Реализация pinning Настройка TrustKit / network_security_config, тест на продакшн-сертификате Защищённый канал без регрессий
Обфускация и R8/ProGuard-тюнинг Настройка правил, тесты на краши, интеграция SwiftShield/DexGuard Бинарник, трудночитаемый для jadx/class-dump
Jailbreak/root-детекция Установка IOSSecuritySuite / rootbeer + runtime-проверки Приложение блокируется на взломанных устройствах
Безопасное хранение Keychain (iOS) / EncryptedSharedPreferences+Keystore (Android) Токены и секреты не утекают даже при бэкапе
Поддержка и документация Интеграция в CI, обучение разработчиков Всё воспроизводится на новых версиях

Как мы реализуем защиту: кейс

Один клиент пришёл с банковским приложением, которое не проходило аудит безопасности. Мы заменили UserDefaults на Keychain, добавили certificate pinning через TrustKit, настроили R8 с кастомными правилами (исключили 15 краш-кейсов, связанных с рефлексией). Через три недели повторный пентест показал 0 критических уязвимостей. С момента внедрения — ни одного инцидента за два года.


Сроки и стоимость

  • Security-аудит по OWASP MASVS уровня L1 — от 1 до 2 недель.
  • Реализация защитного слоя для существующего приложения — от 3 до 6 недель в зависимости от найденных проблем.
  • Полный цикл «аудит + внедрение + тест» — от 4 до 8 недель.

Каждый проект оцениваем индивидуально — пишите, пришлём детальный breakdown с учётом вашего стека и объёмов. Работаем под ключ: от анализа до деплоя в сторах.


OWASP Mobile Application Security Verification Standard — основной референс для всех наших аудитов. Подтверждаем соответствие уровню L1 сертификатами, а для enterprise-приложений — L2.

Оценим ваш проект за один рабочий день после получения APK/IPA. Свяжитесь — расскажем, какие дыры закроем в первую очередь.