EAP の構成

この記事では、VPN プロファイルの拡張認証プロトコル (EAP) 構成 XML を作成するための詳細なガイド (Windows 10での EAP 証明書のフィルター処理に関する情報など) を提供します。

VPN プロファイルの EAP 構成 XML を作成する

ボックスに付属の rasphone ツールを使用して、デスクトップから EAP 構成を取得するには:

  1. rasphone.exe を実行します。

    vpnv2 rasphone。

  2. 現在 VPN 接続がなく、次のメッセージが表示される場合は、[OK] を選択 します

    vpnv2 csp ネットワーク接続。

  3. ウィザードで、[ Workplace network]\(ワークプレース ネットワーク\) を選択します。

    vpnv2 csp によって接続が設定されます。

  4. インターネット アドレスと接続名を入力します。 これらの詳細は、認証パラメーターに影響しないため、偽の可能性があります。

    vpnv2 csp は接続 2 を設定します。

  5. 偽の VPN 接続を作成します。 ここに表示される UI で、[プロパティ] を選択 します

    vpnv2 csp は nw 接続を選択します。

  6. [ テストのプロパティ ] ダイアログで、[ セキュリティ ] タブを選択します。

    vpnv2 csp テスト プロップ。

  7. [ セキュリティ ] タブで、[ 拡張認証プロトコル (EAP) を使用する] を選択します。

    vpnv2 csp テスト props2。

  8. ドロップダウン メニューから、構成する EAP メソッドを選択し、[ プロパティ ] を選択して必要に応じて構成します。

    vpnv2 csp テスト props3。vpnv2 csp テスト props4

  9. PowerShell に切り替え、次のコマンドレットを使用して EAP 構成 XML を取得します。

    Get-VpnConnection -Name Test
    

    出力例を次に示します。

    Name                  : Test
    ServerAddress         : 1.1.1.1
    AllUserConnection     : False
    Guid                  : {EC87F6C9-8823-416C-B92B-517D592E250F}
    TunnelType            : Automatic
    AuthenticationMethod  : {Eap}
    EncryptionLevel       : Optional
    L2tpIPsecAuth         : Certificate
    UseWinlogonCredential : False
    EapConfigXmlStream    : #document
    ConnectionStatus      : Disconnected
    RememberCredential    : True
    SplitTunneling        : False
    DnsSuffix             :
    IdleDisconnectSeconds : 0
    
    $a = Get-VpnConnection -Name Test
    
    $a.EapConfigXmlStream.InnerXml
    

    出力例を次に示します。

    <EapHostConfig xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
      <EapMethod>
        <Type xmlns="http://www.microsoft.com/provisioning/EapCommon">13</Type>
        <VendorId xmlns="http://www.microsoft.com/provisioning/EapCommon">0</VendorId>
        <VendorType xmlns="http://www.microsoft.com/provisioning/EapCommon">0</VendorType>
        <AuthorId xmlns="http://www.microsoft.com/provisioning/EapCommon">0</AuthorId>
      </EapMethod>
      <Config xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
        <Eap xmlns="http://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1">
          <Type>13</Type>
          <EapType xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV1">
            <CredentialsSource>
              <CertificateStore>
                <SimpleCertSelection>true</SimpleCertSelection>
              </CertificateStore>
            </CredentialsSource>
            <ServerValidation>
              <DisableUserPromptForServerValidation>false</DisableUserPromptForServerValidation>
              <ServerNames />
            </ServerValidation>
            <DifferentUsername>false</DifferentUsername>
            <PerformServerValidation xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">true</PerformServerValidation>
            <AcceptServerName xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">true</AcceptServerName>
            <TLSExtensions xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">
              <FilteringInfo xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV3">
                <ClientAuthEKUList Enabled="true" />
                <AnyPurposeEKUList Enabled="true" />
              </FilteringInfo>
            </TLSExtensions>
          </EapType>
        </Eap>
      </Config>
    </EapHostConfig>
    

    この XML をエスケープ形式で渡す必要がある場合は、Mobile デバイス管理 (MDM) ベンダーとチェックする必要があります。 すべての EAP メソッドの XSD はボックスに付属しており、次の場所にあります。

    • C:\Windows\schemas\EAPHost
    • C:\Windows\schemas\EAPMethods

EAP 証明書のフィルター処理

展開で、デバイスに複数の証明書がプロビジョニングされていて、プロビジョニングされた Wi-Fi プロファイルに厳密なフィルター条件がない場合、Wi-Fi に接続するときに接続エラーが発生する可能性があります。 解決策は、プロビジョニングされた Wi-Fi プロファイルが厳密なフィルター条件を持ち、1 つの証明書にのみ一致するようにすることです。

VPN および Wi-Fi 用の証明書ベースの EAP 認証を展開している企業では、認証の既定の条件を満たす証明書が複数存在する状況が発生する可能性があります。 このような状況では、次のような問題が発生する可能性があります。

  • ユーザーに証明書の選択を求められる場合があります。
  • 間違った証明書が自動選択され、認証エラーが発生する可能性があります。

運用環境に対応した展開には、展開するプロファイルの一部として適切な証明書の詳細が必要です。 次の情報では、不要な証明書をフィルター処理し、認証に適切な証明書を使用できるように EAP 構成 XML を作成または更新する方法について説明します。

EAP XML は、環境に関連する情報で更新する必要があります。 このタスクは、次の XML サンプルを編集するか、ステップ バイ ステップ UI ガイドを使用して手動で実行できます。 EAP XML が更新されたら、MDM の手順を参照して、更新された構成を次のように展開します。

  • Wi-Fi については、現在の WLAN プロファイル XML のセクションを探 <EAPConfig> します。 (このセクションでは、Wi-Fi CSP の WLanXml ノードに指定します)。これらのタグ内には、完全な EAP 構成が含まれます。 のセクション <EAPConfig> を更新した XML に置き換え、Wi-Fi プロファイルを更新します。 新しい Wi-Fi プロファイルをデプロイする方法に関する MDM のガイダンスを参照できます。
  • VPN の場合、EAP 構成は MDM 構成の別のフィールドです。 MDM プロバイダーと連携して、適切なフィールドを特定して更新します。

EAP 設定の詳細については、 ネットワーク アクセスの拡張認証プロトコル (EAP) に関するページを参照してください。

EAP XML の生成については、EAP 構成に関する記事を参照してください。

拡張キー使用法 (EKU) の詳細については、を参照してください https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.12

EKU を証明書に追加する方法については、「」を参照してください https://technet.microsoft.com/library/cc731792.aspx

次の一覧では、EAP で使用する証明書の前提条件について説明します。

  • 証明書には、次のいずれかの EKU プロパティが必要です。

    • クライアント認証: RFC 5280 で定義されているように、このプロパティは、値 1.3.6.1.5.5.7.3.2 を持つ適切に定義された OID です。
    • 任意の目的: このプロパティは EKU で定義され、Microsoft によって発行されます。 これは、値 1.3.6.1.4.1.311.10.12.12.1 の適切に定義された OID です。 この OID を含めることは、証明書を任意の目的で使用できることを意味します。 この EKU が All Purpose EKU よりも優れている利点は、有効なフィルター処理のために、他の重要でない EKU またはカスタム EKU を証明書に追加できることです。
    • すべての目的: RFC 5280 で定義されているように、CA にアプリケーションのニーズを満たすために EKU が含まれているが、キーの使用を制限したくない場合、CA は EKU 値 0 を追加できます。 このような EKU を持つ証明書は、あらゆる目的で使用できます。
  • クライアント上のユーザーまたはコンピューター証明書は、信頼されたルート CA にチェーンする必要があります。

  • ユーザーまたはコンピューター証明書は、CryptoAPI 証明書ストアによって実行されるいずれかのチェックに失敗せず、証明書はリモート アクセス ポリシーの要件を満たしています。

  • ユーザーまたはコンピューター証明書は、インターネット認証サービス (IAS)/Radius Server で指定されている証明書オブジェクト識別子チェックのいずれにも失敗しません。

  • 証明書のサブジェクト代替名 (SubjectAltName) 拡張機能には、ユーザーのユーザー プリンシパル名 (UPN) が含まれています。

次の XML サンプルでは、証明書のフィルター処理など、EAP TLS XML のプロパティについて説明します。

PEAP または TTLS プロファイルの場合、EAP TLS XML は一部の PEAP 固有または TTLS 固有の要素に埋め込まれます。

<EapHostConfig xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
 <EapMethod>
  <Type xmlns="http://www.microsoft.com/provisioning/EapCommon">13</Type>
  <!--The above property defines the Method type for EAP, 13 means EAP TLS -->

  <VendorId xmlns="http://www.microsoft.com/provisioning/EapCommon">0</VendorId>
  <VendorType xmlns="http://www.microsoft.com/provisioning/EapCommon">0</VendorType>
  <AuthorId xmlns="http://www.microsoft.com/provisioning/EapCommon">0</AuthorId>
  <!--The 3 properties above define the method publishers, this is seen primarily in 3rd party Vendor methods.-->
  <!-- For Microsoft EAP TLS the value of the above fields will always be 0 -->
 </EapMethod>
 <!-- Now that the EAP Method is Defined we will go into the Configuration -->
 <Config xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
  <Eap xmlns="http://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1">
   <Type>13</Type>
   <EapType xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV1">
    <CredentialsSource>
     <!-- Credential Source can be either CertificateStore or SmartCard -->
     <CertificateStore>
      <SimpleCertSelection>true</SimpleCertSelection>
      <!--SimpleCertSelection automatically selects a cert if there are mutiple identical (Same UPN, Issuer, etc.) certs.-->
      <!--It uses a combination of rules to select the right cert-->
     </CertificateStore>
    </CredentialsSource>
    <ServerValidation>
     <!-- ServerValidation fields allow for checks on whether the server being connected to and the server cert being used are trusted -->
     <DisableUserPromptForServerValidation>false</DisableUserPromptForServerValidation>
     <ServerNames/>
    </ServerValidation>
    <DifferentUsername>false</DifferentUsername>
    <PerformServerValidation xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">false</PerformServerValidation>
    <AcceptServerName xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">false</AcceptServerName>
    <TLSExtensions xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV2">
     <!-- For filtering the relevant information is below -->
     <FilteringInfo xmlns="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV3">
      <CAHashList Enabled="true">
       <!-- The above implies that you want to filter by Issuer Hash -->
       <IssuerHash>ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
        <!-- Issuing certs thumbprint goes here-->
       </IssuerHash>
       <!-- You can add multiple entries and it will find the list of certs that have at least one of these certs in its chain-->
      </CAHashList>
      <EKUMapping>
       <!-- This section defines Custom EKUs that you may be adding-->
       <!-- You do not need this section if you do not have custom EKUs -->
       <!-- You can have multiple EKUs defined here and then referenced below as shown -->
       <EKUMap>
        <EKUName>
         <!--Add a friendly Name for an EKU here for example -->ContostoITEKU</EKUName>
        <EKUOID>
         <!--Add the OID Value your CA adds to the certificate here, for example -->1.3.6.1.4.1.311.42.1.15</EKUOID>
       </EKUMap>
        <!-- All the EKU Names referenced in the example below must first be defined here
       <EKUMap>
        <EKUName>Example1</EKUName>
        <EKUOID>2.23.133.8.3</EKUOID>

       </EKUMap>
       <EKUMap>
        <EKUName>Example2</EKUName>
        <EKUOID>1.3.6.1.4.1.311.20.2.1</EKUOID>
       </EKUMap>
       -->
      </EKUMapping>
      <ClientAuthEKUList Enabled="true">
       <!-- The above implies that you want certs with Client Authentication EKU to be used for authentication -->
       <EKUMapInList>
        <!-- This section implies that the certificate should have the following custom EKUs in addition to the Client Authentication EKU -->
        <EKUName>
         <!--Use the name from the EKUMap Field above-->ContostoITEKU</EKUName>
       </EKUMapInList>
       <!-- You can have multiple Custom EKUs mapped here, Each additional EKU will be processed with an AND operand -->
       <!-- For example, Client Auth EKU AND ContosoITEKU AND Example1 etc. -->
       <EKUMapInList>
        <EKUName>Example1</EKUName>
       </EKUMapInList>
      </ClientAuthEKUList>
      <AllPurposeEnabled>true</AllPurposeEnabled>
      <!-- Implies that a certificate with the EKU field = 0 will be selected -->
      <AnyPurposeEKUList Enabled="true"/>
      <!-- Implies that a certificate with the EKU oid Value of 1.3.6.1.4.1.311.10.12.1 will be selected -->
      <!-- Like for Client Auth you can also add Custom EKU properties with AnyPurposeEKUList (but not with AllPurposeEnabled) -->
      <!-- So here is what the above policy implies.
      The certificate selected will have
      Issuer Thumbprint = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
      AND
      ((Client Authentication EKU AND ContosoITEKU) OR (AnyPurposeEKU) OR AllPurpose Certificate)

      Any certificate(s) that match these criteria will be utilised for authentication
      -->
     </FilteringInfo>
    </TLSExtensions>
   </EapType>
  </Eap>
 </Config>
</EapHostConfig>

EAP TLS XSD は%systemdrive%\Windows\schemas\EAPMethods\eaptlsconnectionpropertiesv3.xsd にあります。

または、次の手順を使用して EAP 構成 XML を作成することもできます。

  1. EAP 構成に関する記事の手順 1 から 7 に従います。

  2. [ Microsoft VPN SelfHost のプロパティ ] ダイアログ ボックスで、ドロップダウン メニューから [ Microsoft: Smart Card またはその他の証明書 ] を選択します (この値は EAP TLS を選択します)。

    vpn セルフ ホストのプロパティ ウィンドウ。

    PEAP または TTLS の場合は、適切な方法を選択し、この手順に従います。

  3. ドロップダウン メニューの下にある [ プロパティ ] ボタンを選択します。

  4. [ スマート カード] またはその他の [証明書のプロパティ ] メニューで、[ 詳細設定 ] ボタンを選択します。

    スマート カードまたはその他の証明書のプロパティ ウィンドウ。

  5. [ 証明書の選択の構成 ] メニューで、必要に応じてフィルターを調整します。

    証明書ウィンドウを構成します。

  6. [OK] を選択してウィンドウを閉じ、[メイン rasphone.exe] ダイアログ ボックスに戻ります。

  7. rasphone ダイアログ ボックスを閉じます。

  8. 手順 9 の EAP 構成に関する記事の手順に従って、適切なフィルター処理を使用して EAP TLS プロファイルを取得します。

また、この UI を使用して、他のすべての該当する EAP プロパティを設定することもできます。 これらのプロパティの意味については、 ネットワーク アクセスの拡張認証プロトコル (EAP) に関する記事を参照してください。

構成サービス プロバイダーのリファレンス