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

SPN, Kerberos и IIS

У меня есть dns-псевдоним MyWebServer, который указывает на ip-адрес коробки win 2008 r2, работающей под управлением iis 7.5. У меня есть правильный HTTP spn, настроенный для пользователя домена, у которого есть разрешения на делегирование назначенному HTTP-веб-сервису с использованием kerberos.
IIS настроен на верхнем уровне для использования аутентификации в режиме ядра и для использования AppPoolCredentials.

Основное приложение в поле iis работает в пуле приложений с идентификатором пользователя моего домена. Приложение работает по назначению, выдаются правильные билеты Kerberos, и приложение может полностью делегировать идентификационные данные пользователей Windows.

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

Всякий раз, когда я нажимаю одно из этих приложений в IE, мне предлагается войти в систему. Ввод правильных учетных данных домена приводит к ошибке 401 после 3 попыток входа в систему. Веб-сервер распознается IE как находящийся в зоне локальной интрасети, и IE настроен на автоматический вход на серверы в этой зоне. Мне также выдается действительный билет Kerberos при запуске этих приложений, даже если им самим билет никогда не понадобится.

Теперь, когда я устанавливаю идентификатор пула приложений для пользователя домена для других приложений и выполняю IISreset ... Приложения работают как задумано.

Теперь мой вопрос ... Это как ожидалось / задумано ???
Я не могу запускать несколько приложений на веб-сайте IIS, который был настроен с SPN, который использует учетную запись пользователя домена? Раньше у меня было несколько таких веб-сайтов, работающих с использованием HTTP / псевдонима Machine spn, но до сих пор я боролся с настройкой домена HTTP / псевдонима / пользователя.


редактировать: Ответ Брента правильный. Я нашел эту статью Microsoft, которая слегка уточняет. http://support.microsoft.com/kb/871179

Имя участника-службы для службы может быть связано только с одной учетной записью. Следовательно, если вы используете это предлагаемое решение, любой другой пул приложений, работающий под другой учетной записью пользователя домена, не может использоваться только со встроенной проверкой подлинности Windows.


Чтобы обойти это поведение, если у вас есть несколько пулов приложений, которые работают под разными учетными записями пользователей домена, вы должны заставить IIS использовать NTLM в качестве механизма проверки подлинности, если вы хотите использовать только встроенную проверку подлинности Windows.

Звучит правильно, учетная запись сетевой службы не имеет разрешения на ваш домен, поэтому она не может аутентифицироваться ... по крайней мере, это похоже на то, что она делает.

После того, как вы введете учетные данные домена, пул приложений теперь имеет права пользователя при вызовах AD, в этом случае в конечном итоге для аутентификации.