Configuração de EAP

Este artigo fornece um guia passo a passo para criar um XML de configuração de protocolo EAP (Protocolo de Autenticação Extensível) para um perfil VPN, incluindo informações sobre a filtragem de certificados EAP no Windows. Embora as capturas de tela sejam especificamente para VPN, as partes EAP também são aplicáveis aos perfis EAP Wi-Fi e Wired. Para obter mais informações, consulte Definir perfis e configurações EAP no Windows.

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

Para obter a configuração EAP da sua área de trabalho usando a ferramenta rasphone que é 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 de local de trabalho.

    CSP VPNv2 configurar a conexão.

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

    CSP VPNv2 configurar conexão 2.

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

    CSP VPNV2 Escolha NW Connection.

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

    Props de teste de CSP VPNv2.

  7. Na guia Segurança, selecione Usar protocolo de autenticação extensível (EAP).

    CSP Props2 de teste de CSP VPNv2.

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

    CSP Props3 de teste de VPNv2. CSP Props4 de teste de CSP VPNv2

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

    Get-VpnConnection -Name Test
    

    Aqui está um exemplo de saída.

    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á um exemplo de saída.

    <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 de MDM (Gerenciamento de Dispositivos Móveis) se precisar passar esse XML no 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 certificados EAP

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

As empresas que implantam autenticação EAP baseada em certificado para VPN e Wi-Fi podem se deparar com 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 detalhes de certificado apropriados 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 incorretos sejam filtrados e o certificado apropriado possa ser usado para a autenticação.

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

  • Para Wi-Fi, procure a <EAPConfig> seção do XML de perfil WLAN atual. (Esta seção é o que você especifica para o nó WLanXml no Wi-Fi CSP.) Nessas marcas, você encontrará a configuração EAP completa. Substitua a seção em <EAPConfig> seu XML atualizado e atualize seu perfil Wi-Fi. Você pode consultar as diretrizes do MDM sobre como implantar um novo perfil Wi-Fi.
  • Para VPN, a configuração 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 de EAP, consulte Protocolo de Autenticação Extensível (EAP) para acesso à rede.

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

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

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

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

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

    • Autenticação do cliente: conforme definido pelo RFC 5280, essa propriedade é um OID bem definido com valor 1.3.6.1.5.5.7.3.2.
    • Qualquer Finalidade: Esta propriedade é definida por EKU e é publicada pela Microsoft. É um OID bem definido com valor 1.3.6.1.4.1.311.10.12.1. A inclusão deste OID implica que o certificado pode ser usado para qualquer finalidade. A vantagem desse EKU sobre o EKU para todos os fins é que outros EKUs não críticos ou personalizados ainda podem ser adicionados ao certificado para uma filtragem eficaz.
    • Para todos os fins: conforme definido pela RFC 5280, se uma CA incluir EKUs para atender a algumas necessidades do aplicativo, mas não quiser restringir o uso da chave, a CA poderá adicionar um valor de EKU de 0. Um certificado com esse EKU pode ser usado para todos os fins.
  • O usuário ou o certificado de computador no cliente deve ser encadeado a uma AC raiz confiável.

  • O certificado do usuário ou do computador não falha em nenhuma das verificações realizadas pelo repositório de certificados CryptoAPI e o certificado passa nos requisitos da diretiva 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 Serviço de Autenticação da Internet (IAS)/Servidor Radius.

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

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

Observação

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

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 de 1 a 7 no artigo de configuração de EAP.

  2. Na caixa de diálogo Propriedades do Microsoft VPN SelfHost , selecione Microsoft: Cartão inteligente ou outro certificado no menu suspenso (esse valor seleciona EAP TLS).

    Janela de propriedades do 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 do Certificado , selecione o botão Avançado .

    Janela do Smart Card ou outra janela de propriedades do certificado.

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

    janela Configurar certificado.

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

  7. Feche a caixa de diálogo rasphone.

  8. Continue seguindo o procedimento no artigo de configuração 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. Um guia sobre o que essas propriedades significam pode ser encontrado no artigo EAP (Protocolo de Autenticação Extensível) para acesso à rede .