Zum Hauptinhalt springen

MDM-Einstellungen für Administratoren

RedirectWeb unterstützt die "Managed App Configuration" von Apple. Damit können Sie (IT-Administratoren) App-Einstellungen zentral über eine Mobile-Device-Management-Lösung (MDM) wie Jamf, Intune, Kandji usw. auf den Geräten von Mitarbeitern oder Schülern bereitstellen und verwalten.

Diese Seite beschreibt die konfigurierbaren Schlüssel, das App-Verhalten, Best Practices und Einschränkungen.

Übersicht

info

Für Bereitstellungen über Apple Business Manager / Apple School Manager (VPP): Die Standard-App RedirectWeb nutzt ein Freemium-Modell mit In-App-Käufen, das nicht für den VPP-Volumeneinkauf qualifiziert ist. Um die vollständig freigeschaltete App in Ihrer Organisation bereitzustellen, erwerben Sie bitte die App RedirectWeb Pro. Dabei handelt es sich um eine kostenpflichtige Version, die speziell für die MDM/VPP-Verteilung entwickelt wurde.

Durch das Pushen von Konfigurationen über Ihr MDM können Sie Folgendes erreichen:

  • Erzwungene Regeln: Wenden Sie organisationsweite Weiterleitungsregeln an, die von Benutzern weder geändert noch gelöscht werden können.
  • Erstverteilung von Regeln: Verteilung eines Vorlagen-Regelsatzes, der beim ersten Start der App als Standard dient.
  • UI-Steuerung: Beschränken Sie den Zugriff auf bestimmte Funktionen (wie die Bibliothek) und weisen Sie in der App deutlich darauf hin, dass sie organisationsweit verwaltet wird.
  • Abrufen großer Regelsätze (Fallback): Umgehen Sie die Größenbeschränkungen für MDM-Payloads, indem Sie Regeln von einem externen Server abrufen.

Anwendungsfälle

  • Nahtlose Weiterleitung bei Systemmigrationen: Bei der Migration von einem alten internen System (z. B. legacy-crm.internal.local) auf eine neue Plattform (z. B. salesforce.com) können Sie einen enforcedRuleSet verteilen. Selbst wenn Mitarbeiter alte Lesezeichen verwenden, werden sie automatisch zum neuen System weitergeleitet, was IT-Support-Tickets wegen veralteter Links vermeidet.
  • Unterstützung beim Intranetzugriff: Verteilen Sie Weiterleitungsregeln mit benutzerdefinierten URL-Schemas, um den Zugriff auf Intranet-Ressourcen über Per-App-VPN-Tunnel, wie z. B. Omnissa Web, zu erleichtern.
warnung

MDM-Konfigurations-Pushes werden nur dann sofort angewendet, wenn der Benutzer die RedirectWeb-App öffnet. Obwohl die App Hintergrundaufgaben nutzt, um MDM-Updates geräuschlos an die Browser-Erweiterung zu übertragen, handelt es sich hierbei um eine vom Betriebssystem diktierte "Best-Effort"-Ausführung. Der Zeitpunkt der Ausführung ist höchst unvorhersehbar, und die Aufgabe wird unter Umständen gar nicht ausgeführt. Daher sollte man sich auf diese Funktion nicht verlassen, wenn es um zeitkritische Reaktionen auf Vorfälle geht (z. B. der Versuch, alle Mitarbeiter innerhalb weniger Minuten nach einem Ausfall eines Cloud-Dienstes sofort auf eine Backup-Seite umzuleiten).

Demo

Die im Video verwendete Plist-Datei ist als sample-mdm.plist verfügbar, die Dictionary-Schlüssel (<dict>) verwendet. Es gibt auch sample-mdm-json-string.plist, die JSON-String-Schlüssel verwendet (gleiche Daten).

Im Video wurde das MDM von ManageEngine zur Bereitstellung der Konfiguration verwendet, aber dieselbe Konfiguration kann auch für andere MDM-Lösungen genutzt werden, sofern diese die Managed App Configuration von Apple unterstützen.

hinweis

Dictionary vs. JSON-String: Während der Typ "Dictionary" typsicherer ist, unterstützen einige MDM-Lösungen (wie Omnissa Workspace ONE UEM) den Typ "Dictionary" in der verwalteten App-Konfiguration nicht. In solchen Fällen ist die Verwendung des Typs "JSON-String" eine empfohlene Umgehung.

Konfigurierbare Schlüssel

Stellen Sie die folgenden Schlüssel und Werte für die Managed App Configuration über Ihre MDM-Konsole bereit, normalerweise im Plist-Format.

SchlüsselnameTypBeschreibung
enforcedRuleSetRegelsatzEin Regelsatz, der mit höherer Priorität als normale Regeln angewendet wird. Die erste Regel in der Liste hat Vorrang. Benutzer können diese Regeln nicht bearbeiten, löschen oder ihre Reihenfolge ändern. Sie sind immer aktiv, ignorieren den globalen Deaktivierungsschalter der App und werden nicht über iCloud synchronisiert.
enforcedRuleSetJSONStringJSON-StringEntspricht enforcedRuleSet, aber der Regelsatz wird als roher JSON-String bereitgestellt. Dies ist nützlich für MDM-Plattformen, die den Typ "Dictionary" in der verwalteten App-Konfiguration nicht unterstützen.
prefilledRuleSetRegelsatzEin Regelsatz, der anstelle der Standard-Beispielregel erstellt wird, wenn ein Benutzer die App zum ersten Mal ohne bestehende Regeln startet. Einmal verteilt, fungieren diese als normale Regeln, die vom Benutzer geändert und gelöscht werden können und über iCloud synchronisiert werden.
prefilledRuleSetJSONStringJSON-StringEntspricht prefilledRuleSet, aber der Regelsatz wird als roher JSON-String bereitgestellt. Dies ist nützlich für MDM-Plattformen, die den Typ "Dictionary" in der verwalteten App-Konfiguration nicht unterstützen.
organizationNameStringZeigt "Verwaltet von [organizationName]" oben auf dem Einstellungsbildschirm in der App an, um dem Benutzer zu signalisieren, dass die App verwaltet wird.
managedConfigVersionStringEine beliebige Versionszeichenfolge für die Konfiguration. Wird in der UI angezeigt, damit der IT-Support bei der Fehlerbehebung überprüfen kann, ob die neueste MDM-Payload das Gerät erreicht hat.
showsLibrarySectionBooleanWenn auf false gesetzt, wird die Funktion "Regelbibliothek" ausgeblendet und der Bereich durch die Fehlermeldung "Von Ihrer Organisation eingeschränkt." ersetzt.
fallbackFallbackGeben Sie dies an, wenn das Größenlimit der MDM-Payload überschritten wird. Die App ruft dann die Konfiguration von der in fallbackDataURL angegebenen URL ab.
fallbackJSONStringJSON-StringEntspricht fallback, aber die Fallback-Konfiguration wird als roher JSON-String bereitgestellt. Dies ist nützlich für MDM-Plattformen, die den Typ "Dictionary" in der verwalteten App-Konfiguration nicht unterstützen.

Diese Schlüssel sind alle optional.

Konfigurationswerttypen

Regelsatz

Jedes Regelobjekt hat dasselbe Format wie dasjenige, das Sie über die App teilen/exportieren können, aber Sie müssen es von JSON in eine Plist konvertieren, wie hier gezeigt:

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

SchlüsselnameTypBeschreibung
fallbackDataURLString (URL)Eine Endpunkt-URL einer JSON/XML-Datei, die Regelsätze enthält.
authTokenStringEin Authentifizierungs-Token, das beim Abrufen von der fallbackDataURL an den HTTP-Header angehängt wird (verwendet als Authorization: Bearer [authToken]).

JSON-String

Einige MDM-Plattformen (z. B. Omnissa Workspace ONE UEM) unterstützen den Typ "Dictionary" (<dict>) in der verwalteten App-Konfiguration nicht. Als Umgehung akzeptieren Schlüssel, die auf JSONString enden (wie enforcedRuleSetJSONString, prefilledRuleSetJSONString und fallbackJSONString), dieselben Daten wie ihre Dictionary-Pendants, jedoch kodiert als roher JSON-String innerhalb eines Plist-<string>-Elements.

Der JSON-String kann entweder minimiert oder zur besseren Lesbarkeit mit Zeilenumbrüchen und Einrückungen formatiert sein, wie im folgenden Beispiel gezeigt:

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

Wenn sowohl ein Dictionary-Schlüssel als auch der entsprechende JSONString-Schlüssel vorhanden sind (z. B. sowohl enforcedRuleSet als auch enforcedRuleSetJSONString), hat der Dictionary-Schlüssel Vorrang.

Regelauswertung und Konfliktlösung

  1. Wenn ein enforcedRuleSet bereitgestellt wird, werden dessen Regeln mit absoluter Priorität angewendet.
  2. Wenn keine normalen Regeln vorhanden sind, aber ein prefilledRuleSet existiert, wird das prefilledRuleSet als normale Regeln gespeichert.
  3. Die Standard-"Beispiel-Weiterleitungsregel" wird nur generiert, wenn keine MDM-Regeln konfiguriert sind und keine normalen Regeln vorhanden sind.

Verhalten der Fallback-URL

Wenn ein Schlüssel sowohl in der Inline-MDM-Payload als auch in den über fallbackDataURL abgerufenen Daten vorhanden ist, behandelt die App den Konflikt wie folgt:

  • Vor Abschluss des Abrufens: Inline-Einstellungen werden strikt priorisiert und verwendet.
  • Nach erfolgreichem Abrufen: Daten, die von der fallbackDataURL abgerufen wurden, überschreiben die entsprechenden Inline-Einstellungen.
  • Nach fehlgeschlagenem Abrufen: Die App verwendet weiterhin die Inline-Einstellungen.
  • Unabhängige Schlüssel: Schlüssel, die nur in der Inline-Payload vorhanden sind, bleiben immer erhalten.

MDM-Feedback und Statusprüfung

Sie können über den MDM-Feedback-Kanal (com.apple.feedback.managed) überprüfen, ob die Konfiguration erfolgreich angewendet wurde, sofern Ihre MDM-Lösung dies unterstützt. Nach der Verarbeitung der Konfiguration (oder dem Abschluss des URL-Abrufs) gibt die App die folgenden Daten zurück:

  • managedConfigVersion: Die Versionszeichenfolge des Konfigurationsversuchs.
  • result: Entweder success (Erfolg) oder error (Fehler).
  • messages: Ein Array mit detaillierten Fehler- oder Warnmeldungen, falls zutreffend.