Għaliex app ma tistax tixgħel profil VPN salvat fuq Android jew iOS
Bini ta’ mina tiegħek u tixgħel profil salvat huma żewġ xogħlijiet differenti. Qabbel x’jagħtu Android, iOS u d-desktop lill-app fil-verità.
Żewġ xogħlijiet differenti ħafna jitqiegħdu taħt l-isem VPN ipprogrammat, u wieħed biss minnhom huwa disponibbli għal app ordinarja fuq waħda miż-żewġ pjattaformi mobbli. L-ewwel huwa li tixgħel profil li l-utent diġà salva; it-tieni huwa li tibni mina fil-proċess tiegħek stess. Android jagħtik it-tieni permezz ta’ VpnService u iOS jagħtik it-tieni permezz tal-jedd Network Extension, filwaqt li l-ewwel jibqa’ mas-sistema, ma’ sid l-apparat jew ma’ server MDM. Li tifhem liema wieħed tassew għandek bżonn is-soltu jagħmel il-proġett iżgħar.
Żewġ xogħlijiet li jaqsmu isem
Attivazzjoni ta’ profil salvat tfisser li tgħid lil mina eżistenti biex titla’: host, kredenzjali, protokoll, kollha diġà kkonfigurati f’xi mkien li l-utent jista’ jara. Bini ta’ mina jfisser li l-kodiċi tiegħek jippossjedi l-interface, il-linja tal-pakketti u l-protokoll. Jidhru simili f’backlog tal-prodott u kważi ma jaqsmu l-ebda implimentazzjoni.
L-ebda pjattaforma mobbli ma tesponi l-ewwel waħda lil app SDK. Konnessjoni li tidher mingħajr l-utent jagħmel xejn ma tistax tiġi distinta minn malware, għalhekk iż-żewġ sistemi jqiegħdu bieb tal-kunsens quddiem kull app li ġġorr traffiku.
Android: bieb tal-kunsens, u l-ebda API tal-profil
VpnService teżisti mill-Android 4.0 u tħalli app toħloq interface tun, imbagħad taqra u tikteb pakketti. Is-servizz irid jiġi ddikjarat b’BIND_VPN_SERVICE, u VpnService.prepare() tipproduċi d-djalogu tas-sistema li jitlob lill-utent jippermettiha. Il-kampjun tal-pjattaforma, ToyVpn, huwa l-aktar stqarrija ċara tal-forma maħsuba: il-kodiċi tiegħek jippossjedi l-interface u kull ma jgħaddi minnha.
Dak li ma tagħmilx huwa li żżid entrata fl-iskrin tas-settings tal-VPN tas-sistema. M’hemmx API pubblika għal dan, u l-app Settings iżżomm il-profil tagħha f’maħżen li app ordinarja ma tistax tilħaq. Sejħiet lill-klassijiet moħbija minn applikazzjoni normali jipproduċu profili li s-sistema qatt ma telenka, għalhekk kodiċi li deher jaħdem f’build wieħed jieqaf jaħdem bil-kwiet f’dak li jmiss.
It-triq amministrata hija separata. Sid tal-apparat jew sid tal-profil jista’ jaħtar pakkett VPN dejjem mixgħul permezz tal-API tal-politika tal-apparat, u għodda korporattiva tista’ tibgħat profil li l-utent imbagħad japprova. Din hija awtorità ta’ ġestjoni tal-apparat, mhux permess li app titlob waqt l-installazzjoni. Jekk il-klijent tiegħek huwa organizzazzjoni, din hija t-triq li għaliha għandek tippjana; jekk il-klijent tiegħek huwa persuna li tinstalla minn ħanut, din mhija disponibbli xejn.
iOS: il-jedd huwa l-fruntiera
iOS taqsam l-istess xogħol b’mod differenti. Klijent VPN jimplimenta fornitur tal-mina tal-pakketti jew prokura tal-app fi ħdan il-qafas Network Extension, u l-jedd korrispondenti għandu jingħata lill-kont tal-iżviluppatur. Konfigurazzjoni VPN personali permezz ta’ NEVPNManager teżisti għall-każ aktar sempliċi, u għadha taħdem fl-istess mudell tal-permessi. Apple tiddokumenta l-wiċċ kollu fir-referenza Network Extension, li jiswa li tinqara qabel ma tiddefinixxi l-ambitu tax-xogħol.
M’hemmx mod appoġġat biex tiftaħ l-iskrin tas-settings tal-VPN, taqra l-konfigurazzjonijiet salvati tal-utent jew tibda waħda minnhom. Dak li klijent jista’ jagħmel huwa li jibgħat profil ta’ konfigurazzjoni biex l-utent jinstallah, u mbagħad juża l-mina li tirriżulta permezz ta’ sejħiet tan-netwerk ordinarji. It-tunneling għal kull app jiġi assenjat minn server MDM permezz ta’ regola fuq talba, mhux magħżul mill-app fil-ħin tal-eżekuzzjoni.
Klijent VPN minn fornitur kbir mhuwiex prova li l-kont tiegħek jista’ jibgħat l-istess ħaġa. Dawk il-jeddijiet huma mitluba għal kull kont tal-iżviluppatur u jiġu riveduti, għalhekk ir-riskju tal-iskeda jinsab għand Apple, mhux fil-pjan tal-sprint tiegħek.
Id-desktop jasal aktar ’il bogħod, iżda s-sjieda ma tinbidilx
Windows huwa l-każ permissiv. Add-VpnConnection toħloq entrata fil-ktieb tat-telefon minn sessjoni PowerShell elevata, u rasdial tqabbadha jew tiskonnettjaha minn skript. App tista’ wkoll tmexxi klijent tal-fornitur permezz tal-linja tal-kmand dokumentata tiegħu. Il-ħolqien tal-profil għadu azzjoni amministrattiva, għax l-entrata tgħix f’maħżen tal-magna kollha.
macOS iġib ruħu bl-istess mod b’għodod differenti. scutil --nc start u stop joperaw fuq servizzi li diġà jeżistu, filwaqt li l-ħolqien ta’ wieħed huwa kompitu ta’ amministrazzjoni tas-sistema. Li tippossjedi l-proċess fuq laptop ma jagħmlekx sid tal-konfigurazzjoni.
X’għandek tibni minflok
Jekk ir-rekwiżit veru huwa li l-app tiegħek tasal għal API interna, il-mina li l-utent diġà qed iħaddem biżżejjed. Ibghat talbiet HTTPS ordinarji, ħalli s-sistema tagħżel it-triq, u waqaf milli tipprova tikkontrolla l-mina. Jekk ir-rekwiżit huwa li t-traffiku tal-app tiegħek biss juża l-mina, itlob VPN għal kull app permezz tal-kanal tal-ġestjoni, jew temm TLS ġewwa l-app kontra servizz li jintlaħaq mingħajrha.
API moħbija mhumiex shortcut li jiswa li tieħu. Jinbidlu bejn ħarġiet, ifallu fir-reviżjoni tal-app, u l-fallimenti li jipproduċu jidhru lil min jiret il-kodiċi bħala fallimenti tan-netwerk ordinarji. Il-paragun mhuwiex Android kontra iOS; huwa li tippossjedi mina kontra li titlob lill-pjattaforma tidderieġi t-traffiku, u l-ewwel waħda biss hija tiegħek biex tibniha.