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

Делегирование учетных данных IIS для AppPool в режиме интегрированного конвейера

Я знаю, что на эту тему написано более десятка статей, но по какой-то причине мне не удалось найти решение.

Сервер WEB1 имеет IIS7.5 с сайтом, использующим проверку подлинности Windows (режим ядра отключен, поставщик: "gotiate: kerberos "), и пул приложений, работающий как СЕТЕВАЯ СЛУЖБА и в интегрированном режиме.

Олицетворение работает нормально, но делегирование другому серверу STORAGE1 с предоставлением CIFS - нет.

Я получаю ошибки разрешения при попытке доступа к расположенному там UNC.

Объект компьютера WEB1 в AD был настроен на делегирование с помощью «Доверять этому компьютеру для делегирования любой службе (только Kerberos)», и я также пробовал «Доверять этому компьютеру для делегирования только указанным службам: только пользовательский Kerberos» с помощью служб «CIFS / STORAGE1 "&" HOST / STORAGE1 "(я знаю, что cifs включен в хост, я полагал, что не повредит использовать оба) с выбранным" Expanded ", чтобы включить полное доменное имя для служб CIFS и HOST.

У меня есть захват пакета файловой операции, которая не выполняется с WEB1 на STORAGE1, и похоже, что сообщение для аутентификации включает только имя хоста WEB1.

Я создал тестовый общий ресурс с КАЖДОЙ учетной записью, получив полный доступ на уровне общего ресурса и уровне NTFS, и я все еще получаю сообщения об ошибках отказа в доступе.

Я пробовал использовать DELEGCONFIG V2. Хотя я могу получить олицетворение для WEB1, все отмечено галочкой, 2-й переход к STORAGE1 не может быть проверен, и уровень делегирования только на «IMPERSONATE».

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

Если у вас есть НИЧЕГО, чтобы внести свой вклад (предложения, вопросы, что угодно), я был бы очень признателен.

Помогите мне, SF, ты моя единственная надежда!

РЕДАКТИРОВАТЬ: В случае, если это полезно, код для олицетворения аутентифицированного пользователя для файловых операций на STORAGE1 выглядит так:

WindowsImpersonationContext imp = ((WindowsIdentity)User.Identity).Impersonate();
FileInfo fi = Classes.File(id.Value);
bool dir = fi.Directory.Exists;
bool file = fi.Exists;
imp.Undo();

Ладно. Думаю, я понял.

  • Делегирование объекта компьютера в AD установлено как «Доверять этому компьютеру для делегирования любой службе (только Kerberos).
  • SPN добавлены для полного доменного имени виртуального хоста для HTTP.
  • Идентификация AppPool как «ApplicationPoolIdentity» НЕ СЕТЕВОЙ СЕРВИС.
  • Настройте доверенную зону браузера, чтобы включить веб-хост. (важно)

Мы столкнулись с некоторыми другими необъяснимыми вещами, которые привели нас к удалению WEB1 из домена и повторному присоединению как WEB2.

Также стоит упомянуть, что НИКАКИЕ ДОПОЛНИТЕЛЬНЫЕ SPN не были добавлены для доступа к STORAGE1.