長めのはじめに
P2S 接続の Microsoft Entra ID 認証
VPN Gateway の P2S 接続は Microsoft Entra ID によるユーザ認証をサポートしています。証明書の管理が不要になる、条件付きアクセスと組み合わせることで P2S 接続時に MFA を強制できる等、とても便利な機能です。専用のクライアントがサポートする OS が Windows と macOS だけな点に注意は必要ですが、要件さえあえば積極的に使っていきたい機能の一つです。
VPN Gateway 接続用の Azure AD テナントと P2S 設定を構成する
この機能を設定する際には、VPN Gateway に対して、認証で利用する Microsoft Entra ID のアプリケーションを指定する必要があります。そのための組み込みのアプリケーションとしてMicrosoft Entra ID には「Azure VPN」が存在しています。
また、Microsoft Entra ID 上のアプリケーションには「テナント上の全ユーザが利用できる設定」と「アプリケーションに明示的に割り当てたユーザのみが利用できる設定」が存在します。後者の設定にすると、アプリケーションに割り当てられたユーザのみが P2S 接続を利用できるようになります。
認証で利用する「Azure VPN」アプリケーションとその課題
この「Azure VPN」はテナント共通のアプリケーションです。ですので、P2S 接続できるユーザを限定するためのユーザの割り当て設定は、認証のためにこのアプリケーションを利用するすべての VPN Gateway で共有されます。次の図のように異なるシステム上の VPN Gateway であっても、「Azure VPN」アプリケーションを参照していれば、P2S 接続の認証で利用する設定はテナント内で共通になってしまいます。
もちろん、クライアント側で P2S 接続を有効にするためには、接続先の VPN Gateway の FQDN や事前共有鍵が記載された設定ファイルが必要です。そのため、左の VPN Gateway で P2S を利用しているユーザが自動的に右の VPN Gateway の P2S にも繋がるわけではありません。ですが、右の VPN Gateway の管理者としては「設定ファイルを入手されてしまうと、知らないところで P2S 接続されてしまう」というリスクが残ります。
また、「Azure VPN」アプリケーションを利用していると、ユーザの異動時に困る場合があります。左の VPN Gateway で P2S を利用していたユーザが異動して右のシステム担当となった場合、左の VPN Gateway 側では異動したユーザの P2S 接続を禁止できません。禁止するために「Azure VPN」アプリケーションからユーザの割り当てを削除すると、左の VPN Gateway だけでなく右の VPN Gateway にも繋がらなくなってしまうからです。もちろんクライアント側で左側の VPN Gateway への P2S 接続の設定と設定ファイルを削除すれば良いですが、ユーザの善意に依存する方法なので若干微妙です。
課題へのアプローチ
上記を踏まえると、情シス部門が管理するような全社共通の P2S 接続では、組み込みの「Azure VPN」アプリケーションで認証をするのが良いですが、システム個別の P2S 接続の認証で組み込みの「Azure VPN」アプリケーションを利用するのは課題があります。
そんなときのために、P2S 接続では独自のアプリケーションを利用することもできます。構成のイメージは次の通りです。VPN Gateway ごとに専用のアプリケーションを用意して、そのアプリケーション上でユーザを制限します。こうすることでユーザが異動した場合には、異動元のアプリケーションからユーザの割り当てを削除して、移動先のアプリケーションにユーザを足す運用が可能になります。
ドキュメントを読んでもピンと来なかったので、実際にやってみました。
参考:ユーザーとグループに基づいたアクセス用に P2S を構成する - Azure AD 認証
設定手順
専用アプリケーションの作成
まずは自分の VPN Gateway が Microsoft Entra ID にアクセスする際に利用する、自分の VPN Gateway 専用のアプリケーションを作成します。
そしてスコープを作ります。
スコープを使う際に管理者による同意を求められないように、「Azure VPN」アプリケーションを承認済みのアプリケーションに追加しておきます。
専用アプリケーションへのユーザの割り当て
任意のユーザのみが自分の VPN Gateway に P2S 接続できるように、ユーザの割り当てを必須にします。アプリケーションへのユーザ割り当ては、アプリの登録」画面ではなく「エンタープライズアプリケーション」画面から実施します。
割り当てを必須にしたうえで、P2S 接続を利用させたいユーザを明示的に追加します。
VPN Gateway の設定変更
VPN Gateway が「Azure VPN」アプリケーションを利用する設定になっている場合には、対象ユーザの欄を、作成した専用アプリケーションのアプリケーション ID に変更します。
Azure VPN クライアントの設定変更
VPN Gateway の設定を変更した際には、Azure VPN クライアントの設定変更も必要です。設定ファイルをインポートすることで作られた接続先には、利用するアプリケーションの ID が記録されています。この欄も作成した専用アプリケーションの ID に変更します。
Azure VPN アプリケーションへのユーザの割り当て
この構成にした場合、「Azure VPN」アプリケーションのユーザ割り当て設定によって P2S 接続した場合の挙動が変わります。「割り当てが必要ですか?」が「いいえ」の場合、専用アプリケーションを利用した P2S 接続への影響はありません。一方で「割り当てが必要ですか?」が「はい」の場合、専用アプリケーション側でユーザを割り当てるだけでなく「Azure VPN」アプリケーションにもユーザが割り当たっていないと、P2S 接続時に「Azure VPN アプリケーションにユーザが割り当たっていない」というエラーが発生します。
動作
この構成にすると、同一 Microsoft Entra ID テナント内のユーザが VPN Gateway の P2S 接続の接続情報を入手したとしても、そのユーザは専用アプリケーションに割り当たっていないので、入手した VPN Gateway に P2S 接続できません。
また、P2S 接続を利用していたユーザが異動した際には、そのユーザの割り当てを専用アプリケーションから削除すれば、そのユーザが自分の VPN Gateway に P2S 接続できなくなります。共通の「Azure VPN」アプリケーションを利用する際の課題が解決できます。
まとめ
Microsoft Entra ID 認証を利用した P2S 接続で専用のアプリケーションを利用する方法を試しました。P2S 接続の要件に応じて、組み込みの Azure VPN アプリケーションと独自に作成する専用のアプリケーションを使い分けましょう。