Анонимная проверка подлинности IIS с проверкой подлинности Windows - второй запрос не выполняется - PullRequest
0 голосов
/ 23 февраля 2020

Привет и доброе утро всем,

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

В Windows Server 2016 с использованием IIS v10, у меня есть эта странная проблема с одной учетной записью службы пользователей, которую я не могу воспроизвести ни с моей, ни с кем-либо еще.

Все мы подключаемся к одной виртуальной машине с VPN-клиентом, используя наши активные учетные записи службы каталогов. Таким образом, все запросы происходят из одной контекстной среды.

Служба WebAPI, для которой выполняется вход в систему, также является входом в реестр служб. Другие службы используют анонимную аутентификацию, привязанную к их пользователям IIS Application Application Identity, но для всех остальных нам нужно использовать Windows аутентификацию. Вот почему они Windows Аутентификация и Анонимная аутентификация включены.

Когда InterceptionAttribute обрабатывает запрос, у нас есть небольшой лог c, чтобы вычислить, поступил ли запрос от анонимного источника или нет. Если это так и при определенных условиях / ограничениях, мы отправляем запрос 401, потому что хотим, чтобы браузер использовал другую схему аутентификации. Когда браузер "Inte rnet Explorer v11" получит это 401, он попытается снова, но на этот раз использует Windows Аутентификацию и передаст текущие учетные данные вошедших в систему пользователей, которые нам нужны для действительного объекта Принципал / Идентичность для других целей.

Пока это работает правильно, за исключением того, что один пользователь испытывает затруднения при входе в веб-приложение. В сеансе отладки я зафиксировал поступающие запросы, и, как и ожидалось, первый запрос был анонимным, поскольку это первая форма, которую браузер попытается использовать. Следующий ОЖИДАЕМЫЙ, но не происходящий, запрос на выполнение запроса 401, где он затем использует Windows Аутентификацию.

Я потратил значительное количество времени на отладку этого и буду очень признателен за любую помощь или понимание того, что может помешать / остановить / прервать выполнение браузером этого следующего запроса.

Еще раз спасибо всем, что нашли время прочитать и ответить на эту тему.

Разделы Web.config:

<identity impersonate="true" />
    <authorization>
      <allow users="*" />
    </authorization>
    <roleManager enabled="true" />
<validation validateIntegratedModeConfiguration="false" />
    <directoryBrowse enabled="true" />
    <security>
            <authentication>
                <windowsAuthentication enabled="true" useKernelMode="true">
                    <providers>
                        <clear />
                        <add value="NTLM" />
                        <add value="Negotiate" />
                    </providers>
                    <extendedProtection tokenChecking="Require" />
                </windowsAuthentication>
                <anonymousAuthentication enabled="true" userName="" />
            </authentication>
    </security>

1 Ответ

0 голосов
/ 25 февраля 2020

Просто хотел отчитаться.

После дальнейшего расследования это была фактически другая внутренняя ошибка сервера, которая глотала 500 из неверной учетной записи службы, пытаясь сделать запрос.

Так что все настроено правильно и работает как надо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...