Пакет SDK для приложений Intune для Android — конфигурация приложений

Пакет SDK для приложений Microsoft Intune для Android позволяет включать политики защиты приложений Intune (также известные как политики MAM) в родное приложение Java/Kotlin для Android. Приложение, управляемое Intune, интегрировано с пакетом SDK для приложений Intune. Администраторы Intune могут легко развернуть политики защиты приложений в вашем приложении, управляемом Intune, когда Intune активно управляет приложением.

Примечание.

Это руководство разделено на несколько отдельных этапов. Начните с рассмотрения Этап 1: Планирование интеграции.

Этап 6. Конфигурация приложений

Цели этапа

  • Узнайте о параметрах конфигурации приложений в Android.
  • Решите, какие конфигурации (при наличии) следует добавить вашему приложению.
  • Интеграция API конфигурации приложений SDK приложения Intune.
  • Реализуйте логику разрешения конфликтов для пользовательских конфигураций приложений.

Конфигурация приложений на Android

Конфигурации приложений, также называемые управляемыми конфигурациями или ограничениями приложений, — это параметры, зависящие от приложения и определяемые разработчиком, которые можно добавить в приложение, чтобы предоставить администраторам дополнительный контроль над работой приложения при использовании в управляемой среде. Например, если вашим приложением является браузер, вы можете добавить конфигурации, которые позволяют администраторам предварительно устанавливать закладки, блокировать определенные веб-страницы или отключать режимы инкогнито. Конфигурация приложений — это совершенно необязательное, но мощное средство для улучшения возможностей управления приложением.

Дополнительные сведения см. в разделе "Политики конфигурации приложений для Microsoft Intune".

Конфигурации Built-In приложений Android

В Android в платформу встроена конфигурация приложений, называемая управляемой конфигурацией. Эти конфигурации не зависят от пакета SDK для приложений Intune и могут быть включены в приложениях, в которые не интегрирован пакет SDK для приложений Intune. Эти конфигурации применяются только при использовании приложения на устройстве, управляемом с помощью одного из режимов Android Enterprise от Google. Подробные сведения о настройке этих режимов Android Enterprise в Microsoft Intune см. в разделе "Регистрация устройств Android". Администраторы могут настраивать эти политики конфигурации приложений для управляемых устройств Android Enterprise в Microsoft Intune.

Приложение может получать эти настроенные администратором RestrictionsManager значения как через Android, так и через пакет 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 Targeted Config.

Ваше приложение должно получить эти значения, настроенные администратором, с помощью пакета SDK приложения Intune. Дополнительные сведения см. в разделе "Получение конфигурации приложения из пакета SDK ".

Какие конфигурации следует добавить в приложение?

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

Следующие вопросы могут помочь в обсуждениях и выявить конфигурации, которые вы, возможно, захотите добавить в свое приложение:

  • Какие функции предлагает ваше приложение сейчас?
    • Есть ли смысл отключать какие-либо из этих функций во время управления?
    • Есть ли смысл изменять какие-либо из этих функций во время управления?
  • Как сейчас вы используете приложение под управлением?
    • Существуют ли какие-либо параметры, которые администраторы могли бы предварительно настроить от имени своих пользователей?
    • Существуют ли действия, которые администраторы или конечные пользователи выполняют исключительно в рамках управляемых сценариев?
    • Запрашивали ли управляемые пользователи функции, которые могут не подходить для всей группы пользователей?

Для каждой конфигурации, которую вы решите добавить в свое приложение, необходимо определить три элемента:

  • Ключ : эта строка однозначно определяет этот параметр среди других параметров. Он должен быть удобочитаемым, так как его настраивают администраторы.
  • Тип : к какому типу относится данная настройка? Это строка, логическое значение, целое число, массив и т. д.?
  • Стратегия разрешения конфликтов : как будет реагировать приложение, если администраторы настроят несколько значений для одного ключа? В приведенном выше примере браузера список закладок может объединять все значения, а параметр отключения инкогнито может отключать, если какое-либо из конфликтующих значений имеет значение "true".

Должно ли приложение поддерживать конфигурацию для управляемых устройств или управляемых приложений?

Конфигурации, применимые к управляемым устройствам, и конфигурации, применимые к управляемым приложениям, не являются взаимоисключающими. При выборе поддерживаемого типа конфигурации (или обоих) учитывайте потребности пользователей.

Область конфигурации Конфигурация для управляемых устройств Конфигурация для управляемых приложений
Применимость устройств Применяется только к устройствам в рамках управления устройствами Android Enterprise. Применяется ко всем устройствам, если между приложением интегрирован пакет SDK для приложений Intune и установлен Корпоративный портал.
Платформа Только Android, только устройства со службами Google Пакет SDK для приложений iOS поддерживает те же конфигурации. Как разработчик, вы можете поделиться этими ключами для обеспечения согласованного взаимодействия между платформами.
Применимость Любая EMM Эксклюзивно для Microsoft Intune
Обнаружение схемы Схема становится общедоступной после отправки приложения в Воспроизведение Обнаружение схемы под контролем разработчика

Оба типа конфигурации приложений основаны на парах "ключ-значение". 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 правильно доставляет политику конфигурации приложения:

  1. Настройте политику конфигурации приложений, предназначенную для вашего приложения и развернутую в тестовой учетной записи.
  2. Войдите в приложение с помощью тестовой учетной записи.
  3. Перемещайтесь по приложению, чтобы упражнять каждый путь кода, вызывающий MAMAppConfigManagergetAppConfigForOID 'или getFullData.
    • Регистрация результатов вызовов getAppConfigForOID — простой способ проверить, какие параметры доставлены. Тем не менее, поскольку администраторы могут вводить любые данные для параметров конфигурации приложений, будьте осторожны и не записывайте в журнал никакие частные данные пользователя.
  4. См. статью Проверка примененной политики конфигурации приложений.

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

При тестировании учитывайте следующее:

  • Обеспечение охвата всех сценариев путем создания различных политик конфигурации тестового приложения для каждого значения, поддерживаемого вашим приложением.
  • Проверка логики разрешения конфликтов приложения путем создания нескольких тестовых политик конфигурации приложений с разными значениями для каждого параметра.
  • Если ваше приложение зарегистрировано для получения REFRESH_APP_CONFIG уведомления, обновление политики конфигурации приложений, когда приложение находится в активном использовании, ожидание обновления политики и подтверждение правильности применения этого пути кода.
  • Если приложение поддерживает оба типа конфигурации, протестируйте оба сценария, чтобы убедиться, что ваша реализация предоставляет правильное удостоверение для getAppConfigForOID.

Дальнейшие действия

После выполнения всех критериев выхода , указанных выше, ваше приложение успешно интегрировано как и с политикой конфигурации приложения.

Следующий раздел, этап 7. Функции участия в приложении может требоваться или не требоваться в зависимости от желаемой поддержки политики защиты приложений в вашем приложении. Если вы не уверены, применимы ли к вашему приложению какие-либо из этих функций, вернитесь к разделу "Ключевые решения" по интеграции пакета SDK.