Ktoś instaluje wersję iPhone’ową klienta VPN na Macu z serii M, aplikacja się otwiera, łączy, a zespół uznaje, że kwestia platformy jest rozstrzygnięta. Nie jest. To, co tutaj oddziela rozstrzygnięte od ledwie działającego, to różnica między rozszerzeniem aplikacji w sesji użytkownika a rozszerzeniem systemowym z kontekstem globalnym. Apple rzeczywiście obsługuje dostawców tuneli pakietów w modelu aplikacji iOS na Macu i wymienia ten układ osobno od natywnego macOS i Mac Catalyst. Znaczenie tego wsparcia jest węższe, niż brzmi. Mówi ono, że układ jest dozwolony, a nie że dana aplikacja robi to dobrze czy że tunel obejmuje to, co zakładacie.

Trzy układy, jedna tabela

Na Macu znaczenie mają trzy układy i nie są one wymienne. Natywny klient macOS dostarcza rozszerzenie systemowe, które działa w kontekście globalnym i może być obecne, zanim ktokolwiek się zaloguje. Aplikacja iPhone na Apple Silicon dostarcza rozszerzenie aplikacji, które działa w sesji użytkownika i kończy się razem z nią. Mac Catalyst należy do tej samej rodziny pakowania co wersja telefoniczna, ale jest innym celem z własnym wierszem wdrożenia.

Poniższe porównanie to ta część wytycznych wdrożeniowych Apple, którą warto zapamiętać, bo odpowiada na większość pytań projektowych przed rozmową z dostawcą.

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

Przeczytajcie kolumnę pakowania przed stroną marketingową: znacznie pewniej niż jakakolwiek lista funkcji przewiduje ona, co dzieje się przy wylogowaniu.

Co dowodzi jedno udane żądanie

Wiersz aplikacji iOS na Macu to naprawdę obsługiwany układ, a nie sztuczka emulatora, dlatego pytanie wciąż wraca. Dziedziczy też dystrybucję przez Mac App Store, więc aplikacja, której wydawca nigdy nie włączył dostępności na Maca, nie pojawi się, niezależnie od tego, jak pobłażliwa jest dokumentacja dla deweloperów.

Działające połączenie dowodzi, że jedno żądanie z jednej aplikacji dotarło do celu. Nie inwentaryzuje resolvera przeglądarki, wykluczonych aplikacji, drugiej rodziny adresów ani urządzeń lokalnych, do których użytkownik nadal oczekuje dotarcia. Tunel pakietów przenosi to, co mówią jego trasy i zasięg, a ten zasięg pochodzi z konfiguracji aplikacji, nie z istnienia tunelu.

Luka to zwykle pokrycie na aplikację

Klienta, który kieruje wszystko, łatwo opisać i łatwo przetestować. Ten, który obejmuje ustaloną listę aplikacji, wymaga, by te reguły były respektowane w tym wdrożeniu, nie tylko w natywnej wersji na Maca. Dostęp do urządzeń lokalnych, wyjątki tunelu dzielonego i wszystko, co zależy od elementu paska menu, którego wersja telefoniczna nigdy nie miała, trafia na tę samą ścianę.

Poproście o zasięg na piśmie, a potem przetestujcie drugi przypadek, a nie pierwszy. Każdy potrafi pokazać przeglądarkę docierającą do internetu przez tunel.

Gdzie oba różnią się w eksploatacji

Czas trwania sesji to najostrzejsza różnica i najmniej widoczna w demonstracji. Apple dokumentuje rozszerzenia aplikacji jako działające w kontekście użytkownika i kończące się, gdy użytkownik się wyloguje, więc Mac, który uruchamia się do okna logowania, nie ma tunelu, dopóki ktoś się nie zaloguje. Jeśli wymaganie obejmuje maszynę, która ma być chroniona przed uwierzytelnieniem, wersja telefoniczna nie może go spełnić, niezależnie od tego, jak napisano profil.

Wszystko inne jest względnie kosmetyczne: obecność na pasku menu, sposób wyświetlania DNS, czy aplikacja może się zamknąć, gdy tunel pozostaje podniesiony. To realne różnice w użyteczności, a nie decyzje architektoniczne, więc uszeregujcie je po pytaniu o sesję.

Decydujcie w stałej kolejności

Uporządkujcie pytania celowo: pokrycie bez nadzoru pierwsze, zasięg na aplikację drugie, dystrybucja trzecie, dopracowanie interfejsu ostatnie. Na pierwsze odpowiada tylko natywny klient z rozszerzeniem systemowym, a do urządzenia dociera on przez MDM i profil zarządzany. Aplikacja iOS na Apple Silicon to rozsądna odpowiedź, gdy ktoś siedzi przy maszynie, loguje się i chce tunelu na tę sesję.

Przed zobowiązaniem zadajcie wydawcy trzy konkretne pytania. Czy dostawca tuneli pakietów jest obsługiwany we wdrożeniu aplikacji iOS na Macu, czy obowiązują tam reguły na aplikację i co dzieje się przy wylogowaniu. Dostawca, który odpowie na wszystkie trzy w jednej wiadomości, zna swoją powierzchnię wdrożenia; ten, kto odpowiada tylko na pierwsze, opisuje aplikację, która otwiera się na Macu.

Potem zweryfikujcie na maszynie, którą będziecie wspierać, z kontem i bramą, których naprawdę użyjecie. Wersja telefoniczna łącząca się z bramą testową na jednym laptopie jest dowodem, a nie wdrożeniem.

Powiązane artykuły