Tvö mjög ólík verk eru flokkuð undir hugtakið forritað VPN, og aðeins annað þeirra er aðgengilegt venjulegu appi á hvorum tveggja farsímaplatfanna. Hið fyrra er að kveikja á sniði sem notandinn hefur þegar vistað; hið síðara er að byggja göng inni í eigin ferli. Android gefur þér hið síðara í gegnum VpnService og iOS gefur þér hið síðara í gegnum Network Extension heimildina, á meðan hið fyrra er áfram hjá kerfinu, eiganda tækis eða MDM-þjóni. Að komast að því hvoru þú þarft í raun gerir verkefnið venjulega minna.

Tvö verk sem deila nafni

Að virkja vistað snið þýðir að segja fyrirliggjandi göngum að koma upp: hýsill, skírteini, samskiptareglur, allt þegar stillt á stað sem notandinn getur séð. Að byggja göng þýðir að kóðinn þinn á viðmótið, pakkahringinn og samskiptareglurnar. Þau líta svipað út í vörubakstri og deila nánast engri útfærslu.

Hvorug farsímaplatfannanna opnar hið fyrra fyrir SDK-appi. Tenging sem birtist án þess að notandinn geri nokkuð verður ekki greind frá spilliforritum, svo bæði kerfin setja samþykkishlið fyrir framan hvert app sem flytur umferð.

Android: samþykkishlið og ekkert sniðs-API

VpnService hefur verið til síðan í Android 4.0 og leyfir appi að búa til tun-viðmót og lesa og skrifa pakka. Þjónustuna verður að tilkynna með BIND_VPN_SERVICE, og VpnService.prepare() framleiðir kerfisgluggann sem biður notandann að leyfa hana. Sýnishorn platfannarinnar, ToyVpn, er skýrasta yfirlýsingin um fyrirhugað form: kóðinn þinn á viðmótið og allt sem streymir í gegnum það.

Það sem það gerir ekki er að bæta færslu við VPN-stillingaskjá kerfisins. Ekkert opinbert API er til fyrir það, og Stillingar-appið heldur sniðum sínum í geymslu sem venjulegt app kemst ekki í. Köll í faldar klasana frá venjulegu forriti búa til snið sem kerfið listar aldrei, þess vegna hættir kóði sem virtist virka í einni byggingu að virka hljóðlega í þeirri næstu.

Stýrða leiðin er aðskilin. Eigandi tækis eða sniðs getur tilgreint VPN-pakka sem er alltaf kveiktur í gegnum stefnu-API tækisins, og fyrirtækjatól getur sent snið sem notandinn samþykkir síðan. Þetta er heimild til tækjastýringar, ekki leyfi sem app biður um við uppsetningu. Ef viðskiptavinurinn þinn er stofnun er þetta leiðin sem á að skipuleggja fyrir; ef viðskiptavinurinn þinn er einstaklingur sem setur upp úr verslun er hún alls ekki í boði.

iOS: heimildin er mörkin

iOS skiptir sama verki öðruvísi. VPN-klient útfærir pakkagangaveitanda eða app-varsla innan Network Extension rammans, og samsvarandi heimild verður að veita þróunaraðganginum. Persónuleg VPN-stilling í gegnum NEVPNManager er til fyrir einfaldara tilfellið, og hún keyrir enn innan sömu leyfislíkans. Apple skjalfestir allt yfirborðið í Network Extension viðmiðinu, sem er þess virði að lesa áður en þú afmarkar verkið.

Engin studd leið er til að opna VPN-stillingaskjáinn, lesa vistaðar stillingar notandans eða ræsa eina þeirra. Það sem klient getur gert er að senda stillingarsnið fyrir notandann að setja upp, og nota síðan göngin sem verða til með venjulegum netköllum. Göng fyrir hvert app eru úthlutuð af MDM-þjóni með reglu á beiðni, ekki valin af appinu á keyrslutíma.

VPN-klient frá stórum söluaðila er ekki sönnun þess að aðgangurinn þinn geti sent það sama. Þessar heimildir eru sóttar fyrir hvern þróunaraðgang og farnar yfir, svo áætlunaráhættan liggur hjá Apple, ekki hjá sprettáætluninni þinni.

Skrifborðið nær lengra, en eignarhaldið er óbreytt

Windows er leyfandi tilfellið. Add-VpnConnection býr til færslu í símaskránni frá hækkaðri PowerShell-lotu, og rasdial tengir eða aftengir hana úr skriftu. App getur líka stýrt söluaðilaklient í gegnum skjalfesta skipanalínu hans. Að búa til sniðið er áfram stjórnvaldsaðgerð, því færslan býr í geymslu fyrir alla vélina.

macOS hagar sér eins með öðrum verkfærum. scutil --nc start og stop vinna á þjónustum sem þegar eru til, á meðan að búa til eina er kerfisstjórnunarverk. Að eiga ferlið á fartölvu gerir þig ekki að eiganda stillingarinnar.

Hvað á að byggja í staðinn

Ef raunverulega krafan er að appið þitt nái innra API er göngin sem notandinn keyrir þegar nægjanleg. Sendu venjulegar HTTPS-beiðnir, leyfðu kerfinu að velja leiðina, og hættu að reyna að stýra göngunum. Ef krafan er að aðeins umferð appsins þíns noti göngin skaltu biðja um VPN fyrir hvert app í gegnum stjórnunarleiðina, eða ljúka TLS inni í appinu gagnvart þjónustu sem er aðgengileg án þess.

Faldar API eru ekki styttri leið sem er þess virði. Þær breytast milli útgáfa, þær mistakast í appyfirferð, og bilanirnar sem þær framleiða líta út fyrir þann sem erfur kóðann eins og venjulegar netbilun. Samanburðurinn er ekki Android gegn iOS; hann er að eiga göng gegn því að biðja platfannina um að beina umferð, og aðeins hið fyrra er þitt að byggja.

Tengdir greinar