カテゴリ: Azure 更新日: 2026/06/25

Azure VPN Gateway P2S設定ガイド!Entra ID認証でテレワークを安全にする方法

Azure VPNポイント対サイト(P2S)|テレワークをEntra ID認証で守る方法
Azure VPNポイント対サイト(P2S)|テレワークをEntra ID認証で守る方法

先生と生徒の会話形式で理解しよう

生徒

「会社の外から社内のシステムに安全にアクセスしたいのですが、パスワードだけの管理だと少し不安です。Microsoft Azure(アジュール)で良い方法はありますか?」

先生

「それなら、Azure VPN Gateway(アジュール ブイピーエヌ ゲートウェイ)の『ポイント対サイト(P2S)』という機能が最適です。特に Microsoft Entra ID(エントラ アイディー)認証を使えば、多要素認証も組み合わせられるので非常に強力ですよ。」

生徒

「Entra ID(旧称:Azure AD)で認証ができるんですね!設定は難しいのでしょうか?」

先生

「仕組みを理解すれば、初心者の方でも順番に進めることで構築可能です。テレワーク環境を劇的に安全にするこの仕組み、詳しく解説していきましょう!」

1. Azure VPN Gatewayのポイント対サイト(P2S)とは?

1. Azure VPN Gatewayのポイント対サイト(P2S)とは?
1. Azure VPN Gatewayのポイント対サイト(P2S)とは?

Azure VPN Gateway(アジュール ブイピーエヌ ゲートウェイ)とは、Microsoftが提供するクラウドサービス「Azure」上のネットワーク(VNet)と、外部の環境を暗号化されたトンネルでつなぐための専用の入り口(ゲートウェイ)のことです。その中でも、ポイント対サイト(Point-to-Site / P2S)は、個々のパソコン(ポイント)からAzure(サイト)へ直接接続する方式を指します。

この方式の最大の特徴は、専用のルーターなどの物理的な機器を自宅に設置する必要がないことです。パソコンに専用の接続用ソフト(VPNクライアント)をインストールするだけで、カフェや自宅など、インターネットがある場所ならどこからでも会社のサーバーに安全にアクセスできるようになります。まさに、現代のテレワーク(在宅勤務)には欠かせない技術といえるでしょう。

2. Microsoft Entra ID認証を利用するメリット

2. Microsoft Entra ID認証を利用するメリット
2. Microsoft Entra ID認証を利用するメリット

従来のVPN接続では、デジタル証明書や共有キーを使った認証が一般的でした。しかし、これらは管理が煩雑だったり、デバイスが盗まれた際の悪用に弱かったりする課題がありました。そこで登場するのが、Microsoft Entra ID(旧 Azure Active Directory)による認証です。

Entra ID(エントラ アイディー)認証を使うことで、普段WindowsやMicrosoft 365(メールやTeams)にログインするときと同じアカウントでVPNに接続できるようになります。さらに、スマートフォンを使った「多要素認証(MFA)」や、特定の条件を満たしたデバイスのみ接続を許可する「条件付きアクセス」を組み合わせることで、セキュリティのレベルを格段に引き上げることができます。万が一、IDとパスワードが漏洩しても、スマホでの承認がなければ接続できないため、不正アクセスを未然に防ぐことが可能です。

3. 構築に必要なコンポーネントと事前準備

3. 構築に必要なコンポーネントと事前準備
3. 構築に必要なコンポーネントと事前準備

設定を始める前に、いくつか用意しておくべき「部品」があります。まずはこれらを揃えることからスタートしましょう。

  • 仮想ネットワーク(VNet):Azure上のプライベートなネットワーク空間。
  • GatewaySubnet:VPN Gateway専用の特殊なサブネット。
  • 仮想ネットワークゲートウェイ:VPNの本体となるリソース。
  • クライアントアドレスプール:接続するPCに割り当てるIPアドレスの範囲。

特に重要なのは、社内のネットワーク(ローカルネットワーク)のIPアドレス範囲と、Azure側のVNet、さらにVPN接続者用のIPアドレスが重複(バッティング)しないように設計することです。これが重なると、通信が正しくルーティング(経路制御)できなくなってしまいます。

4. 仮想ネットワークとゲートウェイの作成手順

4. 仮想ネットワークとゲートウェイの作成手順
4. 仮想ネットワークとゲートウェイの作成手順

まずは土台となるネットワークを作成します。Azureポータルから「仮想ネットワーク」を作成し、次に「仮想ネットワークゲートウェイ」を追加します。ゲートウェイの作成には、プラン(SKU)の選択にもよりますが、完了まで20分から45分ほど時間がかかることがあるので、余裕を持って作業しましょう。

ここで、基本的なネットワーク情報を管理するためのイメージとして、どのような設定値が必要か、表形式で確認してみましょう。


設定項目             | 推奨値の例             | 説明
---------------------+------------------------+-------------------------------
VNetアドレス空間     | 10.0.0.0/16           | Azure全体の住所録
GatewaySubnet        | 10.0.255.0/24         | ゲートウェイ専用の区画
P2Sアドレスプール    | 192.168.100.0/24      | VPN利用者に配られる住所
SKU(プラン)        | VpnGw1                | 性能やコストに応じた選択

5. Entra ID側のアプリケーション登録と設定

5. Entra ID側のアプリケーション登録と設定
5. Entra ID側のアプリケーション登録と設定

次に、Azure VPNがEntra IDを使って認証できるように、権限を与える設定を行います。これは「エンタープライズアプリケーション」として登録する作業です。具体的には、Azure公式が提供している特定の「アプリケーションID」を自分のテナント(環境)に承認させる操作が必要になります。ここで、管理者としてサインインし、アプリのアクセス許可を与えることで、ユーザーがVPN接続時にサインイン画面(おなじみのMicrosoftログイン画面)を表示できるようになります。

設定が正しく反映されているか、PowerShell(パワーシェル)を使ってテナントの情報を確認することがあります。以下は、Azureへの接続を確認する簡単なコマンド例です。


Connect-AzAccount
Account                SubscriptionName   TenantId
-------                ----------------   --------
user@example.com       MySubscription     00000000-0000-0000-0000-000000000000

6. VPNクライアント構成ファイルのダウンロードと適用

6. VPNクライアント構成ファイルのダウンロードと適用
6. VPNクライアント構成ファイルのダウンロードと適用

ゲートウェイの設定が終わったら、次は利用者のパソコン側の準備です。Azureポータルの「ポイント対サイトの構成」画面から「VPNクライアントのダウンロード」をクリックします。これにより、設定情報が含まれたXMLファイルが入手できます。

利用者は、Microsoft Storeから「Azure VPN Client」というアプリをインストールし、先ほどダウンロードしたファイルをインポート(取り込み)します。これで、複雑なサーバーのアドレスなどを手入力することなく、すぐに「接続」ボタンを押せる状態になります。この簡便さも、P2S VPNが初心者や非IT部門のユーザーに推奨される理由の一つです。

7. セキュリティをさらに高める条件付きアクセスの活用

7. セキュリティをさらに高める条件付きアクセスの活用
7. セキュリティをさらに高める条件付きアクセスの活用

Entra ID認証の真骨頂は「条件付きアクセス」です。単にIDとパスワードが合っているかだけでなく、「会社が認めたPC(準拠済みデバイス)か?」「日本国内からのアクセスか?」といった条件を自動でチェックできます。

例えば、以下のようなポリシー(ルール)をデータベースのように管理するイメージです。条件に合致しない場合は、接続そのものをブロックします。


ユーザーID | デバイス状態 | 接続場所 | 判定結果
-----------+--------------+----------+---------
User-A     | 準拠済み     | 日本     | 許可
User-B     | 未登録       | 海外     | ブロック
User-C     | 準拠済み     | 日本     | 許可(MFA必須)
User-D     | 準拠済み     | 不明     | 調査が必要

このように、接続のたびに「警察官」が検問を行っているような状態を作り出せるのが、Entra ID連携の大きなメリットです。セキュリティ事故の多くは、管理外のデバイスからのアクセスや、推測されやすいパスワードが原因です。これらをシステム的に防ぐことが、企業の資産を守る第一歩となります。

8. 接続テストとトラブルシューティングのコツ

8. 接続テストとトラブルシューティングのコツ
8. 接続テストとトラブルシューティングのコツ

設定が完了したら、実際に接続テストを行いましょう。もし接続できない場合は、以下のポイントをチェックしてください。

  • NSG(ネットワークセキュリティグループ):通信を遮断していないか。
  • ルーティング:宛先のサーバーへの経路が正しいか。
  • ライセンス:Entra ID P1以上のライセンスが必要な機能を使っていないか。

また、接続したあとに特定のサーバーへPing(疎通確認)が通るかを確認する際、Windows PowerShellで以下のようなコマンドを実行してテストします。


// C#で簡易的な接続監視ツールを作る場合のイメージコード
using System.Net.NetworkInformation;

string targetIp = "10.0.1.4"; // Azure上のサーバーIP
Ping pingSender = new Ping();
PingReply reply = pingSender.Send(targetIp);

if (reply.Status == IPStatus.Success)
{
    Console.WriteLine("VPN接続成功:サーバーに到達できました!");
}
else
{
    Console.WriteLine("接続失敗:設定を見直してください。");
}

実行結果は以下のようになります。


VPN接続成功:サーバーに到達できました!

9. VPN接続後の運用とコスト管理

9. VPN接続後の運用とコスト管理
9. VPN接続後の運用とコスト管理

Azure VPN Gatewayは、起動している時間と、転送されるデータ量(アウトバウンド通信)に応じて料金が発生します。無駄なコストを抑えるためには、適切なSKUの選択が重要です。例えば、小規模な環境であれば「Basic」プランでも十分な場合がありますが、Entra ID認証など高度な機能を使いたい場合は「VpnGw1」以上のプランが必要になります。

運用開始後は、Azure Monitor(アジュール モニター)を使用して、誰がいつ、どのくらいの時間接続していたかをログとして記録・分析することが推奨されます。これにより、万が一の際の証跡管理が可能になり、コンプライアンスの遵守にもつながります。テレワークを導入することは、単に便利にするだけでなく、こうした「見守る仕組み」をセットで構築することが成功の鍵です。

最後に、SQLを使用してユーザーの接続履歴を管理するテーブルの例を見てみましょう。どのようなデータが蓄積されるかイメージしやすくなります。


-- ユーザーごとの接続ログを抽出するクエリ例
SELECT 
    UserName, 
    LoginTime, 
    ClientIP, 
    DurationMinutes
FROM 
    VPNConnectionLogs
WHERE 
    LoginTime >= '2026-03-01'
ORDER BY 
    LoginTime DESC;

UserName      | LoginTime           | ClientIP       | DurationMinutes
--------------+---------------------+----------------+----------------
Sato_Hanako   | 2026-03-30 09:00:05 | 192.168.100.10 | 480
Yamada_Taro   | 2026-03-30 10:15:22 | 192.168.100.11 | 120
Suzuki_Ichiro | 2026-03-29 13:00:00 | 192.168.100.12 | 240
Tanaka_Jiro   | 2026-03-29 08:30:10 | 192.168.100.13 | 510

まとめ

まとめ
まとめ

今回の記事では、Azure VPN Gateway(アジュール ブイピーエヌ ゲートウェイ)を利用したポイント対サイト(P2S)接続と、Microsoft Entra ID(エントラ アイディー)による認証設定について詳しく解説してきました。テレワークが普及した現代において、社外から社内リソースへ安全にアクセスする手段を確保することは、企業のITインフラ担当者にとって最優先事項の一つです。

従来の証明書認証と比較して、Entra ID認証を採用することで、多要素認証(MFA)や条件付きアクセスといった高度なセキュリティ機能をシームレスに統合できる点が最大のメリットです。これにより、単なる「接続の確立」だけでなく、「誰が、どのデバイスで、どこから」アクセスしているかを厳密に制御することが可能になります。

主要な設定ポイントの再確認

構築の際には、ネットワーク設計が非常に重要です。特にIPアドレスの重複は、接続トラブルの最大の原因となります。以下に、VPN接続環境を管理するためのデータベース構造の例を挙げます。このように、割り当てたアドレスプールや接続状況を整理しておくことで、運用がスムーズになります。


id | pool_name          | address_range     | status     | assigned_users
---+--------------------+-------------------+------------+---------------
1  | VPN-Standard-Pool  | 192.168.100.0/24  | Active     | 15
2  | VPN-Admin-Pool     | 192.168.110.0/28  | Active     | 3
3  | VPN-Guest-Pool     | 192.168.120.0/24  | Inactive   | 0
4  | VPN-Dev-Pool       | 192.168.130.0/24  | Active     | 8
5  | VPN-Backup-Pool    | 192.168.140.0/24  | Standby    | 0

管理者は、SQLクエリを用いて特定のネットワークセグメントの利用状況を把握することが求められます。例えば、アクティブなプールのみを抽出するコードは以下の通りです。


SELECT 
    pool_name, 
    address_range, 
    assigned_users
FROM 
    VpnAddressPools
WHERE 
    status = 'Active'
ORDER BY 
    assigned_users DESC;

pool_name          | address_range     | assigned_users
-------------------+-------------------+---------------
VPN-Standard-Pool  | 192.168.100.0/24  | 15
VPN-Dev-Pool       | 192.168.130.0/24  | 8
VPN-Admin-Pool     | 192.168.110.0/28  | 3

接続自動化と監視の重要性

設定完了後は、ユーザーの利便性を高めるために接続確認を自動化したり、ログを監視したりする仕組みを導入しましょう。例えば、C#を用いてVPN接続後の特定サーバーへの通信経路を確認し、特定のホップ数を超えていないかをチェックするプログラムを書くことができます。これにより、意図しない経路での通信(ボトルネック)を早期に発見できます。


using System;
using System.Net.NetworkInformation;
using System.Text;

public class VpnMonitor
{
    public static void CheckConnection(string ipAddress)
    {
        Ping pingSender = new Ping();
        PingOptions options = new PingOptions(64, true);
        string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
        byte[] buffer = Encoding.ASCII.GetBytes(data);
        int timeout = 120;

        try
        {
            PingReply reply = pingSender.Send(ipAddress, timeout, buffer, options);
            if (reply.Status == IPStatus.Success)
            {
                Console.WriteLine("ステータス: 接続完了");
                Console.WriteLine("応答時間: " + reply.RoundtripTime + "ms");
                Console.WriteLine("生存時間 (TTL): " + reply.Options.Ttl);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("エラーが発生しました: " + ex.Message);
        }
    }
}

また、Linux環境(WSL2など)からVPN経由でAzure上のリソースを操作する場合、現在のルートテーブルを確認してVPN経由のルートが正しく追加されているかを確認する習慣をつけましょう。


ip route show
default via 192.168.1.1 dev eth0 proto dhcp
10.0.0.0/16 dev ppp0 scope link
192.168.100.0/24 dev ppp0 scope link

今後のステップ:S2SやExpressRouteとの併用

P2S VPNは非常に便利ですが、拠点間を常時接続する「サイト対サイト(S2S)」や、より広帯域で安定した「ExpressRoute(エクスプレスルート)」と組み合わせることで、より強固なハイブリッドクラウド環境を構築できます。企業の成長に合わせて、これらの構成を柔軟に変更できるのがAzureの強みです。

最後に、今回学んだ用語を整理しましょう。 仮想ネットワークゲートウェイは「中継局」、Entra IDは「身分証確認所」、条件付きアクセスは「入館ゲートの検問」と考えるとイメージしやすいはずです。 安全なテレワーク環境の構築は、従業員の生産性を守ると同時に、企業の信頼を守ることにも直結します。ぜひ、本ガイドを参考に構築にチャレンジしてみてください。

先生と生徒の振り返り会話

生徒

「先生、まとめまで読んでVPN Gatewayの凄さがよく分かりました!特にEntra IDで認証をまとめることで、パスワードを何個も覚えなくて済むのが利用者としても嬉しいですね。」

先生

「その通りですね。管理者にとっても、退職者のアカウントを無効化すれば自動的にVPNにも入れなくなるので、管理漏れが防げるという大きなメリットがありますよ。」

生徒

「なるほど!ちなみに、SQLやC#のコードが出てきましたが、これらは運用でよく使うのですか?」

先生

「はい。数人なら手動でもいいですが、数百人、数千人規模になると、誰がいつ接続したかをデータベースで管理したり、接続不良を検知するツールを作ったりすることが不可欠になります。インフラエンジニアでも、基礎的なプログラミングの知識があると非常に重宝されますよ。」

生徒

「インフラとプログラミングは繋がっているんですね。早速、テスト環境でゲートウェイを立ててみて、自分のスマホで多要素認証が動くか試してみます!」

先生

「素晴らしい意気込みですね。もし接続できないときは、さっき確認したIPアドレスの重複や、セキュリティグループ(NSG)の設定を一番に疑ってみてください。頑張りましょう!」

カテゴリの一覧へ
新着記事
New1
COBOL
COBOLのデバッグ方法を徹底解説!初心者向けDISPLAY活用ガイド
New2
C#
C#のLINQでグループ化と集計!GroupByとCountを初心者向けに解説
New3
C#
C#のシングルトンパターン実装方法と注意点を徹底解説!初心者向け完全ガイド
New4
Azure
Azure WAFの誤検知を解消!除外リスト設定とチューニング方法を初心者向けに徹底解説
人気記事
No.1
Java&Spring記事人気No1
C#
C#の文字列を数値に変換する方法(int.Parse・TryParse)をわかりやすく解説!
No.2
Java&Spring記事人気No2
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.3
Java&Spring記事人気No3
C#
C#のbool型を完全解説!初心者でもわかるtrueとfalseの基本と使い方
No.4
Java&Spring記事人気No4
C#
C#のトランザクション処理を完全ガイド!初心者でもわかるCommit・Rollbackの使い方
No.5
Java&Spring記事人気No5
C#
C#のラムダ式の書き方と構文を初心者向けに完全解説
No.6
Java&Spring記事人気No6
C#
C#のLINQでOrderByを使った並び替えを完全ガイド!初心者でもわかるソート方法
No.7
Java&Spring記事人気No7
Azure
Azureストレージの冗長性比較!LRS/GRS/ZRSの選び方とコストの最適解を完全解説
No.8
Java&Spring記事人気No8
COBOL
COBOLのコンパイラと開発環境を徹底解説!初心者にもわかりやすい入門ガイド