Məhsul meneceri şirkət VPN-ni işə salan düymə istəyir və tələb sadə görünür. iOS-da bu kiçik funksiya deyil; açıq müqavilədən kənarda dayanır və hər hiylə ya yoxlamadan keçmir, ya da növbəti buraxılışda sınır. Tələbi platformanın həqiqətən icazə verdiklərinə görə nəzərdən keçirin və dizayn demək olar ki, özünü yazacaq. Tətbiq VPN konfiqurasiyasına sahib ola və onu işə sala bilər. Tətbiq sistem açarına çata bilmir, yaratmadığı profilin vəziyyətini oxuya bilmir və istifadəçini öz iradəsinə qarşı bağlı saxlaya bilmir.

İstifadəçinin nəzərdə tutduğu üç şeydən başlayın

API-ləri ayırmadan əvvəl mənaları ayırın. Bəzən istifadəçi tətbiqinizin tunelinin qoşulmasını istəyir, bəzən başqasının quraşdırdığı profil üçün Parametrlərdəki açarı çevirmək istəyir, bəzən də telefonun tunelsiz gəzməyə qadir olmamasını istəyir. Bunlar üç fərqli mexanizmə uyğun gəlir və onlardan yalnız birincisi adi tətbiq üçün açıqdır.

İkinci məna Stack Overflow suallarını doğuran mənadır və onun dəstəklənən cavabı yoxdur. Parametrlərdəki açar istifadəçiyə, idarə olunan cihazlarda isə profilə aiddir. Heç bir açıq API VPN konfiqurasiyalarını sadalamır, sistem tunelinin işlək olub-olmadığını bildirmir və ya onu çevirmir.

Tətbiq həqiqətən nə yarada bilər

NetworkExtension tətbiqə NEVPNManager vasitəsilə öz konfiqurasiyasını verir. Personal VPN hüququ və istifadəçinin razılığı ilə tətbiq Parametrlərdə öz adı ilə görünən konfiqurasiya saxlayır və həmin bir bağlantını işə sala və ya dayandıra bilər. Bu, real və yoxlanıla bilən bir qabiliyyətdir və həm də bütün əhatə dairəsidir: menecer yalnız öz yaratdığını oxuyur və yazır.

Hüquq avtomatik deyil. Onu Apple-dan tələb edir və tətbiqin ümumiyyətlə tunelə niyə ehtiyacı olduğunu əsaslandırırsınız; yeganə məqsədi başqasının profilini işə salmaq olan müştərinin yaxşı cavabı yoxdur. Paket tunel provayderləri eyni qaydaya fərqli siniflə əməl edir: NETunnelProviderManager tətbiqin özünün quraşdırdığı provayder əsaslı konfiqurasiyalara sahibdir. Yolların heç biri MDM-in çatdırdığı profilə çatmır.

Razılıq saxlama anında da tətbiq olunur. Konfiqurasiya yazmaq istifadəçidən təsdiq istəyir və bu təsdiq rahatlıq üçün tətbiqin bastıra biləcəyi bir şey deyil.

Vəziyyəti oxumaq eyni divara çırpılır

Status idarəetmədən daha mehriban görünür və eyni dərəcədə qapalıdır. NEVPNStatus tətbiqin öz konfiqurasiyası üçün etibarsız, əlaqə kəsilmiş, qoşulur, qoşulub, yenidən təsdiqlənir və ya ayrılır vəziyyətlərini bildirir və hər dəyişiklikdə bildiriş göndərilir. İdarəetmə profili ilə quraşdırılmış tunel barədə heç nə demir və dəstək masasının əsl görmək istədiyi vəziyyət elə budur.

Şəbəkə yolu monitorinqi və interfeys dəyişiklikləri dizayn baxışlarında əvəzedici kimi təklif olunur. Onlar tətbiqin trafikinin getdiyi yolu təsvir edir, bu yol VPN vəziyyəti ilə əlaqəsiz səbəblərdən dəyişir və onları VPN göstəricisi kimi işlətmək hər iki istiqamətdə yalan danışan interfeys verir.

On Demand və Always On əsl qollardır

Dəstəklənən qollar tətbiqdə deyil, profildə yaşayır. On Demand qaydaları sistemə nə vaxt qoşulacağını deyir: əməliyyatlarla sıralanmış şərtlər siyahısı, kodunuzla deyil, əməliyyat sistemi ilə qiymətləndirilir. Hər hansı interfeysdə qoşulan qayda heç bir tətbiqə nəzarət vermədən həmişə-qoşulu hissi yaradır.

Always On VPN icra mexanizmidir və nəzarətlə bağlıdır. Nəzarət altındakı cihazda MDM tuneli açıq saxlayan profil quraşdırır; nəzarətsiz şəxsi telefonda eyni açarlar eyni davranışı vermir. Bu asimmetriya qəsdəndir və heç bir faydalı yük açarı kombinasiyası onu aradan qaldırmır. Tələb həqiqətən VPN-in işlək olmasıdırsa, tələb əslində cihazın idarə olunmasıdır.

İkisinin arasında daha zəif qohum dayanır: istifadəçi ayrıldıqdan sonra yenidən qoşulan qayda. Qayda növbəti dəfə qiymətləndiriləndə qoşulur, bu isə dərhal demək deyil, və qəsdən ayrılan istifadəçi fərqi hiss edəcək. İnterfeysi kilid vəd etmək əvəzinə bu boşluq ətrafında dizayn edin.

Dəstəklənən yolu göndərin

Dörd sual heç bir kod yox ikən mexanizmi həll edir: cihaz kimindir, nəzarət altındadırmı, tuneli hansı müştəri bitirir və profil haradan gəlir. Bunlardan hər hansı biri bilinmirsə, funksiya tələbi qiymətləndirməyə hazır deyil.

Sistem VPN-nə toxunan özəl API demo keçər və yoxlamadan keçməz, başqa yolla göndərilsə, növbəti iOS buraxılışında sınar. Bir açar üçün bu mübadilənin dəyərli variantı yoxdur.

İdarəetmə telemetriyası ayrı kanaldır: profilin quraşdırıldığını və cihazın uyğun olub-olmadığını bildirir, bu isə hər tətbiq üçün idarəetmə səthi deyil, hesabatdır. Axını hər yenilənmədən sonra real cihazda yoxlayın, çünki dəstəklənən davranış OS-də yaşayır və OS hərəkət edir.

Əlaqəli məqalələr