Przejdź do głównej zawartości

Ustawienia MDM dla administratorów

RedirectWeb obsługuje funkcję Managed App Configuration firmy Apple, umożliwiając (administratorom IT) centralne wdrażanie i zarządzanie ustawieniami aplikacji na urządzeniach pracowników lub uczniów za pomocą rozwiązania Mobile Device Management (MDM), takiego jak Jamf, Intune, Kandji itp.

Ta strona opisuje konfigurowalne klucze, zachowania aplikacji, najlepsze praktyki oraz ograniczenia.

Przegląd

informacja

W przypadku wdrożeń przez Apple Business Manager / Apple School Manager (VPP): Standardowa aplikacja RedirectWeb korzysta z modelu freemium z zakupami wewnątrz aplikacji (In-App Purchase), co sprawia, że nie kwalifikuje się do zakupów grupowych VPP. Aby wdrożyć w pełni odblokowaną aplikację w swojej organizacji, należy zakupić aplikację RedirectWeb Pro, która jest wersją płatną z góry, zaprojektowaną specjalnie do dystrybucji przez MDM/VPP.

Przesyłając konfigurację za pośrednictwem MDM, możesz osiągnąć następujące cele:

  • Wymuszone reguły: Stosowanie ogólnorganizacyjnych reguł przekierowań, których użytkownicy nie mogą modyfikować ani usuwać.
  • Wstępna dystrybucja reguł: Udostępnianie zestawu reguł szablonowych, które służą jako domyślne przy pierwszym uruchomieniu aplikacji.
  • Kontrola interfejsu użytkownika: Ograniczenie dostępu do określonych funkcji (takich jak Biblioteka) i wyraźne wskazanie w aplikacji, że jest ona zarządzana przez organizację.
  • Pobieranie dużych zestawów reguł (Fallback): Ominięcie limitów rozmiaru danych MDM poprzez pobieranie reguł z zewnętrznego serwera.

Przypadki użycia

  • Bezproblemowe kierowanie ruchu podczas migracji systemów: W przypadku migracji ze starego systemu wewnętrznego (np. legacy-crm.internal.local) na nową platformę (np. salesforce.com), należy udostępnić enforcedRuleSet. Nawet jeśli pracownicy użyją starych zakładek, zostaną automatycznie przekierowani do nowego systemu, co eliminuje zgłoszenia do wsparcia IT dotyczące nieaktualnych linków.
  • Pomoc w dostępie do intranetu: Dystrybucja reguł przekierowań wykorzystujących niestandardowe schematy URL w celu ułatwienia dostępu do zasobów intranetowych za pośrednictwem tuneli Per-App VPN, takich jak Omnissa Web.
ostrzeżenie

Aktualizacje konfiguracji MDM są stosowane natychmiast tylko wtedy, gdy użytkownik otworzy aplikację RedirectWeb. Chociaż aplikacja wykorzystuje zadania w tle do cichego przesyłania aktualizacji MDM do rozszerzenia przeglądarki, jest to wykonanie typu "best-effort" (zależne od możliwości systemu), o którym decyduje system operacyjny. Czas wykonania jest wysoce nieprzewidywalny, a zadanie może nie zostać uruchomione wcale. Dlatego nie należy polegać na tej funkcji w sytuacjach krytycznych czasowo (np. próba natychmiastowego przekierowania wszystkich pracowników na stronę zapasową w ciągu kilku minut od awarii usługi chmurowej).

Demo

Plik plist użyty w filmie jest dostępny tutaj: sample-mdm.plist, który wykorzystuje klucze typu słownik (<dict>). Dostępny jest również plik sample-mdm-json-string.plist, który wykorzystuje klucze typu ciąg znaków JSON (te same dane).

W filmie do wdrożenia konfiguracji użyto rozwiązania ManageEngine MDM, ale ta sama konfiguracja może być stosowana w innych rozwiązaniach MDM, o ile obsługują one funkcję Managed App Configuration firmy Apple.

notatka

Słownik (Dictionary) kontra ciąg znaków JSON: Podczas gdy typ słownika jest bardziej bezpieczny pod względem typów, niektóre rozwiązania MDM (takie jak Omnissa Workspace ONE UEM) nie obsługują typu słownika w konfiguracji zarządzanej aplikacji. W takich przypadkach zalecanym obejściem jest użycie typu ciągu znaków JSON.

Konfigurowalne klucze

Wdróż następujące klucze i wartości dla Managed App Configuration za pośrednictwem konsoli MDM, zazwyczaj w formacie plist.

Nazwa kluczaTypOpis
enforcedRuleSetZestaw regułZestaw reguł stosowany z wyższym priorytetem niż normalne reguły. Pierwsza reguła na liście ma pierwszeństwo. Użytkownicy nie mogą edytować, usuwać ani zmieniać kolejności tych reguł. Są one zawsze aktywne, ignorują globalny przełącznik aplikacji i nie synchronizują się przez iCloud.
enforcedRuleSetJSONStringCiąg znaków JSONTo samo co enforcedRuleSet, ale zestaw reguł jest dostarczany jako surowy ciąg znaków JSON. Jest to przydatne w przypadku platform MDM, które nie obsługują typu słownika w konfiguracji zarządzanej aplikacji.
prefilledRuleSetZestaw regułZestaw reguł tworzony zamiast domyślnej reguły przykładowej, gdy użytkownik uruchamia aplikację po raz pierwszy bez istniejących reguł. Po dystrybucji działają one jak normalne reguły, umożliwiając modyfikację, usuwanie i synchronizację przez iCloud.
prefilledRuleSetJSONStringCiąg znaków JSONTo samo co prefilledRuleSet, ale zestaw reguł jest dostarczany jako surowy ciąg znaków JSON. Jest to przydatne w przypadku platform MDM, które nie obsługują typu słownika w konfiguracji zarządzanej aplikacji.
organizationNameStringWyświetla komunikat "Zarządzane przez [organizationName]" u góry ekranu ustawień w aplikacji, informując użytkownika, że aplikacja jest zarządzana.
managedConfigVersionStringDowolny ciąg znaków określający wersję konfiguracji. Wyświetlany w interfejsie użytkownika, umożliwiając wsparciu IT weryfikację, czy najnowsza konfiguracja MDM dotarła do urządzenia podczas rozwiązywania problemów.
showsLibrarySectionBooleanJeśli ustawione na false, funkcja Biblioteki Reguł jest ukryta, a sekcja zostaje zastąpiona komunikatem o błędzie "Ograniczone przez Twoją organizację".
fallbackFallbackNależy określić to, gdy konfiguracje przekraczają limity rozmiaru danych MDM. Aplikacja pobierze konfigurację z adresu URL określonego w fallbackDataURL.
fallbackJSONStringCiąg znaków JSONTo samo co fallback, ale konfiguracja zapasowa jest dostarczana jako surowy ciąg znaków JSON. Jest to przydatne w przypadku platform MDM, które nie obsługują typu słownika w konfiguracji zarządzanej aplikacji.

Wszystkie te klucze są opcjonalne.

Typy wartości konfiguracyjnych

Zestaw reguł

Każdy obiekt reguły ma taki sam format jak ten, który można udostępnić/wyeksportować z aplikacji, ale należy go przekonwertować z formatu JSON na plist, w ten sposób:

...
<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>Moja wymuszona reguła</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

Nazwa kluczaTypOpis
fallbackDataURLString (URL)Adres URL punktu końcowego pliku JSON/XML zawierającego zestawy reguł.
authTokenStringToken uwierzytelniający dołączany do nagłówka HTTP podczas pobierania z fallbackDataURL. (Używany jako Authorization: Bearer [authToken]).

Ciąg znaków JSON

Niektóre platformy MDM (np. Omnissa Workspace ONE UEM) nie obsługują typu słownika (<dict>) w konfiguracji zarządzanej aplikacji. Jako obejście, klucze kończące się na JSONString (takie jak enforcedRuleSetJSONString, prefilledRuleSetJSONString i fallbackJSONString) akceptują te same dane co ich odpowiedniki słownikowe, ale zakodowane jako surowy ciąg znaków JSON wewnątrz elementu <string> pliku plist.

Ciąg znaków JSON może być zminimalizowany lub sformatowany z nowymi liniami i wcięciami w celu poprawy czytelności, jak pokazano w poniższym przykładzie:

...
<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>
...
notatka

Jeśli obecny jest zarówno klucz słownika, jak i odpowiadający mu klucz JSONString (np. zarówno enforcedRuleSet i enforcedRuleSetJSONString), pierwszeństwo ma klucz słownika.

Ewaluacja reguł i rozstrzyganie konfliktów

  1. Jeśli dostarczono enforcedRuleSet, jego reguły są stosowane z bezwzględnym priorytetu.
  2. Jeśli nie ma normalnych reguł, ale istnieje prefilledRuleSet, prefilledRuleSet zostaje zapisany jako reguły normalne.
  3. Domyślna "Przykładowa reguła przekierowania" jest generowana tylko wtedy, gdy nie skonfigurowano żadnych reguł MDM i nie ma żadnych normalnych reguł.

Zachowanie Fallback URL

Gdy klucz istnieje zarówno w danych przesyłanych bezpośrednio przez MDM, jak i w danych pobranych za pośrednictwem fallbackDataURL, aplikacja rozwiązuje konflikt w następujący sposób:

  • Przed zakończeniem pobierania: Ustawienia przesyłane bezpośrednio mają ścisły priorytet i są używane.
  • Po pomyślnym pobraniu: Dane pobrane z fallbackDataURL nadpisują odpowiadające im ustawienia przesyłane bezpośrednio.
  • Po nieudanym pobraniu: Aplikacja nadal korzysta z ustawień przesyłanych bezpośrednio.
  • Niezależne klucze: Klucze, które istnieją tylko w danych przesyłanych bezpośrednio, są zawsze zachowywane.

Informacje zwrotne MDM i sprawdzanie statusu

Możesz zweryfikować, czy konfiguracja została pomyślnie zastosowana, za pośrednictwem kanału informacji zwrotnej MDM (com.apple.feedback.managed), jeśli Twoje rozwiązanie MDM go obsługuje. Po przetworzeniu konfiguracji (lub zakończeniu pobierania z adresu URL) aplikacja zwraca następujące dane:

  • managedConfigVersion: Ciąg znaków wersji próby konfiguracji.
  • result: Albo success (sukces), albo error (błąd).
  • messages: Tablica zawierająca szczegółowe komunikaty o błędach lub ostrzeżeniach, jeśli dotyczy.