Назад | Перейти на главную страницу

Как узнать, позволяет ли IIS переходить с Kerberos на NTLM v1 для проверки подлинности?

Насколько я понимаю, проверка подлинности в IIS с помощью Kerberos по умолчанию позволяет перейти на NTLM v2 или NTLM v1, если клиент не может обрабатывать Kerberos. В моем случае у меня есть клиент, который может использовать только NTLM v1, и я хочу знать перед установкой, что это будет работать в разных средах. Как узнать, позволяет ли это IIS?

Несколько важных замечаний:

  1. Все это будут запросы веб-службы с другого сервера (а не запросы конечного пользователя на основе браузера).
  2. Веб-службы размещены в IIS / ASP.NET / SharePoint (как 2007, так и 2010). Я считаю, что IIS отвечает за аутентификацию (при условии, что Windows Auth, а не формы или утверждения), но если вы знаете, что ASP.NET или SharePoint могут играть здесь роль, сообщите мне об этом.
  3. Мне нужно знать ответ как для IIS6, так и для II7.
  4. Я видел, как групповые политики могут повлиять на это. Я считаю, что Шаблоны конфигурации руководства по усилению защиты может предотвратить NTLMv1, но я не уверен.
  5. Это выглядит как Эта статья помогает для IIS6, но что-то мне подсказывает, что это можно каким-то образом переопределить групповыми политиками (как уже упоминалось выше).
  6. Для IIS7 я нашел Как настроить IIS 7.0 для поддержки протокола Kerberos и протокола NTLM для сетевой аутентификации. Однако я либо не понимаю этого, либо что-то упускаю. У меня IIS7 по умолчанию, и мой файл IIS_schema.xml явно не разрешает NTLM (см. Ниже). Кроме того, меня беспокоят IIS6 и переопределения групповой политики, поэтому, даже если я это понимаю, это лишь часть пути.

.

  <sectionSchema name="system.webServer/security/authentication/windowsAuthentication">
    <attribute name="enabled" type="bool" defaultValue="false" />
    <element name="providers">
      <collection addElement="add" clearElement="clear" removeElement="remove">
        <attribute name="value" type="string" isUniqueKey="true" />
      </collection>
    </element>
    <attribute name="authPersistSingleRequest" type="bool" defaultValue="false" />
    <attribute name="authPersistNonNTLM" type="bool" defaultValue="false" />
    <attribute name="useKernelMode" type="bool" defaultValue="true" />
    <attribute name="useAppPoolCredentials" type="bool" defaultValue="false" />
    <element name="extendedProtection">
        <attribute name="tokenChecking" type="enum" defaultValue="None">
            <enum name="None" value="0" />
            <enum name="Allow" value="1" />
            <enum name="Require" value="2" />
        </attribute>
        <attribute name="flags" type="flags" defaultValue="None">
            <flag name="None" value="0" />
            <flag name="Proxy" value="1" />
            <flag name="NoServiceNameCheck" value="2"/>
            <flag name="AllowDotlessSpn" value="4" />
            <flag name="ProxyCohosting" value="32" />
        </attribute>
        <collection addElement="spn" clearElement="clearSpns" removeElement="removeSpn">
            <attribute name="name" type="string" isUniqueKey="true" validationType="nonEmptyString" />
        </collection>
    </element>
  </sectionSchema>