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

Стратегии IIS для доступа к защищенным сетевым ресурсам

Проблема: пользователь подключается к службе на компьютере, например к веб-сайту IIS или базе данных SQL Server. Сайт или база данных должны получить доступ к сетевым ресурсам, таким как общие файловые ресурсы (наиболее распространенные) или базе данных на другом сервере. В разрешении отказано.

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

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

Вот некоторые обходные пути, о которых я знаю:

Я бы хотел создать какой-то «служебный туннель». Подумайте о том, как VPN делает удаленные ресурсы похожими на локальные. С более богатым механизмом псевдонимов, возможно, на основе кода, почему даже соединения с базой данных не могут происходить в определенном контексте безопасности? Почему бы не создать специальный компонент Windows, который позволяет вам указать для каждого пользователя, какие ресурсы доступны и какие альтернативные учетные данные используются для подключения? Файловые ресурсы, базы данных, веб-сайты, что угодно. Я почти говорю о специализированном локальном прокси-сервере.

Во всяком случае, вот мой список. Я могу обновить его, если придумаю больше. Есть ли у кого-нибудь идеи для меня?

Моя текущая проблема сегодня заключается в том, что мне снова нужен веб-сайт для подключения к базе данных Access в общей папке. Это снова мы...

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

Предположительно, как только общие ресурсы настроены для каждого приложения (часть четко определенного процесса настройки?), Они действительно не будут сильно меняться?

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

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

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

Оттуда я, вероятно, буду использовать учетные записи служб и имена компьютеров, поскольку они имеют смысл. Например, вы можете просто добавить учетную запись службы сервера базы данных (DOMAIN / MACHINENAME $) в группу, но если у вас есть кластер серверов веб-приложений, вы должны использовать общую учетную запись службы.

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

Сделайте все эти сетевые / удаленные ресурсы локальными с помощью репликации SQL / доставки журналов и / или синхронизации файлов (Microsoft Sync Framework является вариантом, хотя симпатия cygwin + rsync более привлекательна, IMO).

Конечно, все это зависит от того, как часто меняются данные и / или нужна ли вам двусторонняя синхронизация или просто зеркалирование.