Перейти к основному содержимому

Настройки 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.
warning

Конфигурации 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.
enforcedRuleSetJSONStringJSON StringТо же, что и enforcedRuleSet, но набор правил передается в виде необработанной строки JSON. Это полезно для MDM-платформ, которые не поддерживают тип Dictionary.
prefilledRuleSetНабор правилНабор правил, создаваемый вместо примера по умолчанию при первом запуске приложения пользователем (если нет существующих правил). После установки они действуют как обычные правила, позволяя пользователю изменять и удалять их, а также синхронизировать через iCloud.
prefilledRuleSetJSONStringJSON StringТо же, что и prefilledRuleSet, но набор правил передается в виде необработанной строки JSON. Это полезно для MDM-платформ, которые не поддерживают тип Dictionary.
organizationNameStringОтображает «Управляется [organizationName]» в верхней части экрана настроек, указывая пользователю, что приложение находится под управлением организации.
managedConfigVersionStringПроизвольная строка версии конфигурации. Отображается в интерфейсе, позволяя IT-поддержке проверить, дошла ли последняя версия настроек MDM до устройства.
showsLibrarySectionBooleanЕсли установлено значение false, функция «Библиотека правил» скрывается, а вместо нее отображается сообщение «Ограничено вашей организацией».
fallbackFallbackУкажите это, если превышен лимит размера полезной нагрузки MDM. Приложение загрузит конфигурацию по URL-адресу, указанному в fallbackDataURL.
fallbackJSONStringJSON 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

Имя ключаТипОписание
fallbackDataURLString (URL)URL-адрес файла JSON/XML, содержащего наборы правил.
authTokenStringТокен аутентификации, добавляемый к 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.

Оценка правил и разрешение конфликтов

  1. Если предоставлен enforcedRuleSet, его правила применяются с абсолютным приоритетом.
  2. Если обычных правил нет, но существует prefilledRuleSet, prefilledRuleSet сохраняется как набор обычных правил.
  3. Стандартное «Пример правила перенаправления» создается только в том случае, если MDM-правила не настроены и обычные правила отсутствуют.

Поведение Fallback URL

Если ключ существует как в инлайн-нагрузке MDM, так и в данных, полученных через fallbackDataURL, приложение разрешает конфликт следующим образом:

  • До завершения загрузки: Инлайн-настройки имеют строгий приоритет и используются приложением.
  • После успешной загрузки: Данные, полученные из fallbackDataURL, перезаписывают соответствующие инлайн-настройки.
  • После неудачной загрузки: Приложение продолжает использовать инлайн-настройки.
  • Независимые ключи: Ключи, существующие только в инлайн-нагрузке, всегда сохраняются.

Обратная связь MDM и проверка статуса

Вы можете проверить, была ли конфигурация применена успешно, через канал обратной связи MDM (com.apple.feedback.managed), если ваше решение MDM это поддерживает. После обработки конфигурации (или завершения загрузки по URL) приложение возвращает следующие данные:

  • managedConfigVersion: Строка версии попытки конфигурации.
  • result: Либо success, либо error.
  • messages: Массив, содержащий подробные сообщения об ошибках или предупреждениях, если применимо.