Пакет SDK приложения Intune для iOS — функции участия в приложении

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

Примечание.

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

Этап 4. Функции участия в приложении

Цели этапа

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

Что такое "Функции участия в приложении"?

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

Однако есть некоторые параметры, для надлежащего применения которых требуется код, относящийся к конкретному приложению; Это называется "Функции участия приложения". Как правило, пакет SDK не имеет достаточного контекста о коде приложения или сценарии конечного пользователя, чтобы автоматически применять эти параметры, и поэтому полагается на то, что разработчики будут соответствующим образом вызывать API пакета SDK.

Функции участия в приложении не обязательно являются необязательными. В зависимости от существующих функций вашего приложения, эти функции могут потребоваться.

На следующих этапах этого руководства описывается несколько важных функций участия в приложении:

В оставшейся части этого руководства описаны оставшиеся функции участия приложения:

  • Реализация разрешенных учетных записей
  • Реализация шифрования файлов Требуется
  • Реализация элементов управления "Сохранить как" и "Открыть из"
  • Передача данных через UIActivityViewController
  • Включение целевой конфигурации (конфигурация приложения APP/MAM) для приложений iOS
  • Телеметрия
  • Намерения Siri
  • Клипы приложений
  • Печать
  • Уведомления
  • Сценарий после сборки

Настройка поведения приложения с помощью API-интерфейсов

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

Класс Описание
IntuneMAMPolicyManager.h Класс IntuneMAMPolicyManager предоставляет политики защиты приложений Intune, развернутые в приложении. В частности, он предоставляет API, полезные для включения нескольких удостоверений.
IntuneMAMPolicy.h Класс IntuneMAMPolicy предоставляет некоторые параметры политики MAM, которые применяются к приложению. Большинство этих параметров политики доступны, чтобы приложение могло настраивать свой пользовательский интерфейс. Большинство параметров политики применяются пакетом SDK, а не приложением. однако есть и исключения. Разработчики приложений должны просмотреть комментарии в этом заголовке, чтобы определить, какие API применимы к сценариям их приложений.
IntuneMAMFileProtectionManager.h Класс IntuneMAMFileProtectionManager предоставляет API, которые приложение может использовать для явной защиты файлов и каталогов на основе предоставленного идентификатора. Удостоверение может управляться с помощью Intune или быть неуправляемым, а пакет SDK будет применять соответствующую политику MAM. Использование этого класса не является обязательным.
IntuneMAMDataProtectionManager.h Класс IntuneMAMDataProtectionManager предоставляет API, которые приложение может использовать для защиты буферов данных с учетом предоставленного идентификатора. Удостоверение может управляться с помощью Intune или быть неуправляемым, а пакет SDK будет соответствующим образом применять шифрование.

Реализация разрешенных учетных записей

Intune позволяет ИТ-администраторам указывать, в какие учетные записи может входить пользователь. Приложения могут запрашивать у пакета SDK приложений Intune указанный список разрешенных учетных записей, а затем убедиться, что на устройстве выполнен вход только с разрешенными учетными записями.

Чтобы запросить разрешенные учетные записи, приложение должно выполнить проверку allowedAccounts свойства в IntuneMAMEnrollmentManager. Свойство allowedAccounts представляет собой либо массив, содержащий разрешенные учетные записи, либо nil. Если свойство равно нулю, то разрешенные учетные записи не указаны. Приложения, поддерживающие MSAL/OneAuth, должны использовать свойство allowedAccountIds экземпляра IntuneMAMEnrollmentManager для запроса идентификатора объекта Entra.

Приложения также могут реагировать на изменения allowedAccounts свойства, наблюдая за IntuneMAMAllowedAccountsDidChangeNotification уведомлением. Уведомление публикуется всякий раз, когда стоимость свойства изменяется.allowedAccounts

При использовании API для разрешенных учетных записей необходимы следующие требования:

  • Для UPN и OID при сравнении идентичностей регистр не учитывается регистр.
  • Сравнение тождеств должно поддерживать как имя участника-пользователя, так и OID.
  • Приложение должно иметь ведение журнала для диагностики любых несоответствий между учетной записью, указанной администратором, и учетной записью, введенной пользователем.

Реализация шифрования файлов Требуется

APIisFileEncryptionRequired, определенный в IntuneMAMPolicy.h списке, информирует приложения, когда ИТ-администратор требует, чтобы приложения использовали шифрование Intune для всех файлов, сохраненных на диск. Если isFileEncryptionRequired это так, то приложение несет ответственность за шифрование любых файлов, сохраненных на диск с помощью API в IntuneMAMFile.h, IntuneMAMFileProtectionManager.hи IntuneMAMFDataProtectionManager.h.

Приложения могут реагировать на изменения в этой политике, наблюдая за уведомлениями, IntuneMAMDataProtectionDidChangeNotification определенными в IntuneMAMFDataProtectionManager.h.

Реализация элементов управления "Сохранить как" и "Открыть из"

Intune позволяет ИТ-администраторам выбирать, в каких местах хранения может сохранять данные или открывать их управляемое приложение. Приложения могут запрашивать у пакета SDK Intune MAM разрешенные расположения для сохранения с помощью isSaveToAllowedForLocation:withAccountId: API, определенного в IntuneMAMPolicy.h. Приложения также могут запрашивать в пакете SDK разрешенные расположения хранилища Open-From с помощью isOpenFromAllowedForLocation:withAccountId: API, также определенного в IntuneMAMPolicy.h.

Кроме того, приложения могут проверить, разрешены ли входящие данные из расширения для общего доступа, запросив canReceiveSharedItemProvider: API, определенный в IntuneMAMPolicy.h. Приложения также могут запрашивать canReceiveSharedFile: API для проверки входящих файлов из вызова openURL, также определенного в IntuneMAMPolicy.h

Примечание.

Во внутреннее поведение MAM SDK версии 15.1.0 внесены изменения.

  • Учетная nil запись больше не будет рассматриваться как текущая учетная запись для расположений LocalDrive и LocalStorage. Передача nil учетной записи будет рассматриваться как неуправляемая учетная запись. Так как приложения могут управлять тем, как они обрабатывают свое хранилище песочницы, удостоверение может и должно быть связано с этими расположениями.
  • Учетная nil запись больше не будет рассматриваться как текущая учетная запись для приложений с одним идентификатором. Передача nil учетной записи в приложении с одним удостоверением теперь будет восприниматься точно так же, как если бы она была передана в приложение с несколькими удостоверениями. Если вы разрабатываете приложение с одним идентификатором, используйте IntuneMAMPolicy', primaryUser чтобы ссылаться на текущую учетную запись, если она управляется, и nil на текущую учетную запись, если она не управляется.

Обработка сценариев сохранения

Перед перемещением данных в новое облачное хранилище или локальное расположение приложение должно выполнить проверку с isSaveToAllowedForLocation:withAccountId: помощью API, чтобы узнать, разрешил ли ИТ-администратор передачу данных. Этот метод вызывается на объекте IntuneMAMPolicy . Данные, редактируемые и сохраняемые на месте, не нужно проверять с помощью этого API.

Примечание.

Объект IntuneMAMPolicy должен представлять политики владельца сохраняемых данных. Чтобы получить IntuneMAMPolicy объект определенного идентификатора, вызовите IntuneMAMPolicyManagerpolicyForAccountId: метод '. Если владелец является неуправляемой учетной записью без удостоверения, nil может быть передан в policyForAccountId:. Даже если сохраняемые данные не являются данными организации, isSaveToAllowedForLocation:withAccountId: их все равно следует вызвать. Учетная запись, владеющая расположением назначения, может по-прежнему иметь политики, ограничивающие входящие неуправляемые данные.

Метод isSaveToAllowedForLocation:withAccountId: принимает два аргумента. Первый аргумент — это значение перечисления типа IntuneMAMSaveLocation , определенного в IntuneMAMPolicy.h. Второй аргумент — это имя участника-пользователя удостоверения, которому принадлежит расположение. Если владелец неизвестен, nil можно использовать вместо него.

Поддерживаемые места сохранения

Пакет SDK Intune MAM поддерживает следующие места сохранения, определенные в IntuneMAMPolicy.h:

  • IntuneMAMSaveLocationOneDriveForBusiness- Это расположение представляет расположения OneDrive для бизнеса. В качестве второго аргумента следует передать удостоверение, связанное с учетной записью OneDrive.
  • IntuneMAMSaveLocationSharePoint- Это расположение представляет как SharePoint Online, так и локальные расположения Microsoft Entra Hybrid Modern Auth SharePoint. Удостоверение, связанное с учетной записью SharePoint, следует передавать в качестве второго аргумента.
  • IntuneMAMSaveLocationLocalDrive - Это расположение представляет собой хранилище песочницы приложения, к которому может получить доступ только приложение. Это расположение не следует использовать для сохранения с помощью средства выбора файлов или для сохранения файлов с помощью расширения общего ресурса. Если удостоверение можно связать с хранилищем песочницы приложения, его следует передать в качестве второго аргумента. Если идентификатора нет, nil следует передать его. Например, приложение может использовать отдельные контейнеры хранилища песочницы приложения для разных учетных записей. В этом случае в качестве второго аргумента следует использовать учетную запись, владеющую контейнером, к которому осуществляется доступ.
  • IntuneMAMSaveLocationCameraRoll - Это место представляет библиотеку фотографий iOS. Так как с библиотекой фотографий iOS не связана ни одна учетная запись, она должна передаваться только nil в качестве второго аргумента при использовании этого расположения.
  • IntuneMAMSaveLocationAccountDocument - Это местоположение представляет собой любое местоположение организации, не указанное ранее, которое можно привязать к управляемой учетной записи. Учетная запись организации, связанная с расположением, должна передаваться в качестве второго аргумента. Например, отправка фотографии в облачную службу бизнес-приложений организации, привязанную к учетной записи организации.
  • IntuneMAMSaveLocationOther - Это местоположение представляет собой любое неорганизационное, ранее не указанное или любое неизвестное местоположение. Если учетная запись связана с расположением, она должна быть передана в качестве второго аргумента. В противном случае nil следует использовать вместо него.
Особые рекомендации для мест сохранения

Это IntuneMAMSaveLocationLocalDrive расположение должно использоваться только для хранилища песочницы приложения, к которому может получить доступ только приложение. Чтобы проверить, можно ли сохранить файл в хранилище устройства iOS с помощью средства выбора файлов или иного другого метода, IntuneMAMSaveLocationOther благодаря которому данные будут доступны в приложении Files.

Если конечное расположение не указано, следует использовать либо другое IntuneMAMSaveLocationAccountDocumentIntuneMAMSaveLocationOther . Если расположение содержит данные организации, доступ к которым осуществляется с помощью управляемой учетной записи (например, облачный сервис бизнес-приложений для хранения данных организации). IntuneMAMSaveLocationAccountDocument Если расположение не содержит данные организации, следует использовать это IntuneMAMSaveLocationOther расположение.

Обработка сценариев открытия

Перед импортом данных из нового облачного хранилища или локального расположения приложение должно выполнить проверку с isOpenFromAllowedForLocation:withAccountId: помощью API, чтобы узнать, разрешил ли ИТ-администратор передачу данных. Этот метод вызывается на объекте IntuneMAMPolicy . Данные, открываемые на месте, не нужно проверять с помощью этого API.

Примечание.

Объект IntuneMAMPolicy должен представлять политики удостоверения, получающего данные. Чтобы получить IntuneMAMPolicy объект определенного идентификатора, вызовите IntuneMAMPolicyManagerpolicyForAccountId: метод '. Если получающая учетная запись является неуправляемой учетной записью без удостоверения, nil может быть передана в policyForAccountId:. Даже если получаемые данные не являются данными организации, isOpenFromAllowedForLocation:withAccountId: их все равно следует вызвать. Учетная запись, владеющая данными, может по-прежнему иметь политики, ограничивающие места назначения передачи исходящих данных.

Метод isOpenFromAllowedForLocation:withAccountId: принимает два аргумента. Первый аргумент — это значение перечисления типа IntuneMAMOpenLocation , определенного в IntuneMAMPolicy.h. Второй аргумент — это имя участника-пользователя удостоверения, которому принадлежит расположение. Если владелец неизвестен, nil можно использовать вместо него.

Поддерживаемые открытые расположения

Пакет SDK для Intune MAM поддерживает следующие открытые расположения, определенные в IntuneMAMPolicy.h:

  • IntuneMAMOpenLocationOneDriveForBusiness- Это расположение представляет расположения OneDrive для бизнеса. В качестве второго аргумента следует передать удостоверение, связанное с учетной записью OneDrive.
  • IntuneMAMOpenLocationSharePoint- Это расположение представляет как SharePoint Online, так и локальные расположения Microsoft Entra Hybrid Modern Auth SharePoint. Удостоверение, связанное с учетной записью SharePoint, следует передавать в качестве второго аргумента.
  • IntuneMAMOpenLocationCamera - Это местоположение представляет только новые изображения, сделанные камерой. Так как с камерой iOS не связана никакая учетная запись, она должна передаваться только nil в качестве второго аргумента при использовании этого расположения. Чтобы открыть данные из библиотеки фотографий iOS, используйте IntuneMAMOpenLocationPhotos.
  • IntuneMAMOpenLocationPhotos - Это расположение представляет только существующие изображения в библиотеке фотографий iOS. Так как с библиотекой фотографий iOS не связана ни одна учетная запись, она должна передаваться только nil в качестве второго аргумента при использовании этого расположения. Чтобы открыть изображения, сделанные непосредственно с камеры iOS, используйте IntuneMAMOpenLocationCamera.
  • IntuneMAMOpenLocationLocalStorage - Это расположение представляет собой хранилище песочницы приложения, к которому может получить доступ только приложение. Это расположение не следует использовать для открытия файлов из средства выбора файлов или обработки входящих файлов из openURL. Если удостоверение можно связать с хранилищем песочницы приложения, его следует передать в качестве второго аргумента. Если идентификатора нет, nil следует передать его. Например, приложение может использовать отдельные контейнеры хранилища песочницы приложения для разных учетных записей. В этом случае в качестве второго аргумента следует использовать учетную запись, владеющую контейнером, к которому осуществляется доступ.
  • IntuneMAMOpenLocationAccountDocument - Это местоположение представляет собой любое местоположение организации, не указанное ранее, которое можно привязать к управляемой учетной записи. Учетная запись организации, связанная с расположением, должна передаваться в качестве второго аргумента. Например, скачивание фотографии из облачной службы бизнес-приложений организации, привязанной к учетной записи организации.
  • IntuneMAMOpenLocationOther - Это местоположение представляет собой любое местоположение, не указанное ранее, или любое неизвестное местоположение. Если учетная запись связана с расположением, она должна быть передана в качестве второго аргумента. В противном случае nil следует использовать вместо него.
Особые требования для открытых расположений

Это IntuneMAMOpenLocationLocalStorage расположение должно использоваться только для хранилища песочницы приложения, к которому приложение может получить доступ. Чтобы проверить, можно ли открыть файл из хранилища устройства iOS с помощью средства выбора файлов или иного другого метода, IntuneMAMOpenLocationOther где данные также доступны в приложении Files.

Если конечное расположение не указано, следует использовать либо другое IntuneMAMOpenLocationAccountDocumentIntuneMAMOpenLocationOther . Если расположение содержит данные организации, доступ к которым осуществляется с помощью управляемой учетной записи. Например, следует использовать облачный сервис бизнес-приложений для хранения данных организации. IntuneMAMOpenLocationAccountDocument Если расположение не содержит данные организации, следует использовать это IntuneMAMSaveLocationOther расположение.

Обработка входящих поставщиков NSItemProviders и Files

Для обработки NSItemProviders, полученных из расширения общего доступа, IntuneMAMPolicyметод ' canReceiveSharedItemProvider: ' можно использовать вместо isOpenFromAllowedForLocation:withAccountId:. Метод canReceiveSharedItemProvider: принимает NSItemProvider и возвращает, разрешено ли его ИТ-администратору открыть IntuneMAMPolicy в учетной записи объекта. Элемент должен быть загружен до вызова этого метода. Например, с помощью вызова loadItemForTypeIdentifier:options:completionHandler. Этот метод также можно вызвать из обработчика завершения, переданного в вызов загрузки NSItemProvider.

Для обработки входящих файлов IntuneMAMPolicyметод '' canReceiveSharedFile: может быть использован вместо isOpenFromAllowedForLocation:withAccountId:. Метод canReceiveSharedFile: принимает путь NSString и возвращает, разрешено ли его ИТ-администратору открыть IntuneMAMPolicy в учетной записи объекта.

Оповещение о блокировке общего доступа

Вспомогательную функцию пользовательского интерфейса можно использовать, когда isSaveToAllowedForLocation:withAccountId: вызывается API или isOpenFromAllowedForLocation:withAccountId: и обнаруживается, что он блокирует действие сохранения/открытия. Если приложение хочет уведомить пользователя о том, что действие было заблокировано, оно может вызвать showSharingBlockedMessage определенный IntuneMAMUIHelper.h API для представления оповещения с универсальным сообщением.

Передача данных через UIActivityViewController

Начиная с выпуска 8.0.2 пакет SDK для приложений Intune может фильтровать UIActivityViewController действия, чтобы выбрать можно было только расположения управляемых общих папок Intune. Это поведение будет контролироваться политикой передачи данных приложения.

Действия "Копировать в"

При предоставлении общего доступа к документам через и UIActivityViewControllerUIDocumentInteractionControllerв iOS отображаются действия "Копировать в" для каждого приложения, поддерживающего открытие демонстрируемого документа. Приложения объявляют типы документов, которые они поддерживают, с помощью параметра в своем файле CFBundleDocumentTypes Info.plist. Этот тип общего доступа больше не будет доступен, если политика запрещает общий доступ к неуправляемым приложениям. В качестве замены пользователю придется добавить в свое приложение расширение действия, не относящееся к пользовательскому интерфейсу, и связать его с пакетом SDK приложения Intune. Расширение Action — это просто заглушка. Пакет SDK реализует поведение общего доступа к файлам. Сделайте следующее:

  1. Ваше приложение должно иметь по крайней мере один SchemeURL, определенный в его Info.plist CFBundleURLTypes вместе с его -intunemam аналогом. Например, вы можете:

    <key>CFBundleURLSchemes</key>
    <array>
        <string>launch-com.contoso.myapp</string>
          <string>launch-com.contoso.myapp-intunemam</string>
    </array>
    
  2. И приложение, и расширение действия должны совместно использовать хотя бы одну группу приложений, а группа приложений должна быть указана в массиве AppGroupIdentifiers в словарях IntuneMAMSettings приложения и расширения.

  3. Как приложение, так и расширение действия должны иметь возможность совместного использования связки ключей и совместно использовать com.microsoft.intune.mam группу цепочки ключей.

  4. Назовите расширение действия "Открыть в", а затем укажите имя приложения. При необходимости локализуйте файл Info.plist.

  5. Укажите значок шаблона для расширения, как описано в документации для разработчиков Apple. Кроме того, для создания этих образов из каталога .app приложения можно использовать инструмент IntuneMAMConfigurator. Для этого запустите:

    IntuneMAMConfigurator -generateOpenInIcons /path/to/app.app -o /path/to/output/directory
    
  6. В разделе IntuneMAMSettings в Info.plist расширения добавьте логический параметр OpenInActionExtension со значением YES.

  7. Настройте поддержку NSExtensionActivationRule одного файла и всех типов из приложения CFBundleDocumentTypes с префиксом com.microsoft.intune.mam. Например, если приложение поддерживает файлы public.text и public.image, правило активации будет выглядеть следующим образом:

    SUBQUERY (
        extensionItems,
        $extensionItem,
        SUBQUERY (
            $extensionItem.attachments,
            $attachment,
            ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.text" ||
            ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.image").@count == 1
    ).@count == 1
    

Обновление существующих расширений общего доступа и действий

Если приложение уже содержит расширения "Поделиться" или "Действие", их NSExtensionActivationRule необходимо изменить, чтобы разрешить типы Intune. Для каждого типа, поддерживаемого расширением, добавьте дополнительный тип с префиксом com.microsoft.intune.mam. Например, если существующее правило активации:

SUBQUERY (
    extensionItems,
    $extensionItem,
    SUBQUERY (
        $extensionItem.attachments,
        $attachment,
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.data"
    ).@count > 0
).@count > 0

Его следует изменить на

SUBQUERY (
    extensionItems,
    $extensionItem,
    SUBQUERY (
        $extensionItem.attachments,
        $attachment,
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.data" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.url" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.plain-text" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.image" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.data"
    ).@count > 0
).@count > 0

Примечание.

С помощью инструмента IntuneMAMConfigurator можно добавлять типы Intune в правило активации. Если существующее правило активации использует предопределенные строковые константы. Например, NSExtensionActivationSupportsFileWithMaxCount, NSExtensionActivationSupportsText и т. д., синтаксис предикатов может быть довольно сложным. Средство IntuneMAMConfigurator также можно использовать для преобразования правила активации из строковых констант в строку предиката при добавлении типов Intune.

Как должен выглядеть пользовательский интерфейс

Старый пользовательский интерфейс:

Общий доступ к данным — старый пользовательский интерфейс общего доступа iOS

Новый пользовательский интерфейс:

Общий доступ к данным — новый пользовательский интерфейс общего доступа в iOS

Включение целевой конфигурации приложений для iOS

Целевая конфигурация MAM (также известная как конфигурация приложения MAM) позволяет приложению получать данные конфигурации через пакет SDK Intune. Формат и варианты этих данных должны быть определены и сообщены клиентам Intune владельцем или разработчиком приложения.

Intune администраторы могут использовать в качестве целевых и развертывать данные конфигурации с помощью Центра администрирования Microsoft Intune и Intune API Graph. Начиная с версии 7.0.1 пакета SDK для приложений Intune для iOS приложениям, участвующим в целевой конфигурации MAM, можно предоставлять данные целевой конфигурации MAM через службу MAM. Данные конфигурации приложения отправляются через службу MAM непосредственно в приложение, а не по каналу MDM. Пакет SDK для приложения Intune предоставляет класс для доступа к данным, полученным с этих консолей. Предварительные требования относятся к следующему:

  • Приложение должно быть зарегистрировано в службе Intune MAM, прежде чем вы получите доступ к пользовательскому интерфейсу целевой конфигурации MAM. Дополнительные сведения см. в разделе Получение политики защиты приложений.

  • Включить IntuneMAMAppConfigManager.h в исходный файл приложения.

  • Вызов [[IntuneMAMAppConfigManager instance] appConfigForAccountId:] для получения объекта конфигурации приложения.

  • Вызов соответствующего селектора для IntuneMAMAppConfig объекта. Например, если ключом приложения является строка, можно использовать stringValueForKey или allStringsForKey. Здесь приведено IntuneMAMAppConfig.h подробное описание возвращаемых значений и условий ошибок.

Дополнительные сведения о возможностях API Graph см. в справочнике по API Graph.

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

Телеметрия

По умолчанию пакет SDK для приложения Intune для iOS собирает данные телеметрии по следующим типам событий.

  • Запуск приложения: чтобы помочь Microsoft Intune узнать об использовании приложений с поддержкой MAM по типам управления (MAM с MDM, MAM без регистрации в MDM и т. Д.).

  • Звонки регистрации: Чтобы помочь Microsoft Intune узнать о частоте успешности и других метриках производительности вызовов регистрации, инициированных на стороне клиента.

  • Действия Intune: для диагностики проблем и обеспечения функциональности Intune мы собираем сведения о действиях пакета SDK Intune.

Примечание.

Если вы решили не отправлять данные телеметрии пакета SDK приложения Intune в Microsoft Intune из своего мобильного приложения, вам необходимо отключить сбор телеметрии пакета SDK приложения Intune. Установите для свойства MAMTelemetryDisabled значение YES в словаре IntuneMAMSettings.

Намерения Siri

Если ваше приложение интегрируется с Siri Intent или делает пожертвования Siri Intents, обязательно ознакомьтесь с комментариями areSiriIntentsAllowedIntuneMAMPolicy.h , чтобы получить инструкции по поддержке этого сценария.

Примечание.

В iOS 16 и более поздних версий доступна новая системная платформа App Intents для создания Swift App Intents. Приложения, реализующие намерение приложения, должны сначала проверка areSiriIntentsAllowed свойства объекта IntuneMAMPolicy для пользователя.

Клипы приложений

Если ваше приложение содержит целевой объект клипа приложения, убедитесь, что в клипе приложения не представлены управляемые данные. Клип приложения следует считать неуправляемым расположением. Интеграция пакета SDK в клипы приложений в настоящее время не поддерживается.

Печать

Если ваше приложение реализует печать и предоставляет настраиваемое действие печати в пользовательском меню, обязательно воспользуйтесь UIPrintInteractionController.isPrintingAvailable() ими, чтобы определить, следует ли добавлять действие печати в настраиваемое меню.

Блокировка снимка экрана

К приложениям, обновленным до версии 19.7.6 или более поздней для Xcode 15 и версии 20.2.1 или более поздней версии для Xcode 16 пакета SDK, блок захвата экрана будет применяться, если вы настроили Send Org data to other apps значение, отличное от «Все приложения». Если вы хотите разрешить создание снимков экрана для устройств с iOS, можно настроить параметр политики конфигурации приложений "com.microsoft.intune.mam.screencapturecontrol = Disabled".

Уведомления

Если ваше приложение получает уведомления, обязательно ознакомьтесь с комментариями notificationPolicy для получения IntuneMAMPolicy.h инструкций по поддержке этого сценария. Рекомендуется, чтобы приложения регистрировались в IntuneMAMPolicyDidChangeNotification , как описано в IntuneMAMPolicyManager.h, и передавать это значение им UNNotificationServiceExtension через связку ключей.

Веб-расширения Safari

Если ваше приложение имеет веб-расширение Safari и поддерживает отправку данных между расширением и родительским приложением, в некоторых сценариях может потребоваться поддержка блокировки данных. Чтобы заблокировать данные, в родительском приложении вызовите isAppSharingAllowed API в IntuneMAMPolicy.h, а затем заблокируйте веб-расширение.

Сценарий после сборки

Средство командной строки IntuneMAMFrameworkPatcher больше не нужно запускать на последнем этапе процесса сборки приложения. Однако это средство доступно в составе пакета SDK приложения Intune для iOS на GitHub.

Важно!

С выпуска 17.7.1 пакета SDK для Intune MAM этот шаг больше не требуется. Средство командной строки IntuneMAMFrameworkPatcher больше не нужно запускать.

Использование командной строки

IntuneMAMFrameworkPatcher -i /path/to/directory_or_binary [-resign] [-verbose]

Параметры:

  • iО, r, v: этот параметр позволяет вам выбрать, установить или проверить исправление платформы Intune MAM Framework для процесса сборки приложения.
  • path: должен path быть корневым каталогом .app приложения.
  • resign: параметр resign предписывает средству отменить назначение двоичных файлов, которые имели допустимую подпись до исправления двоичного файла. Этот параметр следует использовать, если проект включает в себя зависимости фреймворка или плагины с опцией Embed and Sign , даже если инструмент запускается до финальной подписи приложения или если инструмент запускается после финальной подписи приложения.
  • verbose: Эта verbose опция заставит средство выводить информацию о каждом двоичном файле, который был исправлен.

Другие применения:

  • Снимите патч:

    IntuneMAMFrameworkPatcher -r /path/to/directory_or_binary [-resign] [-verbose]

  • Проверьте исправление:

    IntuneMAMFrameworkPatcher -v /path/to/directory_or_binary [-verbose]

Пример сценария:

IntuneMAMFrameworkPatcher -i $BUILT_PRODUCTS_DIR/$EXECUTABLE_FOLDER_PATH -resign -verbose

Дополнительные сведения о начале работы и скачивании пакета SDK см. в разделе Начало работы с пакетом SDK для приложений Microsoft Intune.

Критерии выхода

Проверка сохранения в/открытия из ограничений

Пропустите, если вы не реализовали элементы управления "Сохранить как" и "Открыть от".

Заново ознакомьтесь с каждым сценарием, в котором приложение может сохранять данные в облачных хранилищах или локальных расположениях и открывать данные из облачных хранилищ или локальных расположений.

Для простоты эти тесты будут предполагать, что ваше приложение поддерживает только сохранение и открытие данных из OneDrive для бизнеса из одного расположения в приложении. Однако необходимо проверить каждое сочетание: каждое поддерживаемое расположение для сохранения с каждым местом, где приложение позволяет сохранять данные, и каждое поддерживаемое открытое расположение с каждым местом, где приложение разрешает открывать данные.

Для этих тестов установите приложение, интегрируйте его с пакетом SDK и войдите в систему с помощью управляемой учетной записи перед началом теста.

Также:

  • Настройте политику управляемой учетной записи следующим образом:
    • "Отправлять данные организации в другие приложения" в "Приложения, управляемые политикой".
    • "Получать данные из других приложений" в "Приложения, управляемые политикой".
Сценарий Предварительные условия Действия
Сохранить в, полностью разрешено Политика "Сохранять копии данных организации" с установленным значением "Разрешить" - Перейдите к разделу, где приложение может сохранять данные в OneDrive для бизнеса.
- Попытайтесь сохранить документ в службе OneDrive для бизнеса, используя ту же управляемую учетную запись, в которую выполнен вход в приложение.
- Убедитесь, что сохранение разрешено.
Сохранить в, исключено - Политика «Сохранять копии данных организации» установлена на «Блокировать»
- Политика "Разрешить пользователю сохранять копии в выбранных службах" с установленным значением "OneDrive для бизнеса"
- Перейдите к разделу, где приложение может сохранять данные в OneDrive для бизнеса.
- Попытайтесь сохранить документ в службе OneDrive для бизнеса, используя ту же управляемую учетную запись, в которую выполнен вход в приложение.
- Убедитесь, что сохранение разрешено.
- Если ваше приложение разрешает, попробуйте сохранить файл в другом облачном хранилище и убедитесь, что оно заблокировано.
Сохранить, заблокировано Политика "Сохранять копии данных организации" с установленным значением "Блокировать" - Перейдите к разделу, где приложение может сохранять данные в OneDrive для бизнеса.
- Попытайтесь сохранить документ в службе OneDrive для бизнеса, используя ту же управляемую учетную запись, в которую выполнен вход в приложение.
- Убедитесь, что сохранение заблокировано.
- Если ваше приложение разрешает, попробуйте сохранить файл в другом облачном хранилище и убедитесь, что оно заблокировано.
Открыть с, полностью разрешено Политика "Открывать данные в документах организации" с установленным значением "Разрешить" - Перейдите в раздел, где приложение может открывать данные из OneDrive для бизнеса.
- Попытайтесь открыть документ из OneDrive для бизнеса из той же управляемой учетной записи, которая вошла в хранилище приложения.
- Убедитесь, что открытие разрешено.
Открыто от, освобождено - Политика «Открывать данные в документах организации» установлена на «Блокировать»
- Политика "Разрешить пользователям открывать данные из выбранных служб" с установленным значением только "OneDrive для бизнеса"
- Перейдите в раздел, где приложение может открывать данные из OneDrive для бизнеса.
- Попытайтесь открыть документ из OneDrive для бизнеса из той же управляемой учетной записи, которая вошла в хранилище приложения.
- Убедитесь, что открытие разрешено.
- Если приложение разрешает, попробуйте открыть другой файл из другого места хранения в облаке и убедитесь, что оно заблокировано.
Открыть от, заблокировано Политика "Открывать данные в документах организации" с установленным значением "Блокировать" - Перейдите в раздел, где приложение может открывать данные из OneDrive для бизнеса.
- Попытайтесь открыть документ из OneDrive для бизнеса из той же управляемой учетной записи, которая вошла в хранилище приложения.
- Убедитесь, что открытие заблокировано.
- Если приложение разрешает, попробуйте открыть другой файл из другого места хранения в облаке и убедитесь, что оно заблокировано.

Проверка действий "Копировать кому"

Пропустите этот шаг, если вы не реализовали действия "Копировать в".

Для простоты эти тесты предполагают, что ваше приложение поддерживает только копирование данных в приложения Microsoft Office, такие как Microsoft Word, Excel и т. д. Однако необходимо проверить каждое сочетание: каждое поддерживаемое расположение копирования и каждое место, куда приложение позволяет копировать данные.

Для этих тестов установите приложение, интегрируйте его с пакетом SDK и войдите в систему с помощью управляемой учетной записи перед началом теста.

Также:

  • Выполнены все этапы интеграции, начиная с действий "Копировать в" с расширением действия для Microsoft Word, а также успешно создавайте и запускайте приложение.
  • Настройте политику управляемой учетной записи следующим образом:
    • "Отправлять данные организации в другие приложения" в "Приложения, управляемые политикой".
Сценарий Предварительные условия Действия
Выберите приложения для исключения, Нет Политике "Отправлять данные организации в другие приложения" присвоено значение "Приложения, управляемые политикой" - Перейдите, где приложение может скопировать данные в Microsoft Word, и запустите параметр общего доступа к этим данным.
- Подтвердите Вместо варианта «Копировать в Word» вы увидите «Открыть в Word».
- Нажмите кнопку "Открыть в Word" и убедитесь, что документ скопирован и просмотрен, учитывая, что Word также вошел в систему с той же управляемой учетной записью.

Проверка действий печати

Пропустите, если вы не реализовали печать.

Для этого теста установите приложение, интегрируйте его с пакетом SDK и войдите с помощью управляемой учетной записи перед началом теста.

Также:

  • Успешно выполнены все этапы интеграции, начиная с печати и создания и запуска приложения.
  • Ваше приложение уже реализует оповещения или действия для обработки случая, когда печать не разрешена ИТ-администратором приложения. В этом тесте предполагается, что приложение будет отправлять оповещение конечным пользователям при блокировке печати.
Сценарий Действия
Печать данных организации, блок - Перейдите, где приложение может просматривать данные, и запустите параметр общего доступа к этим данным.
- Нажмите на «Печать».
- Убедитесь, что отображается оповещение о блокировке и печать запрещена.
Печать данных организации, разрешить - Перейдите, где приложение может просматривать данные, и запустите параметр общего доступа к этим данным.
- Нажмите на «Печать».
- Убедитесь, что отображается режим "Печать" и вы можете выбрать принтер и успешно выполнить операцию.

Проверка получения конфигураций приложений

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

Intune отвечает за доставку значений политики конфигурации приложения в ваше приложение; впоследствии ваше приложение отвечает за использование этих значений для изменения поведения или пользовательского интерфейса внутри приложения. Тщательное сквозное тестирование должно охватывать оба компонента.

Чтобы убедиться, что Intune правильно доставляет политику конфигурации приложения:

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

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

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

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

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

Если вы следовали этому руководству по порядку и выполнили все указанные выше критерии выхода, поздравляем! Теперь ваше приложение полностью интегрировано с пакетом SDK для приложений Intune и может применять политики защиты приложений! Обратите внимание проверка другие важные функции участия приложения, например этап 5: несколько удостоверений, этап 6: поддержка условного доступа для защиты приложений и этап 7: функции веб-представления, чтобы интегрировать их в свое приложение.

Защита приложений теперь является основным сценарием для вашего приложения. Продолжайте обращаться к этому руководству и приложению по мере разработки приложения.