Запись приложения IIS в удаленный файловый ресурс

У нас есть 2 сервера в DMZ. Первый - это сервер приложений, назовем его APP-машиной. Другой - файловый сервер, назовем его ФАЙЛ. Веб-сайт, работающий на компьютере APP под IIS, пытается создать файл в общем каталоге, расположенном на сервере FILE.

Когда пул приложений работает с каким-либо пользователем в IUSR_IUSRS или СЕТЕВОЙ СЛУЖБЕ, запись в удаленное расположение не выполняется. Я не могу авторизовать этого пользователя в общей папке, потому что эта ФАЙЛОВАЯ машина может видеть только локальных пользователей.

Я создал пользователя X на компьютере APP (APP / X) и еще одного пользователя с тем же именем в FILE (FILE / X). Затем я добавил пользователя FILE / X в диспетчер учетных данных на машине APP. Когда у пользователей APP / X и FILE / X разные пароли, запись снова не выполняется. Но когда пароли одинаковые, запись работает.

Я не понимаю, почему пароли имеют значение. В конце концов, это два разных пользователя APP / X и FILE / X. Может кто-нибудь прояснить это явление?


person rovsen    schedule 03.12.2013    source источник
comment
Теперь, что касается элемента диспетчера учетных данных, когда вы его добавили, сделали ли вы это, когда вы вошли в систему как пользователь X в приложении?   -  person NotMe    schedule 04.12.2013
comment
@ChrisLively Да. Я знаю, что у каждого пользователя есть свои собственные учетные данные в хранилище.   -  person rovsen    schedule 04.12.2013


Ответы (1)


Когда локальная учетная запись пользователя в APP пытается подключиться к FILE-серверу, она передает свои учетные данные (имя пользователя и пароль). Если эта комбинация не является точным совпадением с пользователем на машине с ФАЙЛОМ, она завершится ошибкой.

Есть несколько способов сделать это «правильно». Наиболее распространенным вариантом является настройка домена, в которой работает сайт на сервере APP. Таким образом, вы можете просто разрешить пользователю иметь права на ФАЙЛ-сервере.

Если у вас нет контроллера домена, тогда имя пользователя и пароли должны синхронизироваться на двух машинах.

person NotMe    schedule 03.12.2013
comment
Значит, имя машины игнорируется? Значит, это действительно не APP / X, а просто X? - person rovsen; 04.12.2013
comment
Это правильно. Когда служба пытается подключиться к удаленному компьютеру, она не отправляет собственное имя машины в поле пользователя. Он просто отправляет фактическое имя пользователя. Причина в том, чтобы облегчить подобные ситуации. В противном случае было бы немного сложнее заставить что-то работать без общего хранилища аутентификации, такого как AD. - person NotMe; 04.12.2013