Iemand installeert de iPhone-versie van een VPN-client op een Mac uit de M-serie, hij opent, hij verbindt, en het team besluit dat de platformvraag is afgerond. Dat is hij niet. Wat hier afgerond van louter werkend scheidt, is het verschil tussen een app-extensie binnen een gebruikerssessie en een systeemextensie met een globale context. Apple ondersteunt inderdaad pakkettunnelproviders in het model iOS-apps op de Mac, en vermeldt die opzet apart van native macOS en Mac Catalyst. Wat die ondersteuning betekent, is smaller dan het klinkt. Ze zegt dat de opzet is toegestaan, niet dat een bepaalde app het goed doet, of dat de tunnel dekt wat u aanneemt.

Drie opzetten, één tabel

Drie opzetten doen ertoe op een Mac en ze zijn niet uitwisselbaar. Een native macOS-client levert een systeemextensie, die in een globale context draait en aanwezig kan zijn voordat iemand inlogt. Een iPhone-app op Apple Silicon levert een app-extensie, die binnen de sessie van de gebruiker draait en daarmee eindigt. Mac Catalyst zit in dezelfde verpakkingsfamilie als de telefoonversie, maar is een ander doel met een eigen uitrolregel.

De vergelijking hieronder is het deel van Apples uitrolrichtlijnen dat de moeite van het onthouden waard is, omdat het de meeste ontwerpvragen beantwoordt vóór een gesprek met een leverancier.

ArrangementProvider packagingSession contextTypical distribution
iOS app on Apple SiliconApp extensionUser session onlyMac App Store
Native macOS clientSystem extensionGlobal, pre-login possibleDeveloper ID, notarised
Mac CatalystApp extensionUser session onlyMac App Store

Lees de verpakkingskolom vóór de marketingpagina: die voorspelt veel betrouwbaarder dan welke functielijst dan ook wat er bij het uitloggen gebeurt.

Wat één geslaagd verzoek bewijst

De rij iOS-apps op de Mac is een echt ondersteunde opzet en geen simulatortruc, en daarom komt de vraag steeds terug. Hij erft ook distributie via de Mac App Store, dus een app waarvan de uitgever nooit Mac-beschikbaarheid heeft aangezet, verschijnt niet, hoe toeschietelijk de ontwikkelaarsdocumentatie ook is.

Een werkende verbinding bewijst dat één verzoek uit één app zijn bestemming heeft bereikt. Ze brengt de resolver van de browser, de uitgesloten apps, de tweede adresfamilie of de lokale apparaten die de gebruiker nog verwacht te bereiken niet in kaart. Een pakkettunnel draagt wat zijn routes en bereik zeggen, en dat bereik komt uit de configuratie van de app, niet uit het bestaan van de tunnel.

Het gat is meestal dekking per app

Een client die alles routeert, is makkelijk te beschrijven en makkelijk te testen. Een die een vaste lijst apps omvat, heeft nodig dat die regels in deze uitrol worden gerespecteerd, niet alleen in de native Mac-build. Toegang tot lokale apparaten, uitzonderingen voor gesplitste tunnel en alles wat afhangt van een menubalkitem dat de telefoonversie nooit had, lopen tegen dezelfde muur.

Vraag het bereik schriftelijk en test dan het tweede geval in plaats van het eerste. Iedereen kan een browser laten zien die via de tunnel het internet bereikt.

Waar de twee in bedrijf uiteenlopen

De levensduur van de sessie is het scherpste verschil en het minst zichtbare in een demo. Apple documenteert app-extensies als draaiend in een gebruikerscontext en eindigend wanneer de gebruiker uitlogt, dus een Mac die opstart tot een inlogvenster heeft geen tunnel tot iemand inlogt. Als de eis een machine omvat die vóór authenticatie beschermd moet zijn, kan de telefoonversie er niet aan voldoen, hoe het profiel ook is geschreven.

Al het andere is betrekkelijk cosmetisch: een aanwezigheid in de menubalk, hoe DNS wordt weergegeven, of de app mag afsluiten terwijl de tunnel blijft staan. Dat zijn echte bruikbaarheidsverschillen en het zijn geen architectuurbeslissingen, dus rangschik ze na de sessievraag.

Beslis in een vaste volgorde

Orden de vragen bewust: onbeheerde dekking eerst, bereik per app tweede, distributie derde, interfaceafwerking laatste. Alleen een native client met systeemextensie beantwoordt de eerste, en hij bereikt het apparaat via MDM plus een beheerd profiel. Een iOS-app op Apple Silicon is een redelijk antwoord wanneer iemand achter de machine zit, inlogt en de tunnel voor die sessie wil.

Stel de uitgever vóór de toezegging drie concrete vragen. Wordt de pakkettunnelprovider ondersteund in de uitrol iOS-apps op de Mac, gelden daar regels per app, en wat gebeurt er bij het uitloggen. Een leverancier die alle drie in één bericht beantwoordt, kent zijn uitroloppervlak; een die alleen de eerste beantwoordt, beschrijft een app die op een Mac opent.

Verifieer daarna op de machine die u gaat ondersteunen, met het account en de gateway die u echt zult gebruiken. Een telefoonversie die op één laptop verbinding maakt met een testgateway is bewijs, geen uitrol.

Gerelateerde artikelen