EAP configuration

Questo articolo fornisce una guida dettagliata per la creazione di un XML di configurazione EAP (Extensible Authentication Protocol) per un profilo VPN, incluse informazioni sul filtro dei certificati EAP in Windows 10.

Creare un xml di configurazione EAP per un profilo VPN

Per ottenere la configurazione EAP dal desktop usando lo strumento rasphone fornito nella casella:

  1. Eseguire rasphone.exe.

    vpnv2 rasphone.

  2. Se attualmente non si dispone di una connessione VPN e viene visualizzato il messaggio seguente, selezionare OK.

    connessioni di rete csp vpnv2.

  3. Nella procedura guidata selezionare Rete aziendale.

    vpnv2 csp configura la connessione.

  4. Immettere un indirizzo Internet e un nome di connessione. Questi dettagli possono essere falsi perché non influiscono sui parametri di autenticazione.

    vpnv2 csp configura la connessione 2.

  5. Creare una connessione VPN falsa. Nell'interfaccia utente visualizzata selezionare Proprietà.

    vpnv2 csp scegliere nw connection.vpnv2 csp choose nw connection.

  6. Nella finestra di dialogo Proprietà test selezionare la scheda Sicurezza .

    oggetti di proprietà di test csp vpnv2.

  7. Nella scheda Sicurezza selezionare Usa EAP (Extensible Authentication Protocol).

    vpnv2 csp test props2.

  8. Dal menu a discesa selezionare il metodo EAP da configurare e quindi selezionare Proprietà da configurare in base alle esigenze.

    vpnv2 csp test props3. vpnv2 csp test props4

  9. Passare a PowerShell e usare i cmdlet seguenti per recuperare il codice XML di configurazione EAP.

    Get-VpnConnection -Name Test
    

    Ecco un output di esempio.

    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
    

    Ecco un output di esempio.

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

    Nota

    È consigliabile rivolgersi al fornitore di Mobile Gestione dispositivi (MDM), se è necessario passare il codice XML in formato escape. Gli XSD per tutti i metodi EAP vengono spediti nella casella e sono disponibili nelle posizioni seguenti:

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

Filtro dei certificati EAP

Nella distribuzione, se è stato effettuato il provisioning di più certificati nel dispositivo e il profilo di Wi-Fi sottoposto a provisioning non ha criteri di filtro rigorosi, potrebbero verificarsi errori di connessione durante la connessione al Wi-Fi. La soluzione consiste nel garantire che il profilo di Wi-Fi sottoposto a provisioning abbia criteri di filtro rigorosi in modo che corrisponda a un solo certificato.

Le aziende che distribuiscono l'autenticazione EAP basata su certificati per VPN e Wi-Fi possono riscontrare una situazione in cui sono presenti più certificati che soddisfano i criteri predefiniti per l'autenticazione. Questa situazione può causare problemi come:

  • All'utente potrebbe essere richiesto di selezionare il certificato.
  • Il certificato errato potrebbe essere selezionato automaticamente e causare un errore di autenticazione.

Una distribuzione pronta per la produzione deve avere i dettagli del certificato appropriati come parte del profilo distribuito. Le informazioni seguenti spiegano come creare o aggiornare un xml di configurazione EAP in modo che i certificati estranei vengano filtrati e che sia possibile usare il certificato appropriato per l'autenticazione.

Il codice XML EAP deve essere aggiornato con informazioni rilevanti per l'ambiente. Questa attività può essere eseguita manualmente modificando l'esempio XML seguente o usando la guida dettagliata all'interfaccia utente. Dopo aver aggiornato il codice XML EAP, fare riferimento alle istruzioni del MDM per distribuire la configurazione aggiornata come indicato di seguito:

  • Per Wi-Fi, cercare la <EAPConfig> sezione del codice XML del profilo WLAN corrente. Questa sezione è quella specificata per il nodo WLanXml nel CSP Wi-Fi. All'interno di questi tag è disponibile la configurazione EAP completa. Sostituire la sezione in <EAPConfig> con il codice XML aggiornato e aggiornare il profilo di Wi-Fi. È possibile fare riferimento alle indicazioni di MDM su come distribuire un nuovo profilo di Wi-Fi.
  • Per VPN, la configurazione EAP è un campo separato nella configurazione MDM. Collaborare con il provider MDM per identificare e aggiornare il campo appropriato.

Per informazioni sulle impostazioni EAP, vedere Extensible Authentication Protocol (EAP) per l'accesso alla rete.

Per informazioni sulla generazione di un codice XML EAP, vedere l'articolo configurazione EAP.

Per altre informazioni sull'utilizzo esteso delle chiavi (EKU), vedere https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.12.

Per informazioni sull'aggiunta di EKU a un certificato, vedere https://technet.microsoft.com/library/cc731792.aspx.

L'elenco seguente descrive i prerequisiti per un certificato da usare con EAP:

  • Il certificato deve avere almeno una delle proprietà EKU seguenti:

    • Autenticazione client: come definito da RFC 5280, questa proprietà è un OID ben definito con valore 1.3.6.1.5.5.7.3.2.
    • Qualsiasi scopo: questa proprietà è definita dall'EKU ed è pubblicata da Microsoft. Si tratta di un OID ben definito con valore 1.3.6.1.4.1.311.10.12.1. L'inclusione di questo OID implica che il certificato può essere usato per qualsiasi scopo. Il vantaggio di questo EKU rispetto all'EKU per tutti gli scopi è che altre EKU non critiche o personalizzate possono ancora essere aggiunte al certificato per un filtro efficace.
    • Tutti gli scopi: come definito da RFC 5280, se una CA include EKU per soddisfare alcune esigenze dell'applicazione, ma non vuole limitare l'utilizzo della chiave, la CA può aggiungere un valore EKU pari a 0. Un certificato con tale EKU può essere usato per tutti gli scopi.
  • L'utente o il certificato del computer nel client deve concatenare a una CA radice attendibile.

  • L'utente o il certificato del computer non ha esito negativo su uno dei controlli eseguiti dall'archivio certificati CryptoAPI e il certificato supera i requisiti nei criteri di accesso remoto.

  • L'utente o il certificato computer non ha esito negativo per uno dei controlli dell'identificatore dell'oggetto certificato specificati nel server IAS (Internet Authentication Service)/Radius.

  • L'estensione Subject Alternative Name (SubjectAltName) nel certificato contiene il nome dell'entità utente (UPN) dell'utente.

Nell'esempio XML seguente vengono illustrate le proprietà per il codice XML TLS EAP, incluso il filtro dei certificati.

Nota

Per i profili PEAP o TTLS, il codice XML TLS EAP viene incorporato in alcuni elementi specifici di PEAP o specifici di 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>

Nota

EAP TLS XSD si trova in %systemdrive%\Windows\schemas\EAPMethods\eaptlsconnectionpropertiesv3.xsd.

In alternativa, è possibile usare la procedura seguente per creare un XML di configurazione EAP:

  1. Seguire i passaggi da 1 a 7 nell'articolo configurazione EAP.

  2. Nella finestra di dialogo Proprietà SelfHost vpn Microsoft selezionare Microsoft: Smart Card o altro certificato dal menu a discesa (questo valore seleziona EAP TLS).

    Finestra delle proprietà dell'host self-service vpn.

    Nota

    Per PEAP o TTLS selezionare il metodo appropriato e continuare a seguire questa procedura.

  3. Selezionare il pulsante Proprietà sotto il menu a discesa.

  4. Nel menu Smart Card o in altre proprietà certificato selezionare il pulsante Avanzate .

    smart card o altra finestra delle proprietà del certificato.

  5. Nel menu Configura selezione certificato regolare i filtri in base alle esigenze.

    finestra configura certificato.

  6. Selezionare OK per chiudere le finestre e tornare alla finestra di dialogo principale rasphone.exe.

  7. Chiudere la finestra di dialogo rasphone.

  8. Continuare a seguire la procedura descritta nell'articolo configurazione EAP del passaggio 9 per ottenere un profilo TLS EAP con filtri appropriati.

Nota

Puoi anche impostare tutte le altre proprietà EAP applicabili anche tramite questa interfaccia utente. Una guida per il significato di queste proprietà è disponibile nell'articolo Extensible Authentication Protocol (EAP) per l'accesso alla rete .

Riferimento del provider di servizi di configurazione