EAP-Konfiguration

Dieser Artikel enthält eine schritt-für-Schritt-Anleitung zum Erstellen einer EAP-Konfigurations-XML (Extensible Authentication Protocol) für ein VPN-Profil, einschließlich Informationen zur EAP-Zertifikatfilterung in Windows 10.

Erstellen einer EAP-Konfigurations-XML für ein VPN-Profil

So rufen Sie die EAP-Konfiguration von Ihrem Desktop mit dem rasphone-Tool ab, das im Lieferumfang enthalten ist:

  1. Führen Sie rasphone.exe aus.

    vpnv2 rasphone.

  2. Wenn Sie derzeit keine VPN-Verbindung haben und die folgende Meldung angezeigt wird, wählen Sie OK aus.

    vpnv2 csp-Netzwerkverbindungen.

  3. Wählen Sie im Assistenten Arbeitsplatznetzwerk aus.

    vpnv2 csp richtet die Verbindung ein.

  4. Geben Sie eine Internetadresse und einen Verbindungsnamen ein. Diese Details können gefälscht sein, da sie sich nicht auf die Authentifizierungsparameter auswirken.

    vpnv2 csp richtet Verbindung 2 ein.

  5. Erstellen Sie eine gefälschte VPN-Verbindung. Wählen Sie auf der hier gezeigten Benutzeroberfläche Eigenschaften aus.

    vpnv2 csp wählen Sie nw-Verbindung aus.

  6. Wählen Sie im Dialogfeld Testeigenschaften die Registerkarte Sicherheit aus.

    vpnv2 csp-Testeigenschaften.

  7. Wählen Sie auf der Registerkarte Sicherheit die Option Extensible Authentication Protocol (EAP) verwenden aus.

    vpnv2 csp test props2.

  8. Wählen Sie im Dropdownmenü die EAP-Methode aus, die Sie konfigurieren möchten, und wählen Sie dann Eigenschaften aus, um sie nach Bedarf zu konfigurieren.

    vpnv2 csp test props3.vpnv2 csp test props4

  9. Wechseln Sie zu PowerShell, und verwenden Sie die folgenden Cmdlets, um die EAP-Konfigurations-XML abzurufen.

    Get-VpnConnection -Name Test
    

    Hier sehen Sie eine Beispielausgabe.

    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
    

    Hier sehen Sie eine Beispielausgabe.

    <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>
    

    Hinweis

    Wenden Sie sich an den Anbieter von Mobile Geräteverwaltung (MDM), wenn Sie diesen XML-Code im Escapeformat übergeben müssen. Die XSDs für alle EAP-Methoden werden im Lieferumfang geliefert und finden Sie an den folgenden Stellen:

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

EAP-Zertifikatfilterung

Wenn Sie in Ihrer Bereitstellung mehrere Zertifikate auf dem Gerät bereitgestellt haben und das bereitgestellte Wi-Fi Profil keine strengen Filterkriterien aufweist, treten beim Herstellen einer WLAN-Verbindung möglicherweise Verbindungsfehler auf. Die Lösung besteht darin, sicherzustellen, dass das bereitgestellte Wi-Fi Profil strenge Filterkriterien aufweist, sodass es nur einem Zertifikat entspricht.

Unternehmen, die die zertifikatbasierte EAP-Authentifizierung für VPN und Wi-Fi bereitstellen, können eine Situation feststellen, in der mehrere Zertifikate vorhanden sind, die die Standardkriterien für die Authentifizierung erfüllen. Diese Situation kann zu Problemen führen, z. B.:

  • Der Benutzer wird möglicherweise aufgefordert, das Zertifikat auszuwählen.
  • Das falsche Zertifikat wird möglicherweise automatisch ausgewählt und verursacht einen Authentifizierungsfehler.

Eine produktionsbereite Bereitstellung muss über geeignete Zertifikatdetails als Teil des bereitgestellten Profils verfügen. In den folgenden Informationen wird erläutert, wie Sie eine EAP-Konfigurations-XML erstellen oder aktualisieren, sodass die überflüssigen Zertifikate herausgefiltert werden und das entsprechende Zertifikat für die Authentifizierung verwendet werden kann.

EAP-XML muss mit relevanten Informationen für Ihre Umgebung aktualisiert werden. Diese Aufgabe kann manuell ausgeführt werden, indem Sie das folgende XML-Beispiel bearbeiten oder die Schritt-für-Schritt-Anleitung verwenden. Nachdem die EAP-XML aktualisiert wurde, lesen Sie die Anweisungen Ihres MDM, um die aktualisierte Konfiguration wie folgt bereitzustellen:

  • Für WLAN suchen Sie nach dem <EAPConfig> Abschnitt Ihres aktuellen WLAN-Profil-XML. (In diesem Abschnitt geben Sie für den WLanXml-Knoten im Wi-Fi CSP an.) In diesen Tags finden Sie die vollständige EAP-Konfiguration. Ersetzen Sie den Abschnitt unter durch <EAPConfig> Ihren aktualisierten XML-Code, und aktualisieren Sie Ihr Wi-Fi Profil. Informationen zum Bereitstellen eines neuen Wi-Fi-Profils finden Sie in der Anleitung Ihrer MDM.
  • Für VPN ist die EAP-Konfiguration ein separates Feld in der MDM-Konfiguration. Arbeiten Sie mit Ihrem MDM-Anbieter zusammen, um das entsprechende Feld zu identifizieren und zu aktualisieren.

Informationen zu EAP-Einstellungen finden Sie unter Extensible Authentication Protocol (EAP) für den Netzwerkzugriff.

Informationen zum Generieren einer EAP-XML-Datei finden Sie im Artikel zur EAP-Konfiguration.

Weitere Informationen zur erweiterten Schlüsselverwendung (Extended Key Usage, EKU) finden Sie unter https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.12.

Informationen zum Hinzufügen einer EKU zu einem Zertifikat finden Sie unter https://technet.microsoft.com/library/cc731792.aspx.

In der folgenden Liste werden die Voraussetzungen für die Verwendung eines Zertifikats mit EAP beschrieben:

  • Das Zertifikat muss mindestens eine der folgenden EKU-Eigenschaften aufweisen:

    • Clientauthentifizierung: Wie in RFC 5280 definiert, ist diese Eigenschaft eine klar definierte OID mit dem Wert 1.3.6.1.5.5.7.3.2.
    • Beliebiger Zweck: Diese Eigenschaft ist eine EKU-definierte Eigenschaft, die von Microsoft veröffentlicht wird. Es handelt sich um eine klar definierte OID mit dem Wert 1.3.6.1.4.1.311.10.12.1. Die Aufnahme dieser OID impliziert, dass das Zertifikat für jeden Zweck verwendet werden kann. Der Vorteil dieser EKU gegenüber der All Purpose EKU besteht darin, dass dem Zertifikat weiterhin andere nicht kritische oder benutzerdefinierte EKUs zur effektiven Filterung hinzugefügt werden können.
    • Alle Zwecke: Wie in RFC 5280 definiert, kann die Zertifizierungsstelle den EKU-Wert 0 hinzufügen, wenn eine Zertifizierungsstelle EKUs enthält, um einige Anwendungsanforderungen zu erfüllen, die Verwendung des Schlüssels aber nicht einschränken möchte. Ein Zertifikat mit einer solchen EKU kann für alle Zwecke verwendet werden.
  • Das Benutzer- oder Computerzertifikat auf dem Client muss mit einer vertrauenswürdigen Stammzertifizierungsstelle verkettet werden.

  • Das Benutzer- oder Computerzertifikat schlägt keine der überprüfungen fehl, die vom CryptoAPI-Zertifikatspeicher ausgeführt werden, und das Zertifikat erfüllt die Anforderungen in der Remotezugriffsrichtlinie.

  • Der Benutzer oder das Computerzertifikat schlägt keine der Zertifikatobjektbezeichnerprüfungen fehl, die im Internetauthentifizierungsdienst (IAS)/Radius-Server angegeben sind.

  • Die Erweiterung "Alternativer Antragstellername" (SubjectAltName) im Zertifikat enthält den Benutzerprinzipalnamen (User Principal Name, UPN) des Benutzers.

Im folgenden XML-Beispiel werden die Eigenschaften für die EAP-TLS-XML erläutert, einschließlich Zertifikatfilterung.

Hinweis

Für PEAP- oder TTLS-Profile ist die EAP-TLS-XML in einige PEAP-spezifische oder TTLS-spezifische Elemente eingebettet.

<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>

Hinweis

Die EAP TLS-XSD befindet sich unter %systemdrive%\Windows\schemas\EAPMethods\eaptlsconnectionpropertiesv3.xsd.

Alternativ können Sie das folgende Verfahren verwenden, um eine EAP-Konfigurations-XML zu erstellen:

  1. Führen Sie die Schritte 1 bis 7 im EAP-Konfigurationsartikel aus.

  2. Wählen Sie im Dialogfeld Microsoft VPN SelfHost-Eigenschaften im Dropdownmenü Die Option Microsoft: Smartcard oder anderes Zertifikat aus (mit diesem Wert wird EAP TLS ausgewählt).

    Eigenschaftenfenster des VPN-Selbsthosts.

    Hinweis

    Wählen Sie für PEAP oder TTLS die entsprechende Methode aus, und fahren Sie mit diesem Verfahren fort.

  3. Wählen Sie unterhalb des Dropdownmenüs die Schaltfläche Eigenschaften aus.

  4. Wählen Sie im Menü Smartcard oder andere Zertifikateigenschaften die Schaltfläche Erweitert aus.

    Fenster

  5. Passen Sie im Menü Zertifikatauswahl konfigurieren die Filter nach Bedarf an.

    Fenster zum Konfigurieren des Zertifikats.

  6. Wählen Sie OK aus, um die Fenster zu schließen und zum Dialogfeld Standard rasphone.exe zurückzukehren.

  7. Schließen Sie das Dialogfeld rasphone.

  8. Fahren Sie mit dem Verfahren im EAP-Konfigurationsartikel aus Schritt 9 fort, um ein EAP-TLS-Profil mit entsprechender Filterung abzurufen.

Hinweis

Sie können auch alle anderen anwendbaren EAP-Eigenschaften über diese Benutzeroberfläche festlegen. Eine Anleitung dazu, was diese Eigenschaften bedeuten, finden Sie im Artikel Extensible Authentication Protocol (EAP) für den Netzwerkzugriff .

Referenz zum Konfigurationsdienstanbieter