VPN для приложений в iOS: сопоставьте VPNUUID приложения, а не PayloadUUID
VPNUUID приложения должен совпадать с тем, что внутри полезной нагрузки VPN для приложения, а приложение должно быть управляемым. Runbook, который доказывает пару до теста.
Два значения UUID решают, проходит ли одно управляемое приложение iPhone через туннель для приложения, и ни одно из них не является идентификатором профиля, который их несёт. Атрибут VPNUUID приложения должен быть равен VPNUUID внутри полезной нагрузки VPN для приложения. Развёрнутое приложение также должно управляться той же службой управления устройствами, а отправляемая команда должна действительно нести этот атрибут. Пройдите четыре этапа ниже по порядку, потому что каждый создаёт значение, нужное следующему.
Соберите четыре идентификатора, прежде чем трогать устройство
Запишите четыре значения: идентификатор пакета из вашей инвентаризации управления, идентификатор полезной нагрузки VPN для приложения, VPNUUID внутри этой полезной нагрузки и идентификатор команды, которую вы вот-вот отправите. Идентификатор пакета называет приложение, которое получает настройки, а подпись на домашнем экране его не заменяет. Держите PayloadUUID полностью вне этого списка, так как он обозначает полезную нагрузку внутри профиля и отвечает на другой вопрос. Подставлять его вместо другого только потому, что оба поля выглядят как UUID, — самый распространённый способ построить связь, которая никогда не сможет совпасть.
Если администратор VPN не передал вам полезную нагрузку для приложения и её идентификатор, попросите их, вместо того чтобы выковыривать UUID из ближайшего файла конфигурации.
Примените атрибут через канал управления
Убедитесь, что целевое приложение управляется на этом устройстве, потому что известный идентификатор пакета не делает неуправляемую установку подходящей для связи. Затем отправьте элемент настроек типа ApplicationAttributes через назначение VPN для приложения вашего продукта или его поддерживаемую реализацию команды Settings. Элемент определяет приложение по идентификатору пакета и несёт словарь Attributes, чей VPNUUID соответствует полезной нагрузке. Ничто в этом элементе не является полным конвертом команды, и ничто в нём нельзя установить вручную как профиль.
К удалению относитесь так же осознанно, как к установке. Схема говорит, что пропуск словаря Attributes удаляет существующие атрибуты приложения, так что наполовину собранное обновление тихо превращается в сброс. Команда со схожим названием Managed Application Attributes читает атрибуты обратно для проверки; она их не задаёт, и использовать её как установщик — это потраченное окно развёртывания.
Читайте результат команды, а не значок приложения
Проверьте подтверждение отправленной команды и убедитесь, что управляемое приложение теперь сообщает об атрибуте. Значок VPN в строке состояния говорит лишь о том, что где-то в телефоне есть туннель. Он не может сказать, что именно это приложение назначено конфигурации для приложения, а на устройстве, где туннель открывается по запросу, значок может вообще не появиться. Сравнивайте идентификаторы в назначении, а не ищите визуальный признак.
Если в одном парке есть две конфигурации для приложения, сравните их идентификаторы, прежде чем считать, что ваше назначение попало в нужную.
Проверьте с ресурсом, затем зафиксируйте пару
Попросите уполномоченного пользователя открыть частный ресурс из назначенного приложения и посмотрите, поднимается ли для него туннель для приложения. Затем повторите из неуправляемого приложения на том же телефоне и подтвердите, что обращение отличается. Именно этот контраст и есть настоящая проверка, потому что работающий частный ресурс мог быть достигнут и через туннель для всего устройства, о котором никто не упомянул в журнале изменений. Запишите результат, пока устройство перед вами.
Храните вместе идентификатор пакета, идентификатор полезной нагрузки, общий VPNUUID и результат команды, чтобы следующее расследование начиналось с тех же четырёх значений, а не с памяти.
Откатите без побочных повреждений
Чтобы снять назначение, отправьте атрибут приложения заново с пустым словарём Attributes в форме, задокументированной вашим продуктом, вместо того чтобы убирать приложение из команды. После этого проверьте, что приложение больше не открывает туннель для приложения, а другие управляемые приложения сохранили свой. Если на том же телефоне есть и профиль VPN для всего устройства, подтвердите, что он ведёт себя как до отката, потому что две конфигурации VPN на одном устройстве — это то место, где этот шаг обычно идёт не так. Затем обновите запись, которую вы вели.
Аудит, спрашивающий, почему конкретное приложение когда-либо шло через туннель, захочет пару UUID и дату, а не описание развёртывания.