пакет SDK для приложений Intune для iOS — функции участия в приложениях
Пакет SDK для приложений Microsoft Intune для iOS позволяет включить Intune политики защиты приложений (также известные как политики приложений или MAM) в собственное приложение iOS. Управляемое Intune приложение интегрировано с пакетом SDK для приложений Intune. администраторы Intune могут легко развертывать политики защиты приложений в приложении, управляемом Intune, когда Intune активно управляет приложением.
Примечание.
Это руководство разделено на несколько отдельных этапов. Для начала ознакомьтесь с разделом Планирование интеграции.
Этап 4. Функции участия в приложениях
Этап Goals
- Узнайте о различных функциях участия в приложениях, предлагаемых пакетом SDK для приложений Intune.
- Интегрируйте функции участия в приложении, относящиеся к вашему приложению и пользователям.
- Протестируйте интеграцию этих функций.
Что такое "Функции участия в приложениях"?
Этот процесс интеграции пакета SDK пытается свести к минимуму объем кода для конкретного приложения, который необходимо написать разработчикам. Успешно завершив предыдущие этапы интеграции пакета SDK, приложение теперь может применить большинство параметров политики защиты приложений, таких как шифрование файлов, ограничения на копирование и вставку, блокировка снимка экрана и ограничения на передачу данных.
Однако существуют некоторые параметры, для которых требуется правильное применение кода для конкретного приложения. они называются функциями участия в приложениях. Как правило, пакет SDK не имеет достаточного контекста о коде вашего приложения или сценарии конечного пользователя для автоматического применения этих параметров, поэтому разработчики могут соответствующим образом вызывать API пакета SDK.
Функции участия в приложении не обязательно являются необязательными. В зависимости от существующих функций приложения эти функции могут потребоваться.
На следующих этапах этого руководства описано несколько важных функций участия в приложении:
- Несколько удостоверений, как описано в разделе Этап 5. Несколько удостоверений.
- ЦС защиты приложений, как описано на этапе 6. Поддержка условного доступа защиты приложений
- Специальные функции веб-представления, описанные на этапе 7. Функции веб-представления
В остальной части этого руководства описывается оставшийся набор функций участия в приложении:
- Реализация разрешенных учетных записей
- Реализация обязательного шифрования файлов
- Реализация элементов управления "сохранение как" и "открытие из"
- Совместное использование данных с помощью UIActivityViewController
- Включение целевой конфигурации (app/MAM app config) для приложений iOS
- Телеметрия
- Намерения Siri
- Клипы приложений
- Печать
- Уведомления
- Скрипт после сборки
Настройка поведения приложения с помощью API
Пакет SDK для приложений Intune содержит несколько API, которые можно вызвать для получения сведений о политике приложений Intune, развернутой в приложении. Эти данные можно использовать для настройки поведения приложения. В следующей таблице приведены сведения о некоторых основных Intune используемых классах.
Класс | Описание |
---|---|
IntuneMAMPolicyManager.h | Класс IntuneMAMPolicyManager предоставляет политику Intune APP, развернутую в приложении. В частности, он предоставляет ИНТЕРФЕЙСЫ 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.
- Приложение должно иметь ведение журнала для диагностики несоответствия между учетной записью, указанной администратором, и учетной записью, введенной пользователем.
Реализация обязательного шифрования файлов
APIisFileEncryptionRequired
, определенный в , 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
записи в приложении с одним удостоверением теперь будет обрабатываться точно так же, как если бы она была передана в приложение с несколькими удостоверениями. Если вы разрабатываете приложение с одним удостоверением, используйтеIntuneMAMPolicy
primaryUser
, чтобы ссылаться на текущую учетную запись, если она управляется, иnil
ссылаться на текущую учетную запись, если она не управляется.
Обработка сценариев сохранения в
Перед перемещением данных в новое облачное хранилище или локальное расположение приложение должно проверка с isSaveToAllowedForLocation:withAccountId:
API, чтобы узнать, разрешил ли ИТ-администратор передачу данных. Этот метод вызывается для IntuneMAMPolicy
объекта . Данные, редактируемые и сохраненные на месте, не нужно проверять с помощью этого API.
Примечание.
Объект IntuneMAMPolicy
должен представлять политики владельца сохраняемых данных. Чтобы получить IntuneMAMPolicy
объект определенного удостоверения, вызовите IntuneMAMPolicyManager
policyForAccountId:
метод . Если владелец является неуправляемой учетной записью без удостоверения, nil
его можно передать в policyForAccountId:
. Даже если сохраненные данные не являются данными организации, isSaveToAllowedForLocation:withAccountId:
все равно следует вызывать. Учетная запись, владеющая целевым расположением, может по-прежнему иметь политики, ограничивающие входящие неуправляемые данные.
Метод isSaveToAllowedForLocation:withAccountId:
принимает два аргумента. Первый аргумент — это значение перечисления типа IntuneMAMSaveLocation
, определенного в IntuneMAMPolicy.h
. Второй аргумент — имя участника-пользователя удостоверения, которому принадлежит расположение. Если владелец неизвестный, nil
вместо него можно использовать.
Поддерживаемые расположения сохранения
Пакет SDK для Intune MAM обеспечивает поддержку следующих расположений сохранения, определенных в IntuneMAMPolicy.h
:
-
IntuneMAMSaveLocationOneDriveForBusiness
— Это расположение представляет OneDrive для бизнеса расположения. Удостоверение, связанное с учетной записью OneDrive, должно быть передано в качестве второго аргумента. -
IntuneMAMSaveLocationSharePoint
— Это расположение представляет как SharePoint Online, так и Microsoft Entra локальные расположения гибридной современной проверки подлинности SharePoint. Удостоверение, связанное с учетной записью 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
объект определенного удостоверения, вызовите IntuneMAMPolicyManager
policyForAccountId:
метод . Если полученная учетная запись является неуправляемой учетной записью без удостоверения, nil
ее можно передать в policyForAccountId:
. Даже если получаемые данные не являются данными организации, isOpenFromAllowedForLocation:withAccountId:
все равно следует вызывать. У учетной записи, владеющей данными, могут по-прежнему быть политики, ограничивающие назначения передачи исходящих данных.
Метод isOpenFromAllowedForLocation:withAccountId:
принимает два аргумента. Первый аргумент — это значение перечисления типа IntuneMAMOpenLocation
, определенного в IntuneMAMPolicy.h
. Второй аргумент — имя участника-пользователя удостоверения, которому принадлежит расположение. Если владелец неизвестный, nil
вместо него можно использовать.
Поддерживаемые открытые расположения
Пакет SDK Intune MAM обеспечивает поддержку следующих открытых расположений, определенных в IntuneMAMPolicy.h
:
-
IntuneMAMOpenLocationOneDriveForBusiness
— Это расположение представляет OneDrive для бизнеса расположения. Удостоверение, связанное с учетной записью OneDrive, должно быть передано в качестве второго аргумента. -
IntuneMAMOpenLocationSharePoint
— Это расположение представляет как SharePoint Online, так и Microsoft Entra локальные расположения гибридной современной проверки подлинности SharePoint. Удостоверение, связанное с учетной записью 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.
Для обработки входящих файлов IntuneMAMPolicy
canReceiveSharedFile:
вместо можно использовать isOpenFromAllowedForLocation:withAccountId:
метод . Метод canReceiveSharedFile:
принимает путь NSString и возвращает, разрешено ли ИТ-администратором открывать его в учетной IntuneMAMPolicy
записи объекта.
Общий доступ к оповещению о блокировк
Вспомогательную функцию пользовательского интерфейса можно использовать при вызове isSaveToAllowedForLocation:withAccountId:
или isOpenFromAllowedForLocation:withAccountId:
API и обнаружении для блокировки действия сохранения или открытия. Если приложение хочет уведомить пользователя о том, что действие было заблокировано, оно может вызвать showSharingBlockedMessage
API, определенный в, IntuneMAMUIHelper.h
чтобы представить представление оповещений с универсальным сообщением.
Совместное использование данных с помощью UIActivityViewController
Начиная с версии 8.0.2 пакет SDK для приложений для Intune может фильтровать UIActivityViewController
действия, чтобы доступны только Intune расположения управляемых общих ресурсов. Это поведение будет контролироваться политикой передачи данных приложения.
Действия "Копировать в"
При совместном доступе к документам UIActivityViewController
с помощью и UIDocumentInteractionController
iOS отображает действия "Копировать в" для каждого приложения, которое поддерживает открытие документа, к которому предоставляется общий доступ. Приложения объявляют типы документов, которые они поддерживают, CFBundleDocumentTypes
с помощью параметра в info.plist. Этот тип общего доступа больше не будет доступен, если политика запрещает общий доступ для неуправляемых приложений. В качестве замены пользователю потребуется добавить в приложение расширение действия, отличное от пользовательского интерфейса, и связать его с пакетом SDK для приложений Intune. Расширение Action — это просто заглушка. Пакет SDK реализует поведение общего доступа к файлам. Выполните следующие действия.
Приложение должно иметь по крайней мере одну схемуURL, определенную в info.plist
CFBundleURLTypes
вместе со своим-intunemam
аналогом. Например:<key>CFBundleURLSchemes</key> <array> <string>launch-com.contoso.myapp</string> <string>launch-com.contoso.myapp-intunemam</string> </array>
Как приложение, так и расширение действий должны совместно использовать по крайней мере одну группу приложений, а группа приложений должна быть указана в
AppGroupIdentifiers
массиве в словарях приложения и IntuneMAMSettings расширения.Как приложение, так и расширение действий должны иметь возможность совместного использования цепочки ключей и совместно использовать группу
com.microsoft.intune.mam
связка ключей.Назовите расширение действия "Открыть в", за которым следует имя приложения. При необходимости локализуйте Info.plist.
Укажите значок шаблона для расширения, как описано в документации разработчика Apple. Кроме того, средство IntuneMAMConfigurator можно использовать для создания этих образов из каталога приложения .app. Для этого запустите:
IntuneMAMConfigurator -generateOpenInIcons /path/to/app.app -o /path/to/output/directory
В разделе IntuneMAMSettings в info.plist расширения добавьте логический параметр
OpenInActionExtension
со значением YES.Настройте для поддержки
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
Обновление существующих расширений общего доступа и действий
Если ваше приложение уже содержит расширения Share или Action, их 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
Целевая конфигурация 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:]
, чтобы получить объект 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()
чтобы определить, следует ли добавить действие печати в пользовательское меню.
Блокировка захвата экрана
Для приложений, обновленных до версии 19.7.6 или более поздней версии для Xcode 15 и версии 20.2.1 или более поздней версии для Xcode 16 пакета SDK, блок захвата экрана будет применен, если настроено Send Org data to other apps
значение, отличное от "Все приложения". Вы можете настроить параметр политики конфигурации приложений "com.microsoft.intune.mam.screencapturecontrol = Disabled", если вы хотите разрешить захват экрана для устройств iOS.
Уведомления
Если ваше приложение получает уведомления, обязательно ознакомьтесь с комментариями для 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 для бизнеса из той же управляемой учетной записи, вошедшего в хранилище приложения. — Убедитесь, что открытие заблокировано. — Если приложение позволяет, попробуйте открыть другой файл из другого расположения облачного хранилища и убедитесь, что он заблокирован. |
Проверка действий "Копировать в"
Пропустите, если вы не реализовали действия "Копировать в".
Для простоты в этих тестах предполагается, что ваше приложение включает только поддержку копирования данных в приложения Microsoft Office, такие как Microsoft Word, Excel и т. д. Однако необходимо проверить каждое сочетание: каждое поддерживаемое копирование в расположение для каждого места, в которое приложение разрешает копирование данных.
Для этих тестов установите приложение, интегрируйте его с пакетом SDK и войдите с управляемой учетной записью перед запуском теста.
Также:
- Выполнены все шаги интеграции из действий "Копировать в" с расширением действий для Microsoft Word, а также успешное создание и запуск приложения.
- Задайте политику управляемой учетной записи следующим образом:
- "Отправка данных организации в другие приложения" в "Приложения, управляемые политикой".
Сценарий | Предпосылки | Действия |
---|---|---|
Выберите приложения, которые следует исключить, Нет | Для политики "Отправка данных организации в другие приложения" задано значение "Приложения, управляемые политикой" | — Перейдите к месту, где приложение может копировать данные в Microsoft Word, и запустите параметр общего доступа к этим данным. — Убедитесь, что вместо параметра "Копировать в Word" вы увидите "Открыть в Word". — Нажмите кнопку "Открыть в Word" и убедитесь, что документ успешно скопирован и просмотрен, если Word также вошел в систему с той же управляемой учетной записью. |
Проверка действий печати
Пропустите, если вы не реализовали печать.
Для этого теста установите приложение, интегрируйте его с пакетом SDK и войдите с управляемой учетной записью перед запуском теста.
Также:
- Выполнены все шаги интеграции, описанные в разделе Печать , сборка и запуск приложения.
- Ваше приложение уже реализует оповещения или элементы действий для обработки случая, когда печать запрещена ИТ-администратором приложения. В этом тесте предполагается, что приложение будет запрашивать оповещение для конечных пользователей при блокировке печати.
Сценарий | Действия |
---|---|
Печать данных организации, Блокировать | — Перейдите к тому месту, где приложение может просматривать данные, и запустите параметр общего доступа к этим данным. — Нажмите кнопку "Печать". — Убедитесь, что отображается оповещение о блокировке и печать запрещена. |
Печать данных организации, разрешить | — Перейдите к тому месту, где приложение может просматривать данные, и запустите параметр общего доступа к этим данным. — Нажмите кнопку "Печать". — Убедитесь, что отображается представление "Печать", и вы можете выбрать принтер и успешно завершить действие. |
Проверка получения конфигураций приложений
Пропустите, если вы не включили конфигурацию целевого приложения для приложений iOS.
Intune отвечает за доставку значений политики конфигурации приложения в приложение, а затем ваше приложение отвечает за использование этих значений для изменения поведения или пользовательского интерфейса в приложении. Тщательное комплексное тестирование должно охватывать оба компонента.
Чтобы убедиться, что Intune правильно предоставляет политику конфигурации приложений, выполните следующие действия:
- Настройте политику конфигурации приложения, предназначенную для вашего приложения и развернутую в тестовой учетной записи.
- Если приложение поддерживает конфигурацию приложений для управляемых устройств, см. статью Политики конфигурации приложений для управляемых устройств iOS Enterprise.
- Если ваше приложение поддерживает конфигурацию приложений для управляемых приложений, см. статью Политики конфигурации приложений для управляемых приложений.
- Если приложение поддерживает оба типа конфигурации приложений, создайте оба типа политики для тестирования.
- Войдите в приложение с помощью тестовой учетной записи.
- Перейдите по приложению, чтобы выполнить каждый путь к коду, который вызывает
IntuneMAMAppConfigManager
.appConfigForIdentity
- Ведение журнала результатов вызовов
appConfigForIdentity
— это простой способ проверить, какие параметры доставлены. Тем не менее, так как администраторы могут вводить любые данные для параметров конфигурации приложения, будьте осторожны, чтобы не регистрировать в журнале какие-либо частные данные пользователей.
- Ведение журнала результатов вызовов
- См . раздел Проверка примененной политики конфигурации приложений.
Так как конфигурации приложений зависят от конкретного приложения, только вы знаете, как проверить, как приложение должно изменять поведение или пользовательский интерфейс для каждого параметра конфигурации приложения.
При тестировании учитывайте следующее:
- Чтобы обеспечить охват всех сценариев, создайте разные политики конфигурации тестового приложения с каждым значением, поддерживаемым приложением.
- Проверка логики разрешения конфликтов приложения путем создания нескольких политик конфигурации тестового приложения с разными значениями для каждого параметра.
Дальнейшие действия
Если вы выполнили это руководство по порядку и выполнили все описанные выше условия выхода, поздравляем, теперь ваше приложение полностью интегрировано с пакетом SDK для Intune приложений и может применять политики защиты приложений! Пожалуйста, проверка другие важные функции участия в приложениях, такие как Этап 5. Мультиудостоверений, Этап 6. Поддержка условного доступа защиты приложений и Этап 7. Веб-представление функций, чтобы интегрировать их в приложение.
защита приложений теперь является основным сценарием для вашего приложения. Продолжайте работать с этим руководством и Приложением по мере разработки приложения.