Пакет SDK для приложений Intune для Android — конфигурация приложений
Пакет SDK для приложений Microsoft Intune для Android позволяет включать политики защиты приложений Intune (также известные как политики ПРИЛОЖЕНИЙ или MAM) в собственное приложение Android для Java или Kotlin. Приложение, управляемое Intune, интегрировано с пакетом SDK для приложений Intune. Администраторы Intune могут легко развертывать политики защиты приложений в приложении, управляемом Intune, когда Intune активно управляет приложением.
Примечание.
Это руководство разделено на несколько отдельных этапов. Начните с просмотра этапа 1. Планирование интеграции.
Этап 6. Конфигурация приложения
Цели этапа
- Сведения о параметрах конфигурации приложений в Android.
- Решите, какие конфигурации (если таковые есть) следует добавить в приложение.
- Интегрируйте API-интерфейсы конфигурации приложений пакета SDK для приложений Intune.
- Реализуйте логику разрешения конфликтов для пользовательских конфигураций приложений.
Конфигурация приложений на Android
Конфигурации приложений, также называемые управляемыми конфигурациями или ограничениями приложений, являются параметрами, определенными приложением и разработчиком, которые можно добавить в приложение, чтобы предоставить администраторам контроль над интерфейсом приложения при использовании в управляемом параметре. Например, если приложение является браузером, вы можете добавить конфигурации, которые позволяют администраторам предварительно настраивать закладки, блокировать определенные веб-страницы или отключить режимы инкогнито. Конфигурация приложения — это совершенно необязательный, но мощный инструмент для улучшения управления приложением.
Дополнительные сведения см. в статье Политики конфигурации приложений для Microsoft Intune .
Конфигурации приложений Built-In Android
Android имеет встроенную в платформу конфигурацию приложений, называемую управляемыми конфигурациями. Эти конфигурации не зависят от пакета SDK для приложений Intune и могут быть включены в приложениях, которые не интегрируют пакет SDK для приложений Intune. Эти конфигурации применяются только в том случае, если приложение используется на устройстве, управляемом с помощью одного из режимов Google Android Enterprise. Дополнительные сведения о настройке этих режимов Android Enterprise в Microsoft Intune см. в разделе Регистрация устройств Android . Администраторы могут настроить эти политики конфигурации приложений для управляемых устройств Android Enterprise в Microsoft Intune.
Приложение может получить эти значения, настроенные администратором, с помощью Android RestrictionsManager
или пакета SDK для приложений Intune.
Дополнительные сведения см. в статье Извлечение конфигурации приложения из пакета SDK .
Делегированные области для управляемых приложений Google Play
Разработчики приложений могут использовать делегированные области для интеграции расширенных разрешений для управляемых приложений Google Play. Делегированные области предоставляют следующие возможности для управляемых приложений Google Play:
- Разрешить другим приложениям устанавливать сертификаты и управлять ими
- Разрешить приложению доступ к журналам безопасности Android
- Разрешить приложению доступ к журналам сетевых действий Android
После того как эти возможности будут интегрированы в приложение Управляемого Google Play с помощью API Google, вы можете настроить эти параметры в Intune с помощью профилей конфигурации устройств. Дополнительные сведения см. в разделе Параметры устройства Android Enterprise — приложения.
Сведения о реализации приложения см. в документации для разработчиков Android — области делегирования.
Конфигурации приложений пакета SDK для приложений Intune
Пакет SDK для приложений Intune поддерживает другой механизм доставки конфигураций приложений отдельно от управляемых конфигураций Android Enterprise. Эти конфигурации являются эксклюзивными для Microsoft Intune и применяются только к приложениям, интегрированным с пакетом SDK для приложений Intune. Однако эти конфигурации не ограничиваются устройствами с управлением Android Enterprise. Администраторы могут настроить эти политики конфигурации приложений для управляемых приложений в Microsoft Intune.
Примечание.
Конфигурацию приложения также можно настроить с помощью API Graph. Дополнительные сведения см. в документации по API Graph для целевой конфигурации MAM.
Приложение должно получить эти значения, настроенные администратором, с помощью пакета SDK для приложений Intune. Дополнительные сведения см. в статье Извлечение конфигурации приложения из пакета SDK .
Какие конфигурации следует добавить в приложение?
Это руководство не может ответить на этот вопрос. Только вы и ваша команда знаете, какие функции делают приложение более ценным при управлении.
Следующие вопросы могут помочь в обсуждениях и выявить конфигурации, которые вы можете добавить в приложение:
- Какие функции предлагает ваше приложение сегодня?
- Есть ли значение в отключении любой из этих функций во время управления?
- Есть ли ценность в изменении любой из этих функций во время управления?
- Как приложение используется в настоящее время под управлением?
- Есть ли какие-либо параметры, которые администраторы могут предварительно настроить от имени своих пользователей?
- Есть ли какие-либо действия, которые выполняют администраторы или конечные пользователи, исключительно в управляемых сценариях?
- Запрашивали ли управляемые пользователи функции, которые могут не подходить для всей вашей совокупности пользователей?
Для каждой конфигурации, которую вы решили добавить в приложение, необходимо определить три элемента:
- Ключ — эта строка однозначно идентифицирует этот параметр из других параметров. Он должен быть удобочитаемым, так как он будет настроен администраторами.
- Тип — какой тип данных является этим параметром? Является ли это строковым, логическим, целым числом, массивом и т. д.?
- Стратегия разрешения конфликтов . Как будет реагировать приложение, если администраторы настроят несколько значений для одного ключа? В приведенном выше примере браузера список закладок может объединять все значения, а параметр для отключения инкогнито может отключить, если какое-либо из конфликтующих значений имеет значение true.
Должно ли мое приложение поддерживать конфигурацию управляемых устройств или управляемых приложений?
Конфигурации, применяемые к управляемым устройствам, и конфигурации, применяемые к управляемым приложениям, не являются взаимоисключающими. При выборе типа (или и того, и другого) конфигурации следует учитывать потребности пользователей.
Область конфигурации | Конфигурация для управляемых устройств | Конфигурация для управляемых приложений |
---|---|---|
Применимость устройства | Применяется только к устройствам с управлением устройствами Android Enterprise. | Применяется ко всем устройствам, если приложение интегрирует пакет SDK для приложений Intune и установлен корпоративный портал. |
Платформа | Только Android, только для устройств со службами Google | Пакет SDK для приложений iOS поддерживает те же конфигурации. Как разработчик, вы можете поделиться этими ключами для согласованного кроссплатформенного взаимодействия. |
Применимость | Любой EMM | Монопольное использование Microsoft Intune |
Возможность обнаружения схемы | Схема становится общедоступной после отправки приложения в Play | Возможность обнаружения схемы под управлением разработчика |
Оба типа конфигурации приложений зависят от пар "ключ-значение". Microsoft Intune не проверяет содержимое этих конфигураций и просто передает в приложение значения, настроенные администратором.
API конфигурации приложений пакета SDK для приложений Intune включает значения, настроенные администратором, из обоих каналов. Если приложение поддерживает оба типа конфигурации приложений, используйте API, как описано ниже.
Получение конфигурации приложения из пакета SDK
Приложения могут получать конфигурации из обоих каналов с помощью классов MAMAppConfigManager и MAMAppConfig .
MAMAppConfigManager configManager = MAMComponents.get(MAMAppConfigManager.class);
String oid = <OID of user account>;
MAMAppConfig appConfig = configManager.getAppConfigForOID(oid);
String fooValue = appConfig.getStringForKey("foo", MAMAppConfig.StringQueryType.Any);
Если зарегистрированной учетной записи MAM нет, но ваше приложение по-прежнему хочет получить значения конфигурации Android Enterprise (которые не будут предназначены для определенной учетной записи), вы можете передать или пустую null
строку для OID.
Примечание.
Если ваше приложение использует пакет SDK для приложений Intune для получения управляемых конфигураций Android Enterprise, а корпоративный портал не установлен, эти конфигурации будут доставлены через MAMUserNotification
с пустым удостоверением.
Приложение также может запрашивать необработанные данные в виде списка наборов пар "ключ-значение" вместо запроса по определенным ключам.
List<Map<String, String>> getFullData()
Приложение также может зарегистрироваться для REFRESH_APP_CONFIG
получения уведомления, информирующего приложение о доступности новых данных конфигурации приложения.
Если ваше приложение кэширует данные конфигурации приложения, оно должно зарегистрироваться для этого уведомления и сделать недействительными все кэшированные данные в обработчике.
Дополнительные сведения см. в разделе Регистрация уведомлений из пакета SDK .
Разрешение конфликтов
Если несколько политик конфигурации приложений предназначены для одного и того же приложения и учетной записи, для одного ключа может быть доступно несколько конфликтующих значений.
Примечание.
Значение, заданное в конфигурации приложения MAM, переопределит значение с тем же ключом, заданным в конфигурации Android Enterprise.
Если администратор настраивает конфликтующие значения для одного и того же ключа, Intune не имеет способа автоматического разрешения этого конфликта и сделает все значения доступными для вашего приложения. Конфликт такого типа может произойти, если администратор предназначен для разных наборов конфигурации приложений с одним ключом для нескольких групп, содержащих одну и ту же учетную запись.
Ваше приложение может запросить все значения для заданного ключа из объекта MAMAppConfig , чтобы вы могли устранить конфликты с собственной бизнес-логикой:
List<Boolean> getAllBooleansForKey(String key)
List<Long> getAllIntegersForKey(final String key)
List<Double> getAllDoublesForKey(final String key)
List<String> getAllStringsForKey(final String key)
Кроме того, можно запросить выбор значения с помощью одной из встроенных стратегий разрешения конфликтов:
Boolean getBooleanForKey(String key, BooleanQueryType queryType)
Long getIntegerForKey(String key, NumberQueryType queryType)
Double getDoubleForKey(String key, NumberQueryType queryType)
String getStringForKey(String key, StringQueryType queryType)
Доступные встроенные стратегии разрешения конфликтов:
-
BooleanQueryType.Any
,BooleanQueryType.And
,BooleanQueryType.Or
-
NumberQueryType.Any
,NumberQueryType.Min
,NumberQueryType.Max
-
StringQueryType.Any
,StringQueryType.Min
,StringQueryType.Max
где min и max являются из списка, упорядоченного в алфавитном порядке.
Условия выхода
Intune отвечает за доставку значений политики конфигурации приложения в приложение; Затем ваше приложение отвечает за использование этих значений для изменения поведения или пользовательского интерфейса внутри приложения. Тщательное комплексное тестирование должно охватывать оба компонента.
Чтобы убедиться, что Intune правильно предоставляет политику конфигурации приложений, выполните следующие действия:
- Настройте политику конфигурации приложения, предназначенную для вашего приложения и развернутую в тестовой учетной записи.
- Если ваше приложение поддерживает конфигурацию приложений для управляемых устройств, см. статью Политики конфигурации приложений для управляемых устройств Android Enterprise.
- Если ваше приложение поддерживает конфигурацию приложений для управляемых приложений, см. статью Политики конфигурации приложений для управляемых приложений.
- Если приложение поддерживает оба типа конфигурации приложений, создайте оба типа политики для тестирования.
- Войдите в приложение с помощью тестовой учетной записи.
- Сведения об управляемых устройствах см. в разделах Политики конфигурации корпоративных приложений Android и Регистрация устройств Android.
- Для управляемых приложений:
- Установите приложение и корпоративный портал Intune.
- Войдите в приложение с помощью тестовой учетной записи.
- Перейдите по приложению, чтобы выполнить каждый путь к коду, который вызывает
MAMAppConfigManager
илиgetAppConfigForOID
getFullData
.- Ведение журнала результатов вызовов
getAppConfigForOID
— это простой способ проверить, какие параметры доставлены. Тем не менее, так как администраторы могут вводить любые данные для параметров конфигурации приложения, будьте осторожны, чтобы не регистрировать в журнале какие-либо частные данные пользователей.
- Ведение журнала результатов вызовов
- См . раздел Проверка примененной политики конфигурации приложений.
Так как конфигурации приложений зависят от конкретного приложения, только вы знаете, как проверить, как приложение должно изменять поведение или пользовательский интерфейс для каждого параметра конфигурации приложения.
При тестировании учитывайте следующее:
- Чтобы обеспечить охват всех сценариев, создайте разные политики конфигурации тестового приложения с каждым значением, поддерживаемым приложением.
- Проверка логики разрешения конфликтов приложения путем создания нескольких политик конфигурации тестового приложения с разными значениями для каждого параметра.
- Если ваше приложение зарегистрировано для
REFRESH_APP_CONFIG
получения уведомления, обновите политику конфигурации приложения во время активного использования приложения, дождитесь обновления политики и подтвердите правильность этого кода. - Если приложение поддерживает оба типа конфигурации приложений, протестируйте оба сценария, чтобы убедиться, что реализация предоставляет правильное удостоверение .
getAppConfigForOID
Дальнейшие действия
После выполнения всех описанных выше условий выхода приложение будет успешно интегрировано как с политикой конфигурации приложения.
В следующем разделе Этап 7. Функции участия в приложениях могут требоваться или не требоваться в зависимости от требуемой поддержки политики защиты приложений. Если вы не уверены, применяется ли какая-либо из этих функций к вашему приложению, вернитесь к ключевым решениям для интеграции пакета SDK.