Реализация Work Profile: от DPC до managed configurations
Типичная ситуация: ИТ-отдел хочет установить корпоративное приложение на личные смартфоны сотрудников без полного контроля над устройством. Без Work Profile приходится либо отдавать весь девайс под MDM, либо мириться с отсутствием изоляции. Мы решаем эту задачу настройкой Android Enterprise Work Profile с нуля — это официальное решение Google для BYOD, поддерживаемое с Android 5.0 (API 21). Согласно документации Android Enterprise Overview, Work Profile обеспечивает изоляцию данных на уровне ядра, что критично для соответствия политикам безопасности. Бюджет внедрения рассчитывается индивидуально, при этом экономия на лицензиях MDM может достигать 70%.
Типичные ошибки при интеграции Work Profile
Самая распространённая ошибка — регистрация приложения как Device Owner вместо Profile Owner. Device Owner получает полномочия блокировать Bluetooth, менять обои и другие личные функции, что вызывает негатив. Для BYOD нужен именно ProfileOwner. Проверьте флаг isProfileOwnerApp() using the Device Policy Controller (DPC). Другая частая проблема — cross-profile intent. Если бизнес-логика требует передавать данные из рабочего профиля в личный (например, открыть PDF), нужно явно разрешить intent через DevicePolicyManager.addCrossProfileIntentFilter(). Без этого intent молча глотается — пользователь видит пустой экран, а в Logcat тишина. На одном проекте с Intune мы потратили день на отладку подобного сценария. Также многие команды игнорируют RestrictionsManager для managed configurations, передавая настройки через push-уведомления. Это антипаттерн: EMM-система (Intune, Workspace ONE) должна деплоить конфиг через APP_RESTRICTIONS_CHANGED, а приложение — читать из Bundle. ИТ-администратор может менять сервер, таймауты или фичи без нового релиза.
Как мы реализуем Work Profile на практике?
Процесс начинается с аудита: какой MDM у клиента, какие версии Android в парке (от 5.0 до 14+), BYOD или COBO. Для BYOD через QR-код используем код регистрации Profile Owner:
val dpm = getSystemService(DevicePolicyManager::class.java) val adminComponent = ComponentName(this, DeviceAdminReceiver::class.java) if (dpm.isProfileOwnerApp(packageName)) { dpm.setProfileName(adminComponent, "Корпоративный профиль") dpm.setCrossProfileCalendarPackages(adminComponent, setOf(calendarPackage)) } Пример настройки managed configurations:
val restrictionsManager = getSystemService(RestrictionsManager::class.java) val appRestrictions = restrictionsManager.applicationRestrictions val serverUrl = appRestrictions.getString("server_url") ?: BuildConfig.DEFAULT_SERVER val ssoEnabled = appRestrictions.getBoolean("sso_enabled", false) Почему сертификаты и VPN требуют особого подхода?
Установка клиентских сертификатов через KeyChain.createInstallIntent() работает только в личном профиле. В рабочем — только через DevicePolicyManager.installCaCert() и installKeyPair(). Путаница здесь стоит нескольких дней отладки. На одном проекте мы потеряли два дня, пока не поняли, что сертификат нужно устанавливать через DPC. Для VPN в рамках рабочего профиля используйте VpnService с флагом setAlwaysOnVpnPackage() через DPC. Трафик корпоративного профиля уходит через корпоративный VPN, личный — через обычный интернет, пользователь этого не чувствует.
Как настроить managed configurations?
Managed configurations позволяют ИТ-администратору удалённо задавать параметры приложения (сервер, таймауты, SSO). Для этого создаётся XML-схема по стандарту AppConfig Community, а приложение считывает настройки через RestrictionsManager. Это надёжнее push-уведомлений и не требует нового релиза при изменении параметров. Типовой процесс: разрабатываете схему, публикуете в EMM, при подписке на политику конфигурация автоматически применяется.
Пошаговая настройка рабочего профиля
- Выбор метода провизионирования. Для BYOD используйте QR-код или NFC; для корпоративных — Zero-touch. Убедитесь, что DPC поддерживает Profile Owner.
- Регистрация DPC как ProfileOwner. В манифесте укажите
android:profileOwner=true. После установки приложение запросит права администратора. - Настройка managed configurations. Создайте XML-схему по стандарту AppConfig Community. Внедрите
RestrictionsManager. - Разрешение cross-profile intent. Добавьте фильтры для необходимых intent.
- Установка сертификатов и VPN. Используйте
DevicePolicyManager.installCaCert()иsetAlwaysOnVpnPackage()для рабочего профиля. - Тестирование. Проверьте на реальных устройствах с TestDPC и разными API (21+).
Сравнение методов провизионирования
| Метод | Подходит для | Требования | Время развертывания |
|---|---|---|---|
| QR-код | BYOD, мелкий парк | Android 7+, камера | 2-3 минуты на устройство |
| NFC | BYOD, средний парк | Android 5.0+, метка | 30 секунд на устройство |
| Zero-touch | COBO, крупный парк | Android 8.0+, консоль EMM | Автоматически при включении |
Сравнение Profile Owner и Device Owner
| Характеристика | Profile Owner (PO) | Device Owner (DO) |
|---|---|---|
| Область управления | Только рабочий профиль | Всё устройство |
| Подходит для BYOD | Да | Нет (ограничивает личные функции) |
| Уровень изоляции | Полная изоляция данных | Полный контроль |
| Требует лицензию EMM | Да | Да |
Что входит в настройку Work Profile?
- Аудит текущей EMM-платформы и парка устройств (50–5000 шт.)
- Разработка или доработка DPC под Profile Owner
- Создание XML-схемы managed configurations по стандарту AppConfig Community
- Интеграционное тестирование с TestDPC и реальными устройствами (Android 7.0–14.0)
- Документация для ИТ-отдела по деплою политик через EMM
Наши результаты
Более 5 лет опыта в MDM-интеграциях. 20+ успешных проектов для компаний с парком от 50 до 5000 устройств. Внедрение Work Profile сокращает время на развёртывание корпоративных приложений на 70% — в 2 раза быстрее, чем при полном MDM-контроле. Полностью исключаются утечки данных через личные приложения. Гарантируем изоляцию корпоративных данных и совместимость с любым EMM.
Сроки и стоимость
Типовой проект (существующее приложение + Work Profile без кастомного DPC) — от 2 рабочих дней. Если требуется собственный DPC с нуля — от 1 недели. Стоимость рассчитывается индивидуально после аудита. Оценим ваш проект бесплатно. Свяжитесь с нами для консультации — поможем выбрать оптимальное решение для вашей инфраструктуры. Закажите аудит прямо сейчас — получите развернутый план внедрения.







