Configuration EAP

Cet article fournit un guide pas à pas pour la création d’un xml de configuration EAP (Extensible Authentication Protocol) pour un profil VPN, y compris des informations sur le filtrage des certificats EAP dans Windows 10.

Créer un fichier XML de configuration EAP pour un profil VPN

Pour obtenir la configuration EAP à partir de votre bureau à l’aide de l’outil rasphone fourni dans la boîte :

  1. Exécutez rasphone.exe.

    vpnv2 rasphone.

  2. Si vous n’avez pas de connexion VPN et que le message suivant s’affiche, sélectionnez OK.

    Connexions réseau csp vpnv2.

  3. Dans l’Assistant, sélectionnez Réseau d’espace de travail.

    Configuration de la connexion du fournisseur de services de configuration vpnv2.

  4. Entrez une adresse Internet et un nom de connexion. Ces détails peuvent être faux, car ils n’ont pas d’impact sur les paramètres d’authentification.

    vpnv2 csp configurez la connexion 2.

  5. Créez une fausse connexion VPN. Dans l’interface utilisateur présentée ici, sélectionnez Propriétés.

    vpnv2 csp choisir la connexion nw.

  6. Dans la boîte de dialogue Propriétés de test , sélectionnez l’onglet Sécurité .

    Propriétés de test csp vpnv2.

  7. Sous l’onglet Sécurité, sélectionnez Utiliser le protocole EAP (Extensible Authentication Protocol).

    propriétés de test csp vpnv2.

  8. Dans le menu déroulant, sélectionnez la méthode EAP que vous souhaitez configurer, puis sélectionnez Propriétés à configurer en fonction des besoins.

    propriétés de test csp vpnv23.Propriétés de test csp vpnv24

  9. Basculez vers PowerShell et utilisez les applets de commande suivantes pour récupérer le code XML de configuration EAP.

    Get-VpnConnection -Name Test
    

    Voici un exemple de sortie.

    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
    

    Voici un exemple de sortie.

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

    Remarque

    Vous devez case activée avec le fournisseur mobile Gestion des appareils (MDM) si vous devez transmettre ce code XML dans une séquence d’échappement. Les XSD de toutes les méthodes EAP sont expédiés dans la boîte et se trouvent aux emplacements suivants :

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

Filtrage de certificat EAP

Dans votre déploiement, si plusieurs certificats sont provisionnés sur l’appareil et que le profil Wi-Fi approvisionné n’a pas de critères de filtrage stricts, vous pouvez voir des échecs de connexion lors de la connexion au Wi-Fi. La solution consiste à s’assurer que le profil Wi-Fi provisionné a des critères de filtrage stricts afin qu’il ne corresponde qu’à un seul certificat.

Les entreprises qui déploient l’authentification EAP basée sur les certificats pour vpn et Wi-Fi peuvent rencontrer une situation où plusieurs certificats répondent aux critères d’authentification par défaut. Cette situation peut entraîner des problèmes tels que :

  • L’utilisateur peut être invité à sélectionner le certificat.
  • Le certificat incorrect peut être sélectionné automatiquement et provoquer un échec d’authentification.

Un déploiement prêt pour la production doit avoir les détails de certificat appropriés dans le cadre du profil en cours de déploiement. Les informations suivantes expliquent comment créer ou mettre à jour un xml de configuration EAP afin que les certificats superflus soient filtrés et que le certificat approprié puisse être utilisé pour l’authentification.

Le code XML EAP doit être mis à jour avec des informations pertinentes pour votre environnement. Cette tâche peut être effectuée manuellement en modifiant l’exemple XML suivant ou en utilisant le guide pas à pas de l’interface utilisateur. Une fois le code XML EAP mis à jour, reportez-vous aux instructions de votre GPM pour déployer la configuration mise à jour comme suit :

  • Pour Wi-Fi, recherchez la <EAPConfig> section de votre xml de profil WLAN actuel. (Cette section correspond à ce que vous spécifiez pour le nœud WLanXml dans le csp Wi-Fi.) Dans ces balises, vous trouverez la configuration EAP complète. Remplacez la section sous par <EAPConfig> votre code XML mis à jour et mettez à jour votre profil Wi-Fi. Vous pouvez vous reporter aux conseils de votre GPM sur la façon de déployer un nouveau profil Wi-Fi.
  • Pour VPN, la configuration EAP est un champ distinct dans la configuration MDM. Collaborez avec votre fournisseur GPM pour identifier et mettre à jour le champ approprié.

Pour plus d’informations sur les paramètres EAP, consultez Protocole EAP (Extensible Authentication Protocol) pour l’accès réseau.

Pour plus d’informations sur la génération d’un code XML EAP, consultez l’article Configuration EAP.

Pour plus d’informations sur l’utilisation étendue des clés (EKU), consultez https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.12.

Pour plus d’informations sur l’ajout d’une référence EKU à un certificat, consultez https://technet.microsoft.com/library/cc731792.aspx.

La liste suivante décrit les conditions préalables à l’utilisation d’un certificat avec EAP :

  • Le certificat doit avoir au moins l’une des propriétés EKU suivantes :

    • Authentification du client : comme défini par RFC 5280, cette propriété est un OID bien défini avec la valeur 1.3.6.1.5.5.7.3.2.
    • Tout usage : cette propriété est définie par la référence EKU et est publiée par Microsoft. Il s’agit d’un OID bien défini avec la valeur 1.3.6.1.4.1.311.10.12.1. L’inclusion de cet OID implique que le certificat peut être utilisé à n’importe quelle fin. L’avantage de cette référence EKU par rapport à la référence EKU Tout usage est que d’autres EKU non critiques ou personnalisées peuvent toujours être ajoutées au certificat pour un filtrage efficace.
    • Tout usage : comme défini par la RFC 5280, si une autorité de certification inclut des EKU pour répondre à certains besoins de l’application, mais ne souhaite pas restreindre l’utilisation de la clé, l’autorité de certification peut ajouter une valeur de référence EKU de 0. Un certificat avec une telle référence EKU peut être utilisé à toutes fins.
  • L’utilisateur ou le certificat d’ordinateur sur le client doit être lié à une autorité de certification racine approuvée.

  • L’utilisateur ou le certificat d’ordinateur n’échoue pas à l’une des vérifications effectuées par le magasin de certificats CryptoAPI, et le certificat répond aux exigences de la stratégie d’accès à distance.

  • L’utilisateur ou le certificat d’ordinateur n’échoue pas à l’une des vérifications de l’identificateur d’objet de certificat spécifiées dans le service d’authentification Internet (IAS)/Serveur Radius.

  • L’extension SubjectAltName (SubjectAltName) dans le certificat contient le nom d’utilisateur principal (UPN) de l’utilisateur.

L’exemple XML suivant explique les propriétés du xml TLS EAP, y compris le filtrage des certificats.

Remarque

Pour les profils PEAP ou TTLS, le xml TLS EAP est incorporé dans certains éléments spécifiques à PEAP ou 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>

Remarque

Le XSD TLS EAP se trouve dans %systemdrive%\Windows\schemas\EAPMethods\eaptlsconnectionpropertiesv3.xsd.

Vous pouvez également utiliser la procédure suivante pour créer un xml de configuration EAP :

  1. Suivez les étapes 1 à 7 de l’article configuration EAP.

  2. Dans la boîte de dialogue Propriétés de Microsoft VPN SelfHost , sélectionnez Microsoft : Carte à puce ou autre certificat dans le menu déroulant (cette valeur sélectionne EAP TLS).

    Fenêtre propriétés de l’auto-hôte vpn.

    Remarque

    Pour PEAP ou TTLS, sélectionnez la méthode appropriée et continuez à suivre cette procédure.

  3. Sélectionnez le bouton Propriétés sous le menu déroulant.

  4. Dans le menu De la carte à puce ou d’autres propriétés du certificat , sélectionnez le bouton Avancé .

    smart carte ou autre fenêtre de propriétés de certificat.

  5. Dans le menu Configurer la sélection de certificat , ajustez les filtres en fonction des besoins.

    configurer la fenêtre de certificat.

  6. Sélectionnez OK pour fermer les fenêtres et revenir à la boîte de dialogue main rasphone.exe.

  7. Fermez la boîte de dialogue rasphone.

  8. Continuez à suivre la procédure décrite dans l’article configuration EAP de l’étape 9 pour obtenir un profil TLS EAP avec un filtrage approprié.

Remarque

Vous pouvez également définir toutes les autres propriétés EAP applicables via cette interface utilisateur. Vous trouverez un guide sur la signification de ces propriétés dans l’article Eap (Extensible Authentication Protocol) pour l’accès réseau .

Informations de référence sur les fournisseurs de services de configuration