Настройки MDM для администраторов
RedirectWeb поддерживает управляемую конфигурацию приложений Apple (Managed App Configuration), что позволяет вам (IT-администраторам) централизованно развертывать и управлять настройками приложения на устройствах сотрудников или студентов через решения для управления мобильными устройствами (MDM), такие как Jamf, Intune, Kandji и др.
На этой странице описаны настраиваемые ключи, поведение приложения, рекомендации и ограничения.
Обзор
Для развертывания через Apple Business Manager / Apple School Manager (VPP): Стандартное приложение RedirectWeb использует фримиум-модель со встроенными покупками, которая не подходит для программы корпоративных закупок VPP. Чтобы развернуть полностью разблокированное приложение в вашей организации, приобретите приложение RedirectWeb Pro — это платная версия, разработанная специально для распространения через MDM/VPP.
С помощью передачи конфигураций через MDM вы можете добиться следующего:
- Принудительные правила (Enforced Rules): Применение правил перенаправления в масштабах всей организации, которые пользователи не могут изменять или удалять.
- Начальное распределение правил: Распространение набора правил в качестве шаблона, который будет использоваться по умолчанию при первом запуске приложения.
- Управление интерфейсом: Ограничение доступа к определенным функциям (например, к Библиотеке) и четкое указание в приложении на то, что оно находится под управлением организации.
- Получение больших наборов правил (Fallback): Обход ограничений MDM на размер полезной нагрузки путем загрузки правил с внешнего сервера.
Сценарии использования
- Бесшовный переход при миграции систем:
При переходе с устаревшей внутренней системы (например,
legacy-crm.internal.local) на новую платформу (например,salesforce.com) распространитеenforcedRuleSet. Даже если сотрудники используют старые закладки, они будут автоматически перенаправлены на новую систему, что избавит IT-поддержку от обращений по поводу неработающих ссылок. - Помощь в доступе к интрасети: Распространите правила перенаправления с использованием пользовательских схем URL, чтобы облегчить доступ к ресурсам интрасети через VPN-туннели для конкретных приложений, таких как Omnissa Web.
Конфигурации MDM применяются немедленно только в том случае, если пользователь открыл приложение RedirectWeb. Хотя приложение использует фоновые задачи для скрытого обновления расширения браузера, это выполнение происходит по принципу «best-effort» (по мере возможности) и диктуется операционной системой. Время выполнения крайне непредсказуемо, и задача может не запуститься вовсе. Поэтому на эту функцию не следует полагаться в критических ситуациях (например, при попытке мгновенно перенаправить всех сотрудников на резервный сайт в течение нескольких минут после сбоя облачного сервиса).
Демонстрация
Файл plist, использованный в видео, доступен как sample-mdm.plist (использует ключи Dictionary — <dict>). Также доступен sample-mdm-json-string.plist, который использует ключи JSON String (те же данные).
В видео для развертывания конфигурации использовалась MDM ManageEngine, но ту же конфигурацию можно использовать для других MDM-решений, если они поддерживают Apple Managed App Configuration.
Dictionary vs. JSON String: Хотя тип Dictionary является более типобезопасным, некоторые MDM-решения (например, Omnissa Workspace ONE UEM) не поддерживают тип Dictionary в конфигурации управляемых приложений. В таких случаях рекомендуется использовать тип JSON String в качестве обходного пути.
Настраиваемые ключи
Разверните следующие ключи и значения для Managed App Configuration через консоль MDM, обычно в формате plist.
| Имя ключа | Тип | Описание |
|---|---|---|
enforcedRuleSet | Набор правил | Набор правил, применяемый с более высоким приоритетом, чем обычные правила. Первое правило в списке имеет приоритет. Пользователи не могут редактировать, удалять или изменять порядок этих правил. Они всегда активны, игнорируют глобальный переключатель и не синхронизируются через iCloud. |
enforcedRuleSetJSONString | JSON String | То же, что и enforcedRuleSet, но набор правил передается в виде необработанной строки JSON. Это полезно для MDM-платформ, которые не поддерживают тип Dictionary. |
prefilledRuleSet | Набор правил | Набор правил, создаваемый вместо примера по умолчанию при первом запуске приложения пользователем (если нет существующих правил). После установки они действуют как обычные правила, позволяя пользователю изменять и удалять их, а также синхронизировать через iCloud. |
prefilledRuleSetJSONString | JSON String | То же, что и prefilledRuleSet, но набор правил передается в виде необработанной строки JSON. Это полезно для MDM-платформ, которые не поддерживают тип Dictionary. |
organizationName | String | Отображает «Управляется [organizationName]» в верхней части экрана настроек, указывая пользователю, что приложение находится под управлением организации. |
managedConfigVersion | String | Произвольная строка версии конфигурации. Отображается в интерфейсе, позволяя IT-поддержке проверить, дошла ли последняя версия настроек MDM до устройства. |
showsLibrarySection | Boolean | Если установлено значение false, функция «Библиотека правил» скрывается, а вместо нее отображается сообщение «Ограничено вашей организацией». |
fallback | Fallback | Укажите это, если превышен лимит размера полезной нагрузки MDM. Приложение загрузит конфигурацию по URL-адресу, указанному в fallbackDataURL. |
fallbackJSONString | JSON String | То же, что и fallback, но конфигурация передается в виде необработанной строки JSON. Это полезно для MDM-платформ, которые не поддерживают тип Dictionary. |
Все эти ключи являются необязательными.
Типы значений конфигурации
Набор правил
Каждый объект правила имеет тот же формат, что и при экспорте/отправке через приложение, но его необходимо преобразовать из JSON в plist следующим образом:
...
<key>enforcedRuleSet</key>
<dict>
<key>kind</key>
<string>RedirectList</string>
<key>bundleID</key>
<string>io.github.mshibanami.RedirectWebForSafari</string>
<key>formatVersion</key>
<string>5</string>
<key>redirects</key>
<array>
<dict>
<key>kind</key>
<string>Redirect</string>
<key>type</key>
<string>originalRedirect</string>
<key>title</key>
<string>My enforced Rule</string>
<key>sourceURLPattern</key>
<dict>
<key>type</key>
<string>wildcard</string>
<key>value</key>
<string>https://example.com/1</string>
</dict>
<key>destinationURLPattern</key>
<string>https://google.com/search?q=1</string>
</dict>
</array>
</dict>
...
Fallback
| Имя ключа | Тип | Описание |
|---|---|---|
fallbackDataURL | String (URL) | URL-адрес файла JSON/XML, содержащего наборы правил. |
authToken | String | Токен аутентификации, добавляемый к HTTP-заголовку при загрузке из fallbackDataURL. (Используется как Authorization: Bearer [authToken]). |
JSON String
Некоторые MDM-платформы (например, Omnissa Workspace ONE UEM) не поддерживают тип Dictionary (<dict>) в конфигурации управляемых приложений. В качестве обходного пути ключи, заканчивающиеся на JSONString (такие как enforcedRuleSetJSONString, prefilledRuleSetJSONString и fallbackJSONString), принимают те же данные, что и их аналоги Dictionary, но закодированные как необработанная строка JSON внутри элемента plist <string>.
Строка JSON может быть как сжатой, так и отформатированной с переносами строк и отступами для удобства чтения, как показано в следующем примере:
...
<key>enforcedRuleSetJSONString</key>
<string>{
"kind": "RedirectList",
"bundleID": "io.github.mshibanami.RedirectWebForSafari",
"formatVersion": "5",
"redirects": [
{
"kind": "Redirect",
"type": "originalRedirect",
"title": "My enforced Rule",
"sourceURLPattern": {
"type": "wildcard",
"value": "https://example.com/1"
},
"destinationURLPattern": "https://google.com/search?q=1"
}
]
}</string>
...
Если присутствуют и ключ Dictionary, и соответствующий ему ключ JSONString (например, и enforcedRuleSet, и enforcedRuleSetJSONString), приоритет имеет ключ Dictionary.
Оценка правил и разрешение конфликтов
- Если предоставлен
enforcedRuleSet, его правила применяются с абсолютным приоритетом. - Если обычных правил нет, но существует
prefilledRuleSet,prefilledRuleSetсохраняется как набор обычных правил. - Стандартное «Пример правила перенаправления» создается только в том случае, если MDM-правила не настроены и обычные правила отсутствуют.
Поведение Fallback URL
Если ключ существует как в инлайн-нагрузке MDM, так и в данных, полученных через fallbackDataURL, приложение разрешает конфликт следующим образом:
- До завершения загрузки: Инлайн-настройки имеют строгий приоритет и используются приложением.
- После успешной загрузки: Данные, полученные из
fallbackDataURL, перезаписывают соответствующие инлайн-настройки. - После неудачной загрузки: Приложение продолжает использовать инлайн-настройки.
- Независимые ключи: Ключи, существующие только в инлайн-нагрузке, всегда сохраняются.
Обратная связь MDM и проверка статуса
Вы можете проверить, была ли конфигурация применена успешно, через канал обратной связи MDM (com.apple.feedback.managed), если ваше решение MDM это поддерживает. После обработки конфигурации (или завершения загрузки по URL) приложение возвращает следующие данные:
managedConfigVersion: Строка версии попытки конфигурации.result: Либоsuccess, либоerror.messages: Массив, содержащий подробные сообщения об ошибках или предупреждениях, если применимо.