仕事用アプリがVPNを要求する?まずこの三つの層を確認する
VPNを求める仕事用アプリの失敗は、プライベート名、アプリのポリシー、管理されたロックダウンのいずれかが原因かもしれません。再接続の前に、誰が要求しているのかを突き止めましょう。
メッセージはアプリがVPNを必要としていると伝えますが、通常アプリが報告しているのは症状であり、遮断したものの名前ではありません。その一文を生み出しうる主体は三つあります。アプリが通信するプライベートサービス、アプリ自身のポリシーコード、そして仕事用プロファイルを制御するデバイス管理層です。どれが要求しているかで取るべき行動は変わり、三つのうちトンネル接続で直るのは一つだけです。まず主体を特定すれば、そもそも問題ではなかったクライアントを再インストールせずに済みます。
アプリ自身が確認できること
隠れたプラットフォームの規則を想定する前に、通常のアプリでもVPNトランスポートが有効かどうかは分かることを思い出してください。ConnectivityManagerはTRANSPORT_VPNを持つネットワークを報告し、NET_CAPABILITY_NOT_VPNがなければ現在の経路がトンネル経由だと呼び出し側に伝わります。トンネルの外での動作を拒否したい開発者は、公開APIだけで、企業向けツールを一切使わずに実装できます。
その方法でアプリが分からないのは、そのVPNが誰のものかという点です。トランスポートのフラグはトンネルが存在することを示すだけで、組織が期待する場所で終端していることまでは示しません。
サービスの経路:プライベート名とアドレス
メッセージの最も一般的な正直な形は、ポリシー検査ですらありません。アプリは社内DNSビューの内側にしか存在しないwikiやAPIエンドポイントといった内部ホスト名を解決し、ポリシーコードが動く前に検索が失敗します。トンネルが上がっていて一般のインターネット通信を通していても、分割DNSがその名前を聞いたこともないリゾルバへ送っていることがあります。
ここでの症状は限定的です。一つのホストだけが失敗し、アプリの他のネットワーク呼び出しは動作し、失敗は起動時ではなく名前解決の際に現れます。社内証明書は二つ目の失敗モードを加えます。組織のCAにピン留めされたアプリは、パケットが流れていても公開証明書を拒否するからです。
無関係な商用VPNをつないでも、そのどれも直りません。出口アドレスが変わるだけで、内部名は同じように解決できないままです。
アプリのポリシー層
アプリが独自のゲートを持つこともあります。管理対象構成を使えば、組織はアプリが宣言したキーと値の組を配信でき、アプリはRestrictionManager経由でそれらを読みます。必須のプロファイル名や許可ネットワーク一覧といったキーは完全に開発者の設計であり、アプリケーションコード内でそのコードが選んだ任意のエラーテキストとともに適用されます。
この層は、言い回しが通常それを暴露する場所です。メッセージが起動直後、ネットワーク呼び出しの前に現れ、ポリシー、プロファイル、管理者に言及しているなら、おそらく落ちたパケットではなくアプリケーションのロジックを見ています。
同じ制限を個人用デバイスで読むのは行き止まりです。管理されていないデバイスには読むべき制限がないため、アプリは構築時の既定値にフォールバックします。
プラットフォーム層:常時接続とロックダウン
デバイス管理はアプリが上書きできない強制を加えます。デバイスポリシーコントローラは仕事用プロファイルに対してsetAlwaysOnVpnPackageを呼び出せ、必要ならロックダウンを有効にできます。ロックダウンが有効になると、プラットフォームはそのパッケージを通らない通信を拒否します。遮断はアプリのエラーではなくシステム状態として現れ、プロファイル内の他のアプリもネットワークに届かなくなります。
範囲が重要です。常時接続VPNはユーザーごとに設定されるため、仕事用プロファイルのパッケージは個人用プロファイルを覆いませんし、個人用VPNは仕事用プロファイルのパッケージを満たしません。二つのプロファイル、二つの独立したネットワークポリシー、一台のデバイスです。
ポリシーが特定のパッケージを名指しするため、これも無関係なVPNが助けにならない唯一の層です。
三つを見分ける
兆候を順にたどり、最初に当てはまるものに留まります。一つのホスト名だけが失敗し他は解決するならサービスの経路です。起動時にポリシーの言い回しを伴って即座に拒否されるならアプリケーションのロジックです。承認済みクライアントが切断するたびにプロファイル全体の接続が失われるならロックダウンです。そしてどんなトンネルでも受け入れるアプリは、組織の身元ではなくトランスポートのフラグを検査しています。
有用な証拠は、正確な文言とそのタイミング、同じプロファイルの他のアプリに接続があるか、承認済みトンネル内でプライベート名が解決するか、開いたアプリにデバイスが仕事用バッジを表示するか、です。
サポート依頼に書くこと
層を名指しした依頼は最初の試行で正しくルーティングされます。たとえば、仕事用プロファイルのアプリは開くが、承認済みVPN接続後にリソース一覧が失敗し、許可された診断ではプライベート名の解決が失敗し、プロファイル内の他のアプリは動作し続ける、という書き方です。これは経路かリゾルバの問題として読まれ、アカウントリセットのループを飛ばせます。
承認済みVPNがまったく存在しない場合、サポートされる道は管理者を通じた登録または再プロビジョニングです。管理プロファイルを外したり、無関係なクライアントを入れたり、ネットワーク状態を偽装したりするのは、セキュリティの取り決めを復元するのではなく変更することになります。
クライアントではなく層から始めてください。上記の三つの兆候で、たいていは一回のセッションで決着します。