Configuração de EAP

Este artigo fornece um guia passo a passo para criar um XML de configuração do Protocolo de Autenticação Extensível (EAP) para um perfil VPN, incluindo informações sobre filtragem de certificado EAP em Windows 10.

Criar um XML de configuração de EAP para um perfil VPN

Para obter a configuração do EAP da área de trabalho usando a ferramenta rasphone enviada na caixa:

  1. Execute rasphone.exe.

    vpnv2 rasphone.

  2. Se você não tiver uma conexão VPN no momento e vir a mensagem a seguir, selecione OK.

    conexões de rede csp vpnv2.

  3. No assistente, selecione Rede do local de trabalho.

    vpnv2 csp configurar conexão.

  4. Insira um endereço da Internet e um nome de conexão. Esses detalhes podem ser falsos, pois não afetam os parâmetros de autenticação.

    vpnv2 csp configurou a conexão 2.

  5. Crie uma conexão VPN falsa. Na interface do usuário mostrada aqui, selecione Propriedades.

    vpnv2 csp escolha conexão nw.

  6. Na caixa de diálogo Propriedades de Teste , selecione a guia Segurança .

    vpnv2 csp test props.

  7. Na guia Segurança , selecione Usar Protocolo de Autenticação Extensível (EAP).

    vpnv2 csp test props2.

  8. No menu suspenso, selecione o método EAP que você deseja configurar e selecione Propriedades para configurar conforme necessário.

    vpnv2 csp test props3.vpnv2 csp test props4

  9. Alterne para o PowerShell e use os cmdlets a seguir para recuperar o XML de configuração do EAP.

    Get-VpnConnection -Name Test
    

    Aqui está uma saída de exemplo.

    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
    

    Aqui está uma saída de exemplo.

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

    Observação

    Você deve marcar com o fornecedor MDM (Mobile Gerenciamento de Dispositivos), se precisar passar esse XML em formato de escape. Os XSDs para todos os métodos EAP são enviados na caixa e podem ser encontrados nos seguintes locais:

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

Filtragem de certificado EAP

Em sua implantação, se você tiver vários certificados provisionados no dispositivo e o perfil Wi-Fi provisionado não tiver um critério de filtragem rigoroso, você poderá ver falhas de conexão ao se conectar ao Wi-Fi. A solução é garantir que o Wi-Fi perfil provisionado tenha critérios de filtragem rigorosos para que corresponda apenas a um certificado.

As empresas que implantam a autenticação EAP baseada em certificado para VPN e Wi-Fi podem encontrar uma situação em que há vários certificados que atendem aos critérios padrão de autenticação. Essa situação pode levar a problemas como:

  • O usuário pode ser solicitado a selecionar o certificado.
  • O certificado errado pode ser selecionado automaticamente e causar uma falha de autenticação.

Uma implantação pronta para produção deve ter os detalhes apropriados do certificado como parte do perfil que está sendo implantado. As informações a seguir explicam como criar ou atualizar um XML de configuração EAP de modo que os certificados extraneous sejam filtrados e o certificado apropriado possa ser usado para a autenticação.

O EAP XML deve ser atualizado com informações relevantes para seu ambiente. Essa tarefa pode ser feita manualmente editando o exemplo XML a seguir ou usando o guia de interface do usuário passo a passo. Depois que o XML do EAP for atualizado, consulte as instruções do MDM para implantar a configuração atualizada da seguinte maneira:

  • Para Wi-Fi, procure a <EAPConfig> seção do XML do perfil WLAN atual. (Esta seção é o que você especifica para o nó WLanXml no Wi-Fi CSP.) Dentro dessas marcas, você encontrará a configuração EAP completa. Substitua a seção em <EAPConfig> pelo XML atualizado e atualize seu perfil de Wi-Fi. Você pode consultar as diretrizes do MDM sobre como implantar um novo perfil de Wi-Fi.
  • Para VPN, a configuração do EAP é um campo separado na configuração do MDM. Trabalhe com seu provedor de MDM para identificar e atualizar o campo apropriado.

Para obter informações sobre as configurações do EAP, consulte Protocolo de Autenticação Extensível (EAP) para acesso à rede.

Para obter informações sobre como gerar um XML do EAP, consulte o artigo de configuração do EAP.

Para obter mais informações sobre o EKU (uso de chave estendida), consulte https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.12.

Para obter informações sobre como adicionar eKU a um certificado, consulte https://technet.microsoft.com/library/cc731792.aspx.

A lista a seguir descreve os pré-requisitos para um certificado a ser usado com o EAP:

  • O certificado deve ter pelo menos uma das seguintes propriedades EKU:

    • Autenticação do cliente: conforme definido pelo RFC 5280, essa propriedade é uma OID bem definida com o valor 1.3.6.1.5.5.7.3.2.
    • Qualquer Finalidade: essa propriedade é definida por EKU e é publicada pela Microsoft. É uma OID bem definida com o valor 1.3.6.1.4.1.311.10.12.1. A inclusão desse OID implica que o certificado pode ser usado para qualquer finalidade. A vantagem dessa EKU sobre a EKU de Todos os Fins é que outras EKUs não críticas ou personalizadas ainda podem ser adicionadas ao certificado para filtragem eficaz.
    • All Purpose: Conforme definido pelo RFC 5280, se uma AC incluir EKUs para atender a algumas necessidades do aplicativo, mas não quiser restringir o uso da chave, a AC poderá adicionar um valor EKU de 0. Um certificado com tal EKU pode ser usado para todas as finalidades.
  • O usuário ou o certificado de computador no cliente devem ser encadeados a uma AC raiz confiável.

  • O usuário ou o certificado de computador não falha em nenhuma das verificações executadas pelo repositório de certificados CryptoAPI e o certificado passa os requisitos na política de acesso remoto.

  • O usuário ou o certificado do computador não falha em nenhuma das verificações de identificador de objeto de certificado especificadas no IAS/Radius Server (Serviço de Autenticação da Internet).

  • A extensão Nome Alternativo do Assunto (SubjectAltName) no certificado contém o UPN (nome da entidade de usuário) do usuário.

O exemplo XML a seguir explica as propriedades do EAP TLS XML, incluindo a filtragem de certificado.

Observação

Para perfis PEAP ou TTLS, o EAP TLS XML está inserido em alguns elementos específicos do PEAP ou específicos do 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>

Observação

O EAP TLS XSD está localizado em %systemdrive%\Windows\schemas\EAPMethods\eaptlsconnectionpropertiesv3.xsd.

Como alternativa, você pode usar o seguinte procedimento para criar um XML de configuração EAP:

  1. Siga as etapas 1 a 7 no artigo de configuração do EAP.

  2. Na caixa de diálogo Propriedades AutoHost da Microsoft VPN , selecione Microsoft: Cartão Inteligente ou outro Certificado no menu suspenso (esse valor seleciona EAP TLS).

    janela de propriedades de auto-host vpn.

    Observação

    Para PEAP ou TTLS, selecione o método apropriado e continue seguindo este procedimento.

  3. Selecione o botão Propriedades abaixo do menu suspenso.

  4. No menu Cartão Inteligente ou outras Propriedades de Certificado , selecione o botão Avançado .

    smart cartão ou outra janela de propriedades de certificado.

  5. No menu Configurar Seleção de Certificado , ajuste os filtros conforme necessário.

    configurar a janela de certificado.

  6. Selecione OK para fechar as janelas e voltar para a caixa de diálogo main rasphone.exe.

  7. Feche a caixa de diálogo rasphone.

  8. Continue seguindo o procedimento no artigo de configuração do EAP da etapa 9 para obter um perfil EAP TLS com filtragem apropriada.

Observação

Você também pode definir todas as outras propriedades EAP aplicáveis por meio dessa interface do usuário também. Um guia para o que essas propriedades significam pode ser encontrado no artigo EAP (Protocolo de Autenticação Extensível) para acesso à rede .

Referência de provedor de serviços de configuração