Конфигурация EAP

В этой статье содержится пошаговое руководство по созданию XML-файла конфигурации протокола EAP для профиля VPN, включая сведения о фильтрации сертификатов EAP в Windows 10.

Создание XML-файла конфигурации EAP для профиля VPN

Чтобы получить конфигурацию EAP с рабочего стола с помощью средства rasphone, поставляемого в коробке, выполните следующие действия:

  1. Выполните rasphone.exe.

    vpnv2 rasphone.

  2. Если у вас нет VPN-подключения и отображается следующее сообщение, нажмите кнопку ОК.

    сетевые подключения vpnv2 csp.

  3. В мастере выберите Рабочая сеть.

    vpnv2 csp настроено подключение.

  4. Введите адрес в Интернете и имя подключения. Эти сведения могут быть поддельными, так как они не влияют на параметры проверки подлинности.

    vpnv2 csp настроено подключение 2.

  5. Создайте поддельное VPN-подключение. В показанном здесь пользовательском интерфейсе выберите Свойства.

    vpnv2 csp выберите nw-подключение.

  6. В диалоговом окне Свойства теста выберите вкладку Безопасность .

    vpnv2 csp test props.

  7. На вкладке Безопасность выберите Использовать расширяемый протокол проверки подлинности (EAP).

    vpnv2 csp test props2.

  8. В раскрывающемся меню выберите метод EAP, который требуется настроить, а затем выберите Свойства для настройки по мере необходимости.

    vpnv2 csp test props3.vpnv2 csp test props4

  9. Переключитесь на PowerShell и используйте следующие командлеты для получения XML-кода конфигурации EAP.

    Get-VpnConnection -Name Test
    

    Ниже приведен пример выходных данных.

    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
    

    Ниже приведен пример выходных данных.

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

    Примечание.

    Если необходимо передать этот XML-код в escape-формате, следует проверка с поставщиком mobile Управление устройствами (MDM). Диски XSD для всех методов EAP поставляются в коробке и находятся в следующих расположениях:

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

Фильтрация сертификатов EAP

Если в развертывании на устройстве подготовлено несколько сертификатов, а профиль Wi-Fi не имеет строгих критериев фильтрации, при подключении к Wi-Fi могут возникнуть сбои подключения. Решение заключается в том, чтобы убедиться, что подготовленный профиль Wi-Fi имеет строгие критерии фильтрации, чтобы он соответствовал только одному сертификату.

Предприятия, развертывающие проверку подлинности EAP на основе сертификатов для VPN и Wi-Fi, могут столкнуться с ситуацией, когда существует несколько сертификатов, соответствующих критериям по умолчанию для проверки подлинности. Такая ситуация может привести к следующим проблемам:

  • Пользователю может быть предложено выбрать сертификат.
  • Неправильный сертификат может быть выбран автоматически и привести к сбою проверки подлинности.

Развертывание, готовое к рабочей среде, должно иметь соответствующие сведения о сертификате в составе развертываемого профиля. В следующих сведениях объясняется, как создать или обновить XML-файл конфигурации EAP таким образом, чтобы отфильтровывали посторонние сертификаты, а для проверки подлинности можно было использовать соответствующий сертификат.

Файл EAP XML должен быть обновлен соответствующими сведениями для вашей среды. Эту задачу можно выполнить вручную, изменив приведенный ниже пример XML или используя пошаговое руководство по пользовательскому интерфейсу. После обновления XML-файла EAP см. инструкции из MDM по развертыванию обновленной конфигурации следующим образом:

  • Для Wi-Fi найдите <EAPConfig> раздел текущего XML-кода профиля WLAN. (В этом разделе указано для узла WLanXml в Wi-Fi CSP.) В этих тегах вы найдете полную конфигурацию EAP. Замените раздел в разделе <EAPConfig> обновленным XML-кодом и обновите профиль Wi-Fi. Вы можете ознакомиться с руководством mdm по развертыванию нового Wi-Fi профиля.
  • Для VPN конфигурация EAP — это отдельное поле в конфигурации MDM. Обратитесь к поставщику MDM, чтобы определить и обновить соответствующее поле.

Сведения о параметрах EAP см. в статье Расширяемый протокол проверки подлинности (EAP) для сетевого доступа.

Сведения о создании XML-кода EAP см. в статье о конфигурации EAP.

Дополнительные сведения о расширенном использовании ключа (EKU) см. в разделе https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.12.

Сведения о добавлении EKU в сертификат см. в разделе https://technet.microsoft.com/library/cc731792.aspx.

В следующем списке описаны необходимые условия для использования сертификата с EAP:

  • Сертификат должен иметь по крайней мере одно из следующих свойств EKU:

    • Проверка подлинности клиента. Как определено в RFC 5280, это свойство является четко определенным OID со значением 1.3.6.1.5.5.7.3.2.
    • Любое назначение. Это свойство определяется EKU и публикуется корпорацией Майкрософт. Это четко определенный OID со значением 1.3.6.1.4.1.311.10.12.1. Включение этого идентификатора предполагает, что сертификат можно использовать для любых целей. Преимущество этого EKU по сравнению с EKU всех назначений заключается в том, что другие некритичные или пользовательские EKU по-прежнему могут быть добавлены в сертификат для эффективной фильтрации.
    • Все назначение. Как определено в RFC 5280, если ЦС включает EKU для удовлетворения некоторых потребностей приложения, но не хочет ограничивать использование ключа, ЦС может добавить значение EKU 0. Сертификат с таким EKU можно использовать для любых целей.
  • Пользователь или сертификат компьютера на клиенте должен быть привязан к доверенному корневому ЦС.

  • Пользователь или сертификат компьютера не завершает ни одну из проверок, выполняемых хранилищем сертификатов CryptoAPI, и сертификат соответствует требованиям политики удаленного доступа.

  • Пользователь или сертификат компьютера не завершает ни одну из проверок идентификатора объекта сертификата, указанных в службе проверки подлинности в Интернете (IAS)/Radius Server.

  • Расширение Subject Alternative Name (SubjectAltName) в сертификате содержит имя участника-пользователя (UPN) пользователя.

В следующем примере XML-кода описываются свойства ДЛЯ ПРОТОКОЛА XML-протокола EAP, включая фильтрацию сертификатов.

Примечание.

Для профилей PEAP или TTLS XML-код TLS EAP внедряется в некоторые элементы, относящиеся к PEAP или 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>

Примечание.

EAP TLS XSD находится в папке %systemdrive%\Windows\schemas\EAPMethods\eaptlsconnectionpropertiesv3.xsd.

Кроме того, можно использовать следующую процедуру для создания XML-файла конфигурации EAP:

  1. Выполните шаги 1–7 в статье о конфигурации EAP.

  2. В диалоговом окне Свойства Microsoft VPN SelfHost выберите Microsoft: Смарт-карта или другой сертификат в раскрывающемся меню (это значение выбирает протокол TLS EAP).

    Окно свойств самостоятельного узла VPN.

    Примечание.

    Для PEAP или TTLS выберите соответствующий метод и продолжайте следовать этой процедуре.

  3. Нажмите кнопку Свойства под раскрывающимся меню.

  4. В меню Смарт-карта или другие свойства сертификата нажмите кнопку Дополнительно .

    окно smart карта или другое окно свойств сертификата.

  5. В меню Настройка выбора сертификата настройте фильтры при необходимости.

    окно настройки сертификата.

  6. Нажмите кнопку ОК, чтобы закрыть окна и вернуться в диалоговое окно main rasphone.exe.

  7. Закройте диалоговое окно rasphone.

  8. Перейдите к процедуре, описанной в статье о конфигурации EAP на шаге 9, чтобы получить профиль TLS EAP с соответствующей фильтрацией.

Примечание.

Вы также можете задать все остальные применимые свойства EAP с помощью этого пользовательского интерфейса. Руководство по тому, что означают эти свойства, см. в статье Расширяемый протокол проверки подлинности (EAP) для доступа к сети .

Справочник по поставщикам служб конфигурации