Cineva instalează versiunea pentru iPhone a unui client VPN pe un Mac din seria M, aceasta se deschide, se conectează, iar echipa decide că întrebarea despre platformă este lămurită. Nu este. Ceea ce desparte aici lămurit de doar funcțional este diferența dintre o extensie de aplicație în interiorul unei sesiuni de utilizator și o extensie de sistem cu un context global. Apple acceptă într-adevăr furnizori de tuneluri de pachete în modelul aplicații iOS pe Mac și listează această configurație separat de macOS nativ și de Mac Catalyst. Sensul acelui suport este mai îngust decât sună. El spune că configurația este permisă, nu că o anumită aplicație o face bine, nici că tunelul acoperă ceea ce presupuneți.

Trei configurații, un tabel

Trei configurații contează pe un Mac și nu sunt interschimbabile. Un client macOS nativ livrează o extensie de sistem, care rulează într-un context global și poate fi prezentă înainte ca cineva să se autentifice. O aplicație iPhone pe Apple Silicon livrează o extensie de aplicație, care rulează în sesiunea utilizatorului și se încheie cu ea. Mac Catalyst se află în aceeași familie de ambalare ca versiunea pentru telefon, dar este o altă țintă, cu propriul rând de implementare.

Comparația de mai jos este partea din îndrumările de implementare ale Apple care merită memorată, pentru că răspunde celor mai multe întrebări de proiectare înainte de un apel la un furnizor.

ArrangementProvider packagingSession contextTypical distribution
iOS app on Apple SiliconApp extensionUser session onlyMac App Store
Native macOS clientSystem extensionGlobal, pre-login possibleDeveloper ID, notarised
Mac CatalystApp extensionUser session onlyMac App Store

Citiți coloana despre ambalare înaintea paginii de marketing: prevede ce se întâmplă la deconectare mult mai fiabil decât orice listă de funcții.

Ce dovedește o singură cerere reușită

Rândul aplicații iOS pe Mac este o configurație cu adevărat acceptată, nu un truc de simulator, și de aceea întrebarea revine mereu. Moștenește și distribuția prin Mac App Store, așa că o aplicație al cărei editor nu a activat niciodată disponibilitatea pentru Mac nu va apărea, oricât de permisivă ar fi documentația pentru dezvoltatori.

O conexiune funcțională dovedește că o cerere dintr-o aplicație a ajuns la destinația ei. Nu inventariază resolverul browserului, aplicațiile excluse, a doua familie de adrese sau dispozitivele locale la care utilizatorul încă se așteaptă să ajungă. Un tunel de pachete transportă ceea ce spun rutele și amploarea lui, iar acea amploare vine din configurația aplicației, nu din existența tunelului.

Golul este de obicei acoperirea pe aplicație

Un client care direcționează tot este ușor de descris și ușor de testat. Unul care include o listă definită de aplicații are nevoie ca acele reguli să fie respectate în această implementare, nu doar în versiunea nativă pentru Mac. Accesul la dispozitive locale, excepțiile de tunel divizat și tot ce depinde de un element din bara de meniu pe care versiunea pentru telefon nu l-a avut niciodată se lovesc de același zid.

Cereți amploarea în scris, apoi testați al doilea caz, nu primul. Oricine poate arăta un browser care ajunge la internet prin tunel.

Unde diverg cele două în exploatare

Durata sesiunii este diferența cea mai ascuțită și cea mai puțin vizibilă într-o demonstrație. Apple documentează extensiile de aplicație ca rulând într-un context de utilizator și încheindu-se când utilizatorul se deconectează, așa că un Mac care pornește până la o fereastră de autentificare nu are tunel până când cineva nu se conectează. Dacă cerința acoperă o mașină care trebuie protejată înainte de autentificare, versiunea pentru telefon nu o poate satisface, oricum ar fi scris profilul.

Tot restul este relativ cosmetic: o prezență în bara de meniu, cum este afișat DNS, dacă aplicația poate ieși în timp ce tunelul rămâne ridicat. Sunt diferențe reale de utilizare și nu decizii de arhitectură, așa că ierarhizați-le după întrebarea despre sesiune.

Decideți într-o ordine fixă

Ordonați întrebările deliberat: acoperire nesupravegheată prima, amploare pe aplicație a doua, distribuție a treia, finisarea interfeței ultima. Doar un client nativ cu extensie de sistem răspunde la prima și ajunge la dispozitiv prin MDM plus un profil gestionat. O aplicație iOS pe Apple Silicon este un răspuns rezonabil când o persoană stă la mașină, se autentifică și vrea tunelul pentru acea sesiune.

Înainte de angajament, puneți editorului trei întrebări concrete. Furnizorul de tuneluri de pachete este acceptat în implementarea aplicații iOS pe Mac, se aplică acolo reguli pe aplicație și ce se întâmplă la deconectare. Un furnizor care răspunde la toate trei într-un singur mesaj își cunoaște suprafața de implementare; unul care răspunde doar la prima descrie o aplicație care se deschide pe un Mac.

Apoi verificați pe mașina pe care o veți susține, cu contul și gateway-ul pe care le veți folosi cu adevărat. O versiune pentru telefon conectată la un gateway de test pe un singur laptop este o dovadă, nu o implementare.

Articole similare