Apple Silicon Mac 上の iPhone 用 VPN アプリ:実際に動くのはどこまでか
Apple は今や Apple Silicon 上で iOS アプリのパケットトンネルプロバイダを動かすが、一度の成功した通信は可用性やアカウントの流れ、カバレッジを証明しない。
誰かが M シリーズの Mac に VPN クライアントの iPhone 版を入れ、アプリが開き、接続すると、チームはプラットフォームの疑問は片付いたと判断する。片付いてはいない。ここで「片付いた」と「単に動く」を分けるのは、ユーザーセッション内で動くアプリ拡張と、グローバルなコンテキストを持つシステム拡張の違いである。Apple は実際に「iOS アプリを Mac で」モデルにおけるパケットトンネルプロバイダをサポートし、その構成をネイティブ macOS や Mac Catalyst とは別に記載している。そのサポートの意味は、聞こえよりも狭い。構成が許可されているというだけで、特定のアプリがうまくやっているとか、トンネルが想定した範囲を覆うという意味ではない。
三つの構成、一つの表
Mac では三つの構成が重要であり、互いに置き換えられない。ネイティブ macOS クライアントはシステム拡張を搭載し、これはグローバルなコンテキストで動作し、誰かがログインする前から存在しうる。Apple Silicon 上の iPhone アプリはアプリ拡張を搭載し、これはユーザーのセッション内で動作し、セッションとともに終わる。Mac Catalyst はスマートフォン版と同じパッケージング系列に属するが、独自の配備行を持つ別のターゲットである。
以下の比較は Apple の配備ガイダンスのうち覚えておく価値のある部分で、ベンダーに電話する前に設計上の疑問の大半に答えてくれる。
| Arrangement | Provider packaging | Session context | Typical distribution |
|---|---|---|---|
| iOS app on Apple Silicon | App extension | User session only | Mac App Store |
| Native macOS client | System extension | Global, pre-login possible | Developer ID, notarised |
| Mac Catalyst | App extension | User session only | Mac App Store |
マーケティングのページより先にパッケージングの列を読むとよい。ログアウト時に何が起きるかを、どの機能一覧よりもはるかに確実に予測する。
成功した通信が一つの何を証明するか
「iOS アプリを Mac で」の行はシミュレータの小技ではなく、実際にサポートされた構成であり、だからこそ疑問は繰り返し戻ってくる。Mac App Store 経由の配布も受け継ぐため、公開元が Mac での提供を一度も有効にしていないアプリは、開発者向け文書がどれほど寛容でも現れない。
動作する接続は、一つのアプリからの一つの通信が宛先に届いたことを証明する。ブラウザのリゾルバ、除外されたアプリ、二つ目のアドレスファミリ、あるいは利用者がまだ到達を期待しているローカル機器を洗い出すものではない。パケットトンネルはルートと範囲が示すものだけを運び、その範囲はトンネルの存在ではなくアプリの設定から来る。
差はたいていアプリごとのカバレッジにある
すべてをルーティングするクライアントは説明も試験も簡単である。アプリの一覧を定めて含めるクライアントは、その規則がネイティブ Mac 版だけでなくこの配備でも守られる必要がある。ローカル機器への到達、分割トンネルの例外、スマートフォン版にはなかったメニューバー項目に依存するものは、同じ壁に突き当たる。
範囲は書面で求め、次に最初ではなく二つ目のケースを試験する。トンネル経由でブラウザがインターネットに出られることは誰でも示せる。
運用で両者が分かれるところ
セッションの寿命が最も鋭い違いであり、デモでは最も見えにくい。Apple はアプリ拡張をユーザーコンテキストで動作し、利用者がログアウトすると終わると記しており、ログイン画面まで再起動した Mac は誰かがサインインするまでトンネルを持たない。認証前に守る必要のあるマシンを要件が含むなら、プロファイルをどう書いてもスマートフォン版では満たせない。
その他は比較的化粧的な違いである。メニューバーでの表示、DNS の見せ方、トンネルが上がったままアプリが終了できるか。それらは実在する使い勝手の違いであり、アーキテクチャの決定ではないので、セッションの問いの後に順位づけるとよい。
決まった順序で決める
問いを意図的に並べる。無人でのカバレッジが第一、アプリごとの範囲が第二、配布が第三、インターフェースの磨き込みが最後である。第一に答えるのはシステム拡張を持つネイティブクライアントだけで、端末には MDM と管理プロファイルで届く。人がマシンの前に座り、サインインしてそのセッションのためにトンネルを望むなら、Apple Silicon 上の iOS アプリは妥当な答えである。
コミットする前に、公開元へ具体的な三つの質問をする。「iOS アプリを Mac で」の配備でパケットトンネルプロバイダはサポートされるか、アプリごとの規則はそこで適用されるか、ログアウト時には何が起きるか。三つすべてを一つの返信で答えるベンダーは自社の配備面を分かっており、最初の一つだけに答えるベンダーは Mac で開くアプリを説明しているにすぎない。
次に、実際にサポートするマシンで、実際に使うアカウントとゲートウェイを用いて検証する。一台のノート PC で試験用ゲートウェイにつながるスマートフォン版は証拠であって、配備ではない。