Начну с того, что я не очень хорошо знаком с AD и DMZ.
В моей компании есть DMZ с одним сервером, изолированным от внутренней сети (всего несколько открытых портов) и доступным в Интернет. Есть несколько запущенных приложений IIS, у которых есть доступ к SQL Server.
Я хотел обновить connectionstrings
, удалять userId
и password
, используйте Integrated Security = true
и установите правильного пользователя в пул приложений, чтобы удалить открытый текст / жестко закодированный пароль из web.config
с.
Проблема в том, что сервер не распознает пользователя, так как сервер не входит в домен AD.
Я уверен, что для такого сценария есть чистое решение, но понятия не имею. Что я должен делать?
Я хотел обновить строки подключения, удалить userId и пароль, использовать Integrated Security = true и установить правильного пользователя в пул приложений, чтобы удалить открытый текст / жестко закодированный пароль из web.configs.
Как заявляли другие, вы не можете использовать интегрированную безопасность, если система не присоединена к Active Directory.
Вам также не нужно этого делать, потому что строки подключения могут быть зашифрованы.
Используйте следующие команды из командной строки, в которой находится файл web.config:
%SYSTEMROOT%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -pef connectionStrings "."
Если пул приложений работает под учетной записью, а не в локальной системе:
%SYSTEMROOT%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis -pa "NetFrameworkConfigurationKey" "accountusername"
Если в ферме несколько серверов IIS, все они должны иметь один и тот же машинный ключ, что, вероятно, у них уже есть.
Больше информации:
Создайте пользователя на сервере DMZ и назначьте его пулу приложений. Создайте локального пользователя на сервере SQL и дайте ему разрешения в студии управления SQL.