Пакет 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 app config) для приложений 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. Если свойство имеет значение nil, то разрешенные учетные записи не указаны. Приложения с поддержкой MSAL/OneAuth должны использовать allowedAccountIds свойство экземпляра IntuneMAMEnrollmentManager для запроса идентификатора объекта Entra.

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

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

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

Реализация обязательного шифрования файлов

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

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

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

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

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

Примечание.

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

  • Учетная nil запись больше не будет рассматриваться как текущая учетная запись для расположений LocalDrive и LocalStorage. Передача учетной nil записи будет рассматриваться как неуправляемая учетная запись. Так как приложения могут управлять тем, как они обрабатывают хранилище песочницы, удостоверение может и должно быть связано с этими расположениями.
  • Учетная nil запись больше не будет рассматриваться как текущая учетная запись для приложений с одним удостоверением. Передача учетной nil записи в приложении с одним удостоверением теперь будет обрабатываться точно так же, как если бы она была передана в приложение с несколькими удостоверениями. Если вы разрабатываете приложение с одним удостоверением, используйте IntuneMAMPolicyprimaryUser , чтобы ссылаться на текущую учетную запись, если она управляется, и 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. Удостоверение, связанное с учетной записью SharePoint, должно быть передано в качестве второго аргумента.
  • IntuneMAMSaveLocationLocalDrive — Это расположение представляет хранилище песочницы приложения, доступ к которому может получить только приложение. Это расположение не следует использовать для сохранения с помощью средства выбора файлов или для сохранения в файлы с помощью расширения общего ресурса. Если удостоверение можно связать с хранилищем песочницы приложения, оно должно быть передано в качестве второго аргумента. Если удостоверение отсутствует, nil его следует передать. Например, приложение может использовать отдельные контейнеры хранилища приложения-песочницы для разных учетных записей. В этом случае в качестве второго аргумента следует использовать учетную запись, владеющую контейнером, к которому осуществляется доступ.
  • IntuneMAMSaveLocationCameraRoll — Это расположение представляет библиотеку фотографий iOS. Так как с библиотекой фотографий iOS не связана учетная запись, в качестве второго аргумента следует передавать только nil при использовании этого расположения.
  • IntuneMAMSaveLocationAccountDocument — Это расположение представляет любое расположение организации, не указанное ранее, которое можно привязать к управляемой учетной записи. Учетная запись организации, связанная с расположением, должна быть передана в качестве второго аргумента. Например, отправка фотографии в облачную службу бизнес-приложений организации, привязанную к учетной записи организации.
  • IntuneMAMSaveLocationOther — Это расположение представляет любое неорганизационные, не перечисленные ранее или неизвестное расположение. Если учетная запись связана с расположением, она должна быть передана в качестве второго аргумента. В противном nil случае вместо этого следует использовать .
Особые рекомендации по сохранению расположений

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

Если целевое расположение отсутствует в списке, следует использовать либо IntuneMAMSaveLocationAccountDocument или IntuneMAMSaveLocationOther . Если расположение содержит организационные данные, доступ к которым осуществляется с помощью управляемой учетной записи (т. е. Следует использовать облачную службу LOB для хранения данных 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. Удостоверение, связанное с учетной записью SharePoint, должно быть передано в качестве второго аргумента.
  • IntuneMAMOpenLocationCamera — Это расположение представляет только новые изображения, сделанные камерой. Так как с камерой iOS не связана учетная запись, в качестве второго аргумента следует передавать только nil при использовании этого расположения. Для открытия данных из библиотеки фотографий iOS используйте IntuneMAMOpenLocationPhotos.
  • IntuneMAMOpenLocationPhotos — Это расположение представляет только существующие изображения в библиотеке фотографий iOS. Так как с библиотекой фотографий iOS не связана учетная запись, в качестве второго аргумента следует передавать только nil при использовании этого расположения. Для открытия изображений, полученных непосредственно с камеры iOS, используйте IntuneMAMOpenLocationCamera.
  • IntuneMAMOpenLocationLocalStorage — Это расположение представляет хранилище песочницы приложения, доступ к которому может получить только приложение. Это расположение не должно использоваться для открытия файлов из средства выбора файлов или обработки входящих файлов из openURL. Если удостоверение можно связать с хранилищем песочницы приложения, оно должно быть передано в качестве второго аргумента. Если удостоверение отсутствует, nil его следует передать. Например, приложение может использовать отдельные контейнеры хранилища приложения-песочницы для разных учетных записей. В этом случае в качестве второго аргумента следует использовать учетную запись, владеющую контейнером, к которому осуществляется доступ.
  • IntuneMAMOpenLocationAccountDocument — Это расположение представляет любое расположение организации, не указанное ранее, которое можно привязать к управляемой учетной записи. Учетная запись организации, связанная с расположением, должна быть передана в качестве второго аргумента. Например, скачивание фотографии из облачной бизнес-службы организации, привязанной к учетной записи организации.
  • IntuneMAMOpenLocationOther — Это расположение представляет любое неорганизационное расположение, ранее не указанное или неизвестное расположение. Если учетная запись связана с расположением, она должна быть передана в качестве второго аргумента. В противном nil случае вместо этого следует использовать .
Особые рекомендации для открытых расположений

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

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

Обработка входящих NSItemProviders и файлов

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

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

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

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

Совместное использование данных с помощью UIActivityViewController

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

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

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

  1. Приложение должно иметь по крайней мере одну схемуURL, определенную в 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. Кроме того, средство IntuneMAMConfigurator можно использовать для создания этих образов из каталога приложения .app. Для этого запустите:

    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 и API Intune Graph. Начиная с версии 7.0.1 пакета SDK для приложений Intune для iOS приложения, участвующие в целевой конфигурации MAM, можно предоставлять целевые данные конфигурации MAM через службу MAM. Данные конфигурации приложения передаются через службу MAM непосредственно в приложение, а не через канал MDM. Пакет SDK для приложений Intune предоставляет класс для доступа к данным, полученным из этих консолей. Ниже приведены предварительные требования.

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

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

  • Вызовите [[IntuneMAMAppConfigManager instance] appConfigForAccountId:] , чтобы получить объект App Config.

  • Вызовите соответствующий селектор для 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 Intents или делает пожертвования намерений Siri, обязательно ознакомьтесь с комментариями для areSiriIntentsAllowed в IntuneMAMPolicy.h , чтобы получить инструкции по поддержке этого сценария.

Примечание.

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

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

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

Печать

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

Уведомления

Если ваше приложение получает уведомления, обязательно ознакомьтесь с комментариями для 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 Patcher для процесса сборки приложения.
  • path path: должен быть корневым каталогом .app приложения.
  • resign: параметр resign предписывает средству отказаться от двоичных файлов, которые имели действительную сигнатуру перед исправлением двоичного файла. Этот параметр следует использовать, если проект включает зависимости платформы или подключаемые модули с параметром Внедрить и подписать , даже если он выполняется до подписывания окончательного приложения или если средство запускается после окончательной подписи приложения.
  • 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.

Условия выхода

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

Пропустите, если вы не реализовали элементы управления save-as и open-from.

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

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

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

Также:

  • Задайте политику управляемой учетной записи следующим образом:
    • "Отправка данных организации в другие приложения" в "Приложения, управляемые политикой".
    • "Получение данных из других приложений" на "Приложения, управляемые политикой".
Сценарий Предпосылки Действия
Сохранить в, полностью разрешено Для политики "Сохранение копий данных организации" задано значение "Разрешить" — Перейдите к месту, где приложение может сохранять данные в OneDrive для бизнеса.
— Попробуйте сохранить документ в OneDrive для бизнеса в той же управляемой учетной записи, вошедшего в приложение.
— Убедитесь, что сохранение разрешено.
Сохранить в, исключить — Для политики "Сохранение копий данных организации" задано значение "Блокировать".
— Политика "Разрешить пользователю сохранять копии в выбранных службах", для параметра "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. Перейдите по приложению, чтобы выполнить каждый путь к коду, который вызывает IntuneMAMAppConfigManager.appConfigForIdentity
    • Ведение журнала результатов вызовов appConfigForIdentity — это простой способ проверить, какие параметры доставлены. Тем не менее, так как администраторы могут вводить любые данные для параметров конфигурации приложения, будьте осторожны, чтобы не регистрировать в журнале какие-либо частные данные пользователей.
  4. См . раздел Проверка примененной политики конфигурации приложений.

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

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

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

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

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

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