Налаштування MDM для адміністраторів
RedirectWeb підтримує керовану конфігурацію додатків Apple (Managed App Configuration), що дозволяє вам (ІТ-адміністраторам) централізовано розгортати та керувати налаштуваннями додатка на пристроях співробітників або студентів за допомогою рішення для керування мобільними пристроями (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. Навіть якщо співробітники використовують старі закладки, вони будуть автоматично перенаправлені на нову систему, що позбавить ІТ-підтримку від звернень щодо непрацюючих посилань. - Допомога в доступі до інтрамережі: Розповсюдьте правила перенаправлення з використанням власних схем 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 | Довільний рядок версії конфігурації. Відображається в інтерфейсі, дозволяючи ІТ-підтримці перевірити, чи дійшла остання версія налаштувань 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: Масив, що містить докладні повідомлення про помилки або попередження, якщо це можливо.