Хоёр тэс өөр ажил программчлагдсан VPN гэсэн нэр дор ордог, тэдгээрийн зөвхөн нэг нь хоёр мобайл платформын аль нэг дээр жирийн апп-д нээлттэй. Эхнийх нь хэрэглэгчийн өмнө нь хадгалсан профайлыг асаах; хоёр дахь нь өөрийн процесс дотор туннель барих. Android хоёр дахийг VpnService-ээр өгдөг, iOS хоёр дахийг Network Extension эрхээр өгдөг бол эхнийх нь систем, төхөөрөмжийн эзэн эсвэл MDM серверт үлддэг. Танд үнэхээр аль нь хэрэгтэйг тодруулах нь ихэвчлэн төслийг жижигрүүлдэг.

Нэг нэр хуваалцсан хоёр ажил

Хадгалсан профайлыг идэвхжүүлэх гэдэг нь одоо байгаа туннельд босохыг хэлэх: хост, итгэмжлэл, протокол, бүгд хэрэглэгчийн харж болох газарт аль хэдийн тохируулагдсан. Туннель барих гэдэг нь таны код интерфейс, пакетын давталт, протоколыг эзэмшинэ гэсэн үг. Бүтээгдэхүүний жагсаалтад тэд ижил харагдах бөгөөд бараг ямар ч хэрэгжүүлэлтийг хуваалцдаггүй.

Аль ч мобайл платформ эхнийхийг SDK апп-д нээдэггүй. Хэрэглэгч юу ч хийхгүйгээр гарч ирэх холболтыг хортой програмаас ялгах боломжгүй тул хоёр систем трафик зөөдөг аливаа апп-ийн өмнө зөвшөөрлийн хаалга тавьдаг.

Android: зөвшөөрлийн хаалга, профайлын API байхгүй

VpnService Android 4.0-ээс хойш оршиж, апп-д tun интерфейс үүсгэх, дараа нь пакет унших, бичих боломж олгодог. Үйлчилгээг BIND_VPN_SERVICE-оор зарлах ёстой бөгөөд VpnService.prepare() хэрэглэгчээс зөвшөөрөл хүсэх системийн диалог үүсгэдэг. Платформын жишээ ToyVpn нь зорьсон хэлбэрийн хамгийн тод мэдэгдэл юм: таны код интерфейс болон түүгээр урсах бүхнийг эзэмшинэ.

Түүний хийдэггүй зүйл бол системийн VPN тохиргооны дэлгэцэд бичлэг нэмэх. Үүнд нээлттэй API байхгүй бөгөөд Тохиргоо апп өөрийн профайлуудыг жирийн апп хүрч чадахгүй санд хадгалдаг. Жирийн апп-аас нуугдмал классууд руу дуудах нь систем хэзээ ч жагсаадаггүй профайлуудыг үүсгэдэг, иймээс нэг бүтээцэд ажиллаж байгаа мэт санагдсан код дараагийн бүтээцэд чимээгүйхэн ажиллахаа болино.

Удирдлагатай зам тусдаа. Төхөөрөмж эсвэл профайлын эзэн төхөөрөмжийн бодлогын API-аар байнга асаалттай VPN багцыг томилж болох бөгөөд аж ахуйн нэгжийн хэрэгсэл хэрэглэгчийн дараа нь зөвшөөрөх профайлыг илгээж болно. Энэ нь төхөөрөмжийн удирдлагын эрх мэдэл, апп суулгах үед хүсдэг зөвшөөрөл биш. Хэрэв таны харилцагч байгууллага бол төлөвлөх ёстой зам нь энэ; харилцагч дэлгүүрээс суулгадаг хүн бол энэ огт боломжгүй.

iOS: эрх бол хил хязгаар

iOS ижил ажлыг өөрөөр хуваадаг. VPN клиент Network Extension хүрээнд пакет туннелийн нийлүүлэгч эсвэл апп прокси хэрэгжүүлдэг бөгөөд холбогдох эрхийг хөгжүүлэгчийн бүртгэлд олгох ёстой. Энгийн тохиолдолд NEVPNManager-ээр хувийн VPN тохиргоо байдаг бөгөөд энэ нь ижил зөвшөөрлийн загвар дотор ажилладаг. Apple бүх гадаргууг Network Extension лавлагаанд баримтжуулдаг бөгөөд ажлын хүрээг тодорхойлохын өмнө унших нь зүйтэй.

VPN тохиргооны дэлгэц нээх, хэрэглэгчийн хадгалсан тохиргоог унших эсвэл тэдгээрийн аль нэгийг эхлүүлэх дэмжигдсэн арга байхгүй. Клиент хийж чадах зүйл бол суулгах тохиргооны профайл илгээх, дараа нь үүссэн туннелийг энгийн сүлжээний дуудлагаар ашиглах юм. Апп тус бүрийн туннелийг MDM сервер шаардлагын дүрмээр томилдог, апп ажиллах үед сонгодоггүй.

Том нийлүүлэгчийн VPN клиент таны бүртгэл ижил зүйлийг илгээж чадна гэсэн баталгаа биш. Тэдгээр эрхийг хөгжүүлэгчийн бүртгэл бүрээр хүсч, хянадаг тул хуваарийн эрсдэл Apple-д байна, таны спринт төлөвлөгөөнд биш.

Desktop илүү хол хүрдэг, гэхдээ эзэмшил өөрчлөгдөхгүй

Windows бол зөвшөөрөмтгий тохиолдол. Add-VpnConnection өргөгдсөн PowerShell сессээс утасны дэвтрийн бичлэг үүсгэдэг, rasdial скриптээс түүнийг холбож эсвэл салгадаг. Апп нийлүүлэгчийн клиентийг түүний баримтжуулсан командын мөрөөр жолоодож ч болно. Профайл үүсгэх нь бүх машины санд амьдардаг тул админ үйлдэл хэвээр байна.

macOS бусад хэрэгслүүдтэй ижил ааштай. scutil --nc start, stop аль хэдийн байгаа үйлчилгээн дээр ажилладаг бол нэгийг үүсгэх нь системийн удирдлагын ажил. Зөөврийн компьютер дээр процессыг эзэмших нь таныг тохиргооны эзэн болгохгүй.

Оронд нь юу барих вэ

Хэрэв жинхэнэ шаардлага нь таны апп дотоод API-д хүрэх юм бол хэрэглэгчийн аль хэдийн ажиллуулж байгаа туннель хангалттай. Энгийн HTTPS хүсэлт илгээж, замыг систем сонгохыг зөвшөөр, туннелийг хянах оролдлогоо зогсоо. Хэрэв шаардлага нь зөвхөн таны апп-ийн трафик туннелийг ашиглах юм бол удирдлагын сувгаар апп тус бүрийн VPN хүс, эсвэл апп дотор түүнгүйгээр хүрч болох үйлчилгээний эсрэг TLS-ийг дуусга.

Нуугдмал API нь авах үнэ цэнэтэй богино зам биш. Тэд хувилбаруудын хооронд өөрчлөгддөг, апп-ийн хяналтад унадаг, тэдний үүсгэдэг алдаа нь кодыг өвлөсөн хүнд энгийн сүлжээний алдаа мэт харагддаг. Харьцуулалт нь Android эсрэг iOS биш; энэ нь туннелийг эзэмших ба платформоос трафик чиглүүлэхийг хүсэх хоорондын ялгаа бөгөөд зөвхөн эхнийхийг нь та барих ёстой.

Холбоотой нийтлэлүүд