定義されたプールから P2S VPN ユーザーに IP アドレスを割り当てる - Azure PowerShell

ポリシー グループ (ユーザー グループ) を作成することで、ID または認証資格情報に基づいて特定のアドレス プールからポイント対サイト (P2S) VPN ゲートウェイの IP アドレスに接続するユーザーを割り当てることができます。 この記事では、Azure PowerShellを使用してポリシー グループ、グループ メンバー、およびグループの優先順位を設定する方法について説明します。 P2S 接続に関して、ポリシー グループとグループ メンバーの操作の詳細や考慮事項、制限事項については、「ユーザー グループについて」を参照してください。

[前提条件]

この記事では、VPN Gateway P2S 構成があることを前提としています。 P2S VPN ゲートウェイをまだ設定していない場合は、次の記事を参照してください。

Workflow

この記事では、次のワークフローを使用して、P2S VPN Gateway 接続のユーザー グループと IP アドレス プールを設定します。

  1. 構成要件を検討してください。
  2. 認証メカニズムを選択します。
  3. ユーザー グループを作成します。
  4. ゲートウェイ設定を構成する

構成要件を検討する

このセクションでは、ユーザー グループと IP アドレス プールの構成要件と制限事項を示します。

  • 最大グループ数: 1 つの P2S VPN ゲートウェイで、最大 90 個のグループを参照できます。

  • 最大メンバー数: ゲートウェイに割り当てられているすべてのグループのポリシー/グループ メンバーの合計数は 390 です

  • 複数の割り当て: グループが同じゲートウェイ上の複数の接続構成に割り当てられている場合、そのグループとそのメンバーは複数回カウントされます。 例: 10 人のメンバーが 3 つの VPN 接続構成に割り当てられているポリシー グループは、10 人のメンバーを持つ 1 つのグループではなく、30 人のメンバーを持つ 3 つのグループとしてカウントされます。

  • 同時ユーザー: 同時ユーザーの合計数は、ゲートウェイのスケール ユニットと、各ユーザー グループに割り当てられた IP アドレスの数によって決まります。 ゲートウェイに関連付けられているポリシー/グループ メンバーの数によって決まる わけではありません

  • VPN サーバー構成の一部としてグループが作成されると、グループの名前と既定の設定は変更できません。

  • グループ名は区別する必要があります。

  • 数値優先度が低いグループは、数値優先度の高いグループより前に処理されます。 接続しているユーザーが複数のグループのメンバーである場合、ゲートウェイは、IP アドレスを割り当てる目的で、それらのユーザーを低い数値優先度のグループのメンバーと見なします。

  • 既存のポイント対サイト VPN ゲートウェイで使用されているグループは削除できません。

  • グループに対応する上矢印ボタンをクリックして、グループの優先順位を並べ替えることができます。

  • アドレス プールは、他の接続構成 (同じゲートウェイまたは異なるゲートウェイ) で使用されるアドレス プールと重複することはできません。
  • アドレス プールは、仮想ネットワーク アドレス空間、仮想ハブ アドレス空間、またはオンプレミスのアドレスと重複することもできません。
  • アドレス プールを /24 より小さくすることはできません。 たとえば、/25 または /26 の範囲を割り当てることはできません。

認証メカニズムの選択

次のセクションでは、ユーザー グループの作成中に使用できる認証メカニズムの一覧を示します。

Microsoft Entra グループ

Microsoft Entra グループを作成および管理するには、「 Microsoft Entra グループとグループ メンバーシップの管理」を参照してください。

  • Microsoft Entra ユーザー グループ オブジェクト ID (グループ名ではなく) は、ポイント対サイト構成の一部として指定する必要があります。

    • この特定のケースでは、次を使用します。

      • {ObjectId1} としてのエンジニアリング グループ
      • {ObjectId2} としての財務グループ

      Microsoft Entra ID グループとオブジェクト ID の図

  • Microsoft Entra ユーザーは複数の Active Directory グループの一部として割り当てることができます。VPN Gateway では、ユーザーが VPN ユーザー/ポリシーの一部であると見なされます。 ユーザーが複数のグループに属している場合は、ポイント対サイト接続で最も低い数値優先度を持つグループが選択されます。

RADIUS - NPS ベンダー固有の属性

ネットワーク ポリシー サーバー (NPS) ベンダー固有の属性の構成情報については、「 RADIUS - ベンダー固有の属性の NPS の構成」を参照してください。

証明 書

自己署名証明書を生成するには、「 PowerShell を使用してポイント対サイトの証明書を生成およびエクスポートする」を参照してください。 特定の共通名を持つ証明書を生成するには、 PowerShell コマンドを実行するときに、xx@domain.com パラメーターを適切な値 (New-SelfSignedCertificate など) に変更します。 たとえば、次の サブジェクトを使用して証明書を生成できます。

デジタル証明書フィールド 価値 Description
件名 CN= cert@marketing.contoso.com マーケティング部門のデジタル証明書
件名 CN= cert@sale.contoso.com 販売部門のデジタル証明書

デジタル証明書認証を使用した複数アドレス プール機能は、[ サブジェクト ] フィールドに基づいて特定のユーザー グループに適用されます。 選択条件は、サブジェクト代替名 (SAN) 証明書では機能しません。

証明書で SAN を指定する場合は、マルチプール機能が正しく機能するためのサブジェクトと同じである必要があります。 サブジェクトと SAN の間で不一致が発生すると、問題が発生します。

ユーザー グループの作成

1. 変数を宣言する

$rg           = "TestRG2"
$location     = "EastUS"
$VNetName     = "TestVNet"
$AppSubName   = "AppSubnet"
$GWSubName    = "GatewaySubnet"
$VNetPrefix   = "10.0.0.0/24"
$AppSubPrefix = "10.0.0.0/26"
$GWSubPrefix  = "10.0.0.192/26"
$GWName       = "gw"
$GWIPName     = "gwIP1"
$GWIPconf     = "gwipconf1"

2. 仮想ネットワークと VPN ゲートウェイを作成する

PowerShell コンソールを開き、アカウントに接続します。 詳細については、「 Resource Manager での Windows PowerShell の使用」を参照してください。 接続に役立つ次のサンプルを使用します。

Connect-AzAccount
Select-AzSubscription -SubscriptionName <YourSubscriptionName>
New-AzResourceGroup -Name $rg -Location $location

$appsub = New-AzVirtualNetworkSubnetConfig -Name $AppSubName -AddressPrefix $AppSubPrefix
$gwsub = New-AzVirtualNetworkSubnetConfig -Name $GWSubName -AddressPrefix $GWSubPrefix

New-AzVirtualNetwork -Name $VNetName -ResourceGroupName $RG -Location $Location -AddressPrefix $VNetPrefix -Subnet $appsub,$gwsub

$gwpip    = New-AzPublicIpAddress -Name $GW2IPName1 -ResourceGroupName $RG -Location $Location -AllocationMethod Static `
               -Sku Standard -Tier Regional -Zone 1, 2, 3
$vnet     = Get-AzVirtualNetwork -Name $VNetName -ResourceGroupName $RG
$subnet   = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet
$gwipconf = New-AzVirtualNetworkGatewayIpConfig -Name $GWIPconf1 -Subnet $subnet -PublicIpAddress $gwpip

New-AzVirtualNetworkGateway -Name $GWName -ResourceGroupName $RG -Location $Location `
        -IpConfigurations $gwipconf `
        -GatewayType Vpn `
        -VpnType RouteBased `            
        -VpnGatewayGeneration Generation2 `
        -GatewaySku VpnGw2AZ

VPN ゲートウェイの作成には約 45 分以上かかることがあります。

3. 正しい VPN ゲートウェイがあることを確認する

$gw = Get-AzVirtualNetworkGateway -Name $GWName -ResourceGroupName $RG

4. ユーザー グループを作成する

このシナリオでは、4 つのユーザー グループの場合を考えてみます。デジタル証明書認証を使用する 2 つのユーザー グループと、Microsoft Entra ID 認証を使用する 2 つのユーザー グループ:

  • 共通名を持つクライアント証明書の 2 つのグループ。

    • yourServiceName@marketing.contoso.com
    • yourServiceName@sale.contoso.com
  • Microsoft Entra ID で作成された 2 つのグループ ( ObjectId1/ObjectId2 をオブジェクト ID 値に置き換えます)。

    • エンジニアリング グループ {ObjectId1}
    • 財務 {ObjectId2}

5. VPN ゲートウェイに P2S 構成を追加する

次のコマンドレット構成では、クライアント アドレス プール VpnClientAddressPool と認証オプションを使用するように VPN ゲートウェイを設定します。

  • 証明書ベースの認証: 証明書
  • Microsoft Entra ID: AAD

P2S Microsoft Entra ID 認証値の詳細については、「 Microsoft Entra ID 認証用に P2S VPN Gateway を構成する」を参照してください。

ルート証明書のパブリック データを.cer形式でエクスポートし、データを収集し、ルート証明書のパブリック データを変数$rootCertに割り当てます。

$rootCert = 'MIIC5zCCAc+gAwIBAgIQH0n3xp1vV7FBfqhwRvJOljA...............'

ルート証明書 (.cer ファイル) のパブリック データを収集するときは、変数に割り当てられた値にヘッダーとトレーラーを含めないでください$rootCer

次に、仮想ネットワーク ゲートウェイを設定します。 次のコマンドで、次の値を置き換えます。

  • 対応する Microsoft Entra テナント ID を持つ {TenantID} (中かっこなし)。
  • Microsoft が登録した Azure VPN クライアント アプリ ID の対応する値を持つ AadAudienceID。 このフィールドではカスタムオーディエンスを使用することもできます。
  • x.x.0.0/24 とアドレス プールを使用して、複数のアドレス プール構成に属していない VPN クライアントを接続します。
$gw = Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gw1 `
-VpnAuthenticationType Certificate, AAD -VpnClientAddressPool x.x.0.0/24 `
-VpnClientRootCertificates $rootCert -VpnClientProtocol IkeV2, OpenVPN `
-AadTenantUri 'https://login.microsoftonline.com/{TenantID}' `
-AadIssuerUri 'https://sts.windows.net/{TenantID}/' `
-AadAudienceId 'c632b3df-fb67-4d84-bdcf-b95ad541b5c8'

6. ポリシー グループ メンバーを作成する

グループごとに 1 つずつ、4 つのメンバーを構成します。

  • member1 と member2 は、デジタル証明書認証 (認証の種類: CertificateGroupID) に基づいています。

  • member3 と member4 は Microsoft Entra ID 認証 (認証の種類:AADGroupID) に基づいています

    • {ObjectId1} と {ObjectId2} は、Microsoft Entra ID テナント内の 2 つの異なるグループ ID を表す値です。
メンバー名 認証の種類 属性値
member1 CertificateGroupId marketing.contoso.com
メンバー2 CertificateGroupId sale.contoso.com
member3 AADGroupID {ObjectId1}
member4 AADGroupID {ObjectId2}
$member1 = New-AzVirtualNetworkGatewayPolicyGroupMember -Name "member1" `
-AttributeType "CertificateGroupId" -AttributeValue "marketing.contoso.com"

$member2 = New-AzVirtualNetworkGatewayPolicyGroupMember -Name "member2" `
-AttributeType "CertificateGroupId" -AttributeValue "sale.contoso.com"

$member3 = New-AzVirtualNetworkGatewayPolicyGroupMember -Name "member3" `
-AttributeType "AADGroupId" -AttributeValue "{ObjectId1}"

$member4 = New-AzVirtualNetworkGatewayPolicyGroupMember -Name "member4" `
-AttributeType "AADGroupId" -AttributeValue "{ObjectId2}"

{ObjectId1} などのプレースホルダーを示すには、 {} 中かっこを使用します。 {ObjectId1} を実際の値に置き換え、最終的な値に中かっこを含めないでください。

7.仮想ネットワーク ゲートウェイ ポリシー グループを作成する

構成では、共通名 (CN) フィールドに以下を指定するデジタル証明書と、グループ ObjectID を指定する Microsoft Entra ID グループを使用して、接続の承認を担当する 3 つのゲートウェイ ポリシー グループが作成されます。

  • policyGroup1: marketing.contoso.com、$member 1
  • policyGroup2: sale.contoso.com、$member 2
  • policyGroup3: {ObjectId1}($member 3 とも呼ばれます)
  • policyGroup4: {ObjectId2}($member 4 とも呼ばれます)

表の説明に従って、3 つのゲートウェイ ポリシー グループが作成されます。

ポリシー グループ名 既定のポリシー Priority ポリシー メンバー オブジェクト
ポリシーグループ1 true 0 member1
policyGroup2 false 10 メンバー2
policyGroup3 false 20 member3
policyGroup4 false 30 member4
$policyGroup1 = New-AzVirtualNetworkGatewayPolicyGroup -Name "policyGroup1" `
     -Priority 0 -DefaultPolicyGroup -PolicyMember $member1 

$policyGroup2 = New-AzVirtualNetworkGatewayPolicyGroup -Name "policyGroup2" `
     -Priority 10 -PolicyMember $member2 

$policyGroup3 = New-AzVirtualNetworkGatewayPolicyGroup -Name "policyGroup3" `
    -Priority 20 -PolicyMember $member3 

$policyGroup4 = New-AzVirtualNetworkGatewayPolicyGroup -Name "policyGroup4" `
    -Priority 30 -PolicyMember $member4 

8. VPN クライアント接続構成を作成する

VPN 構成では、それぞれ特定の policyGroup にリンクされた 4 つの異なるアドレス プールを定義します。

VPN 構成名 アドレス プール PolicyGroup
config1 x.x.1.0/24 policyGroup 1: marketing.contoso.com
config2 x.x.2.0/24 PolicyGroup 2: sale.contoso.com
config3 x.x.3.0/24 PolicyGroup 3: エンジニアリング {ObjectId1}
config4 x.x.4.0/24 PolicyGroup4: Finance {ObjectId2}
$vngconnectionConfig1 = New-AzVpnClientConnectionConfiguration -Name "config1" `
-VirtualNetworkGatewayPolicyGroup $policyGroup1 `
-VpnClientAddressPool "x.x.1.0/24" 

$vngconnectionConfig2 = New-AzVpnClientConnectionConfiguration -Name "config2" `
-VirtualNetworkGatewayPolicyGroup $policyGroup2 `
-VpnClientAddressPool "x.x.2.0/24" 

$vngconnectionConfig3 = New-AzVpnClientConnectionConfiguration -Name "config3" `
-VirtualNetworkGatewayPolicyGroup $policyGroup3 `
-VpnClientAddressPool "x.x.3.0/24"

$vngconnectionConfig4 = New-AzVpnClientConnectionConfiguration -Name "config4" `
-VirtualNetworkGatewayPolicyGroup $policyGroup4 `
-VpnClientAddressPool "x.x.4.0/24" 

9. VPN ゲートウェイに構成を適用する

$gw = Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gw `
      -VirtualNetworkGatewayPolicyGroup `
$policyGroup1, $policyGroup2, $policyGroup3, $policyGroup4 `
     -ClientConnectionConfiguration $vngconnectionConfig1, $vngconnectionConfig2, `
      $vngconnectionConfig3, $vngconnectionConfig4 

複数アドレス プール設定の最後に、構成は次の論理構造で表すことができます。

ポリシー グループ名 既定のポリシー Priority ポリシー メンバー 認証の種類 グループ構成値 VPN クライアント アドレス プール
ポリシーグループ1 true 0 member1 CertificateGroupId marketing.contoso.com x.x.1.0/24
policyGroup2 false 10 メンバー2 CertificateGroupId sale.contoso.com x.x.2.0/24
policyGroup3 false 20 member3 AADGroupID {ObjectId1} x.x.3.0/24
policyGroup4 false 30 member4 AADGroupID {ObjectId2} x.x.4.0/24

問題が発生した場合

P2S 接続用にポリシー グループと IP アドレス プールを構成するときに発生する可能性のある一般的な問題と、それらを解決するためのトラブルシューティング手順を次に示します。

  • パケットに適切な属性があることを確認します。 Wireshark または別のパケット キャプチャは、NPS モードで実行し、共有キーを使用してパケットを復号化できます。 適切な RADIUS VSA が構成されたポイント対サイト VPN ゲートウェイに RADIUS サーバーからパケットが送信されていることを検証できます。

  • ユーザーに間違った IP が割り当てられているか。 ユーザーがポリシーに一致しているかどうかに関係なく、認証のために NPS イベント ログを設定して確認します。

  • アドレスプールに関するお困りごとがありますか? すべてのアドレス プールはゲートウェイで指定されます。 アドレス プールは 2 つのアドレス プールに分割され、ポイント対サイト VPN ゲートウェイ ペアの各アクティブ/アクティブ インスタンスに割り当てられます。 これらの分割アドレスは、有効なルート テーブルに表示されます。 たとえば、 10.0.0.0/24 を指定すると、有効なルート テーブルに 2 つの "/25" ルートが表示されます。 そうでない場合は、ゲートウェイで定義されているアドレス プールを変更してみてください。

  • P2S クライアントがルートを受信できない場合 すべてのポイント対サイト VPN 接続構成が defaultRouteTable に関連付けられていることを確認し、同じルート テーブルのセットに伝達します。 これはポータルを使用している場合は自動的に構成する必要がありますが、REST、PowerShell、または CLI を使用している場合は、すべての伝達と関連付けが適切に設定されていることを確認してください。

  • Azure VPN クライアントを使用してマルチプールを有効にできない場合 Azure VPN クライアントを使用している場合は、ユーザー デバイスにインストールされている Azure VPN クライアントが最新バージョンであることを確認します。 この機能を有効にするには、クライアントをもう一度ダウンロードする必要があります。

  • すべてのユーザーが既定のグループに割り当てられますか? Microsoft Entra認証を使用している場合は、サーバー構成 (https://login.microsoftonline.com/<tenant ID>) のテナント URL 入力が \ で終わらないことを確認します。 URL が \ で終了するように入力されている場合、ゲートウェイは Microsoft Entra ユーザー グループを適切に処理できず、すべてのユーザーが既定のグループに割り当てられます。 修復するには、サーバー構成を変更して末尾の \ を削除し、ゲートウェイに構成されているアドレス プールを変更してゲートウェイに変更を適用します。 これは既知の問題です。

  • マルチプール機能を使用するように外部ユーザーを招待しようとしていますか? Microsoft Entra認証を使用していて、外部のユーザー (VPN ゲートウェイで構成されているMicrosoft Entra ドメインに属していないユーザー) を VPN ゲートウェイに接続するように招待する予定の場合は、外部ユーザーのユーザーの種類が Member であり、Guest ではないことを確認します。 また、ユーザーの "名前" がユーザーのメール アドレスに設定されていることを確認します。 接続しているユーザーのユーザーの種類と名前が正しく設定されていない場合、または外部メンバーを Microsoft Entra ドメインの "メンバー" に設定できない場合、接続しているユーザーは既定のグループに割り当てられ、既定の IP アドレス プールから IP が割り当てられます。

次のステップ