Ga naar hoofdinhoud

MDM-instellingen voor beheerders

RedirectWeb ondersteunt Apple's Managed App Configuration, waardoor u (IT-beheerders) app-instellingen centraal kunt implementeren en beheren op apparaten van medewerkers/studenten via een Mobile Device Management (MDM)-oplossing, zoals Jamf, Intune, Kandji, enz.

Deze pagina beschrijft de configureerbare sleutels, app-gedrag, best practices en beperkingen.

Overzicht

info

Voor implementaties via Apple Business Manager / Apple School Manager (VPP): De standaard RedirectWeb-app maakt gebruik van een freemium In-App Purchase-model, dat niet in aanmerking komt voor VPP-volumeverminderde aankopen. Om de volledig ontgrendelde app in uw organisatie te implementeren, schaft u de RedirectWeb Pro-app aanschaft. Dit is een vooraf betaalde versie die specifiek is ontworpen voor MDM/VPP-distributie.

Door configuraties via uw MDM te pushen, kunt u het volgende bereiken:

  • Afgedwongen regels: Pas organisatiebrede doorstuurregels toe die gebruikers niet kunnen wijzigen of verwijderen.
  • Distributie van initiële regels: Distribueer een sjabloon-regelset die dient als standaard bij de eerste start van de app.
  • UI-beheer: Beperk de toegang tot specifieke functies (zoals de bibliotheek) en geef in de app duidelijk aan dat deze onder organisatorisch beheer valt.
  • Ophalen van grote regels (Fallback): Omzeil de limieten voor de grootte van de MDM-payload door regels van een externe server op te halen.

Use cases

  • Naadloze routering tijdens systeemmigraties: Wanneer u migreert van een verouderd intern systeem (bijv. legacy-crm.internal.local) naar een nieuw platform (bijv. salesforce.com), distribueer dan een enforcedRuleSet. Zelfs als medewerkers oude bladwijzers gebruiken, worden ze automatisch doorgestuurd naar het nieuwe systeem, waardoor er geen IT-ondersteuningstickets meer zijn over verouderde links.
  • Hulp bij toegang tot intranet: Distribueer doorstuurregels met behulp van aangepaste URL-schema's om toegang tot intranetbronnen via Per-App VPN tunnels, zoals Omnissa Web, te vergemakkelijken.
waarschuwing

MDM-configuratiepushes worden onmiddellijk toegepast alleen als de gebruiker de RedirectWeb-app opent. Hoewel de app achtergrondtaken gebruikt om MDM-updates geruisloos naar de browserextensie te pushen, is dit een "best-effort" uitvoering die door het besturingssysteem wordt bepaald. Het tijdstip van uitvoering is zeer onvoorspelbaar en de taak wordt mogelijk helemaal niet uitgevoerd. Daarom mag deze functie niet worden vertrouwd voor tijdkritische incidentrespons (bijv. proberen alle medewerkers onmiddellijk door te sturen naar een back-upsite binnen enkele minuten na een uitval van een cloudservice).

Demo

Het plist-bestand dat in de video wordt gebruikt, is hier beschikbaar: sample-mdm.plist, dat gebruikmaakt van Dictionary (<dict>)-sleutels. Er is ook sample-mdm-json-string.plist beschikbaar die gebruikmaakt van JSON-tekenreekssleutels (dezelfde gegevens).

In de video werd de MDM van ManageEngine gebruikt om de configuratie te implementeren, maar dezelfde configuratie kan worden gebruikt voor andere MDM-oplossingen, zolang ze Apple's Managed App Configuration ondersteunen.

notitie

Dictionary vs. JSON-tekenreeks: Hoewel het Dictionary-type meer type-veilig is, ondersteunen sommige MDM-oplossingen (zoals Omnissa Workspace ONE UEM) het Dictionary-type niet in de beheerde app-configuratie. In dergelijke gevallen is het gebruik van het type JSON-tekenreeks een aanbevolen oplossing.

Configureerbare sleutels

Implementeer de volgende sleutels en waarden voor Managed App Configuration via uw MDM-console, meestal in het plist-formaat.

SleutelnaamTypeBeschrijving
enforcedRuleSetRegelsetEen regelset die met een hogere prioriteit wordt toegepast dan normale regels. De eerste regel in de lijst heeft voorrang. Gebruikers kunnen deze regels niet bewerken, verwijderen of de volgorde ervan wijzigen. Ze zijn altijd actief, negeren de algemene uitschakelknop van de app en worden niet gesynchroniseerd via iCloud.
enforcedRuleSetJSONStringJSON-tekenreeksHetzelfde als enforcedRuleSet, maar de regelset wordt geleverd als een ruwe JSON-tekenreeks. Dit is nuttig voor MDM-platforms die het Dictionary-type niet ondersteunen in de beheerde app-configuratie.
prefilledRuleSetRegelsetEen regelset die wordt gemaakt in plaats van de standaard voorbeeldregel wanneer een gebruiker de app voor de eerste keer start zonder bestaande regels. Eenmaal gedistribueerd fungeren deze als normale regels, waardoor wijziging, verwijdering en iCloud-synchronisatie door de gebruiker mogelijk zijn.
prefilledRuleSetJSONStringJSON-tekenreeksHetzelfde als prefilledRuleSet, maar de regelset wordt geleverd als een ruwe JSON-tekenreeks. Dit is nuttig voor MDM-platforms die het Dictionary-type niet ondersteunen in de beheerde app-configuratie.
organizationNameStringToont "Beheerd door [organizationName]" bovenaan het scherm met in-app instellingen, wat de gebruiker aangeeft dat de app wordt beheerd.
managedConfigVersionStringEen willekeurige versienummerreeks voor de configuratie. Wordt weergegeven in de gebruikersinterface, zodat IT-ondersteuning bij het oplossen van problemen kan controleren of de nieuwste MDM-payload het apparaat heeft bereikt.
showsLibrarySectionBooleanIndien ingesteld op false, wordt de functie Regelbibliotheek verborgen en wordt de sectie vervangen door de foutmelding "Beperkt door uw organisatie.".
fallbackFallbackGeef dit op wanneer de configuraties de MDM-payloadlimieten overschrijden. De app haalt de configuratie op van de URL die is opgegeven in fallbackDataURL.
fallbackJSONStringJSON-tekenreeksHetzelfde als fallback, maar de fallback-configuratie wordt geleverd als een ruwe JSON-tekenreeks. Dit is nuttig voor MDM-platforms die het Dictionary-type niet ondersteunen in de beheerde app-configuratie.

Deze sleutels zijn allemaal optioneel.

Typen configuratiewaarden

Regelset

Elk regelobject heeft hetzelfde formaat als degene die u kunt delen/exporteren via de app, maar u moet het converteren van JSON naar plist, zoals dit:

...
<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>Mijn afgedwongen regel</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

SleutelnaamTypeBeschrijving
fallbackDataURLString (URL)Een eindpunt-URL van een JSON/XML-bestand met regelsets.
authTokenStringEen verificatietoken dat aan de HTTP-header wordt toegevoegd bij het ophalen van de fallbackDataURL. (Gebruikt als Authorization: Bearer [authToken]).

JSON-tekenreeks

Sommige MDM-platforms (bijv. Omnissa Workspace ONE UEM) ondersteunen het Dictionary (<dict>)-type niet in de beheerde app-configuratie. Als oplossing accepteren sleutels die eindigen op JSONString (zoals enforcedRuleSetJSONString, prefilledRuleSetJSONString en fallbackJSONString) dezelfde gegevens als hun Dictionary-tegenhangers, maar gecodeerd als een ruwe JSON-tekenreeks binnen een plist <string>-element.

De JSON-tekenreeks kan worden geminimaliseerd of mooi worden opgemaakt met nieuwe regels en inspringing voor de leesbaarheid, zoals in het volgende voorbeeld:

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

Indien zowel een Dictionary-sleutel als de bijbehorende JSONString-sleutel aanwezig zijn (bijv. zowel enforcedRuleSet en enforcedRuleSetJSONString), krijgt de Dictionary-sleutel voorrang.

Regelevaluatie en conflictbeheersing

  1. Als er een enforcedRuleSet wordt verstrekt, worden de regels daarvan met absolute prioriteit toegepast.
  2. Als er geen normale regels zijn maar er wel een prefilledRuleSet bestaat, wordt de prefilledRuleSet opgeslagen als normale regels.
  3. De standaard "Voorbeeld doorstuurregel" wordt alleen gegenereerd als er geen MDM-regels zijn geconfigureerd en er geen normale regels zijn.

Gedrag van Fallback-URL

Wanneer een sleutel zowel in de inline MDM-payload als in de via fallbackDataURL opgehaalde gegevens voorkomt, handelt de app het conflict als volgt af:

  • Vóór voltooiing van het ophalen: Inline instellingen krijgen strikte prioriteit en worden gebruikt.
  • Na succesvol ophalen: Gegevens die zijn opgehaald van de fallbackDataURL overschrijven de overeenkomstige inline instellingen.
  • Na mislukt ophalen: De app blijft de inline instellingen gebruiken.
  • Onafhankelijke sleutels: Sleutels die alleen in de inline payload voorkomen, blijven altijd behouden.

MDM-feedback en statuscontrole

U kunt controleren of de configuratie succesvol is toegepast via het MDM-feedbackkanaal (com.apple.feedback.managed) als uw MDM-oplossing dit ondersteunt. Na het verwerken van de configuratie (of het voltooien van het ophalen van de URL), retourneert de app de volgende gegevens:

  • managedConfigVersion: De versienummerreeks van de configuratiepoging.
  • result: Ofwel success of error.
  • messages: Een array met gedetailleerde fout- of waarschuwingsberichten, indien van toepassing.