Nima uchun ilova Android yoki iOS'da saqlangan VPN profilini yoqa olmaydi
O'z tunnellingizni qurish va saqlangan profilni yoqish ikki xil ish. Android, iOS va ish stoli ilovaga aslida nimaga ruxsat berishini solishtiring.
Ikki butunlay boshqa ish dasturiy VPN nomi ostida turadi, va ulardan faqat bittasi ikkala mobil platformada ham oddiy ilova uchun mavjud. Birinchisi foydalanuvchi allaqachon saqlagan profilni yoqish; ikkinchisi o'z jarayoningiz ichida tunnel qurish. Android ikkinchisini VpnService orqali beradi, iOS esa ikkinchisini Network Extension huquqi orqali beradi, birinchisi esa tizim, qurilma egasi yoki MDM serverida qoladi. Sizga aslida qaysi biri kerakligini aniqlash odatda loyihani kichraytiradi.
Bir nomni bo'lishadigan ikki ish
Saqlangan profilni faollashtirish mavjud tunnelga yuqoriga chiqishni aytish demakdir: xost, hisob ma'lumotlari, protokol, barchasi foydalanuvchi ko'radigan joyda allaqachon sozlangan. Tunnel qurish kodingiz interfeys, paketlar sikli va protokolga egalik qilishini bildiradi. Mahsulot ro'yxatida ular o'xshash ko'rinadi va deyarli hech qanday amalga oshirishni bo'lishmaydi.
Hech bir mobil platforma birinchisini SDK ilovasiga ochmaydi. Foydalanuvchi hech narsa qilmasdan paydo bo'ladigan ulanishni zararli dasturdan ajratib bo'lmaydi, shuning uchun ikkala tizim ham trafik tashuvchi har qanday ilova oldiga rozilik darvozasini qo'yadi.
Android: rozilik darvozasi va profil API yo'q
VpnService Android 4.0 dan beri mavjud va ilovaga tun interfeysini yaratish, keyin paketlarni o'qish va yozish imkonini beradi. Xizmat BIND_VPN_SERVICE bilan e'lon qilinishi kerak, VpnService.prepare() esa foydalanuvchidan ruxsat so'raydigan tizim muloqot oynasini yaratadi. Platforma namunasi ToyVpn - mo'ljallangan shaklning eng aniq bayoni: kodingiz interfeys va u orqali o'tadigan hamma narsaga egalik qiladi.
U qilmaydigan narsa - tizimning VPN sozlamalari ekraniga yozuv qo'shish. Buning uchun ochiq API yo'q, Sozlamalar ilovasi esa profillarini oddiy ilova yeta olmaydigan omborda saqlaydi. Oddiy ilovadan yashirin sinflarga qilingan chaqiruvlar tizim hech qachon ro'yxatga olmaydigan profillar yaratadi, shuning uchun bir qurilishda ishlagandek ko'ringan kod keyingisida jimgina ishlashdan to'xtaydi.
Boshqariladigan yo'l alohida. Qurilma yoki profil egasi qurilma siyosati API lari orqali doim yoniq VPN paketini tayinlashi mumkin, korporativ vosita esa foydalanuvchi keyin tasdiqlaydigan profilni yuborishi mumkin. Bu qurilmani boshqarish vakolati, ilova o'rnatishda so'raydigan ruxsat emas. Agar mijozingiz tashkilot bo'lsa, rejalashtirish kerak bo'lgan yo'l shu; mijozingiz do'kondan o'rnatuvchi shaxs bo'lsa, bu umuman mavjud emas.
iOS: huquq - chegara
iOS xuddi shu ishni boshqacha bo'ladi. VPN mijozi Network Extension doirasida paket tunnel provayderi yoki ilova proksisini amalga oshiradi, tegishli huquq esa ishlab chiqaruvchi hisobiga berilishi kerak. Oddiy holat uchun NEVPNManager orqali shaxsiy VPN konfiguratsiyasi mavjud va u ham xuddi shu ruxsat modelida ishlaydi. Apple butun sirtni Network Extension ma'lumotnomasida hujjatlashtiradi, ish hajmini belgilashdan oldin uni o'qishga arziydi.
VPN sozlamalari ekranini ochish, foydalanuvchining saqlangan konfiguratsiyalarini o'qish yoki ulardan birini boshlash uchun qo'llab-quvvatlanadigan yo'l yo'q. Mijoz qila oladigan narsa - o'rnatish uchun konfiguratsiya profili yuborish, keyin hosil bo'lgan tunneldan oddiy tarmoq chaqiruvlari orqali foydalanish. Har bir ilova uchun tunnelni MDM serveri talab bo'yicha qoida orqali tayinlaydi, ish vaqtida ilova tanlamaydi.
Yirik yetkazib beruvchining VPN mijozi hisobingiz xuddi shu narsani yubora olishining dalili emas. Bu huquqlar har bir ishlab chiqaruvchi hisobi uchun so'raladi va ko'rib chiqiladi, shuning uchun jadval xavfi Apple da, sizning sprint rejangizda emas.
Ish stoli uzoqroqqa yetadi, lekin egalik o'zgarmaydi
Windows - ruxsat beruvchi holat. Add-VpnConnection ko'tarilgan PowerShell seansidan telefon kitobi yozuvini yaratadi, rasdial esa uni skriptdan ulaydi yoki uzadi. Ilova yetkazib beruvchi mijozini uning hujjatlashtirilgan buyruq satri orqali ham boshqarishi mumkin. Profil yaratish hali ham ma'muriy harakat, chunki yozuv butun mashina omborida yashaydi.
macOS boshqa vositalar bilan xuddi shunday yo'l tutadi. scutil --nc start va stop allaqachon mavjud xizmatlarda ishlaydi, bittasini yaratish esa tizim ma'muriyati vazifasi. Noutbukda jarayonga egalik qilish sizni konfiguratsiya egasiga aylantirmaydi.
Buning o'rniga nima qurish kerak
Agar haqiqiy talab ilovangiz ichki API ga yetishi bo'lsa, foydalanuvchi allaqachon ishlatayotgan tunnel yetarli. Oddiy HTTPS so'rovlarini yuboring, yo'lni tizim tanlasin, va tunnelni boshqarishga urinishni to'xtating. Agar talab faqat ilovangiz trafigi tunneldan foydalanishi bo'lsa, boshqaruv kanali orqali har bir ilova uchun VPN so'rang, yoki ilova ichida usiz yetib bo'ladigan xizmatga qarshi TLS ni tugating.
Yashirin API lar - olishga arziydigan qisqa yo'l emas. Ular versiyalar orasida o'zgaradi, ilova ko'rikdan o'tmaydi, va ular keltirib chiqaradigan nosozliklar kodni meros olgan kishiga oddiy tarmoq nosozliklaridek ko'rinadi. Taqqoslash Android va iOS o'rtasida emas; bu tunnelga egalik qilish platformadan trafikni yo'naltirishni so'rashga qarshi, va faqat birinchisini siz qurishingiz kerak.