Мы настраиваем IIS Server на Windows Server 2012 в DMZ, работающем вне домена. Этому серверу требуется доступ к SQL Server 2005 по другую сторону брандмауэра внутри нашего домена.
Для этого мы планируем использовать проверку подлинности SQL Server, а это значит, что нашему приложению ASP.NET необходимо знать идентификатор пользователя и пароль. Как лучше всего скрыть эту информацию на сервере IIS? Мы думали либо встроить его в исходный код, либо зашифровать и поместить в файл.
Но есть ли вообще способ лучше?
Ответ из комментариев выше
Лучший способ - это доверенные связи. Что касается защиты строки подключения, обычно это делается путем добавления файла конфигурации, настройки пула приложений для работы под определенной одноразовой учетной записью с надежным паролем и последующим предоставлением доступа к этому файлу только этой учетной записи.
Поскольку вы не находитесь в домене, для установления надежных соединений вы должны делать это в олдскульном стиле; создать соответствующие учетные записи в обеих системах с одним и тем же паролем.
Я также слышал о людях, которые создают ассоциацию безопасности на SQL Server (например, получают доступ к общему ресурсу), а затем используют именованные каналы. Но я не рекомендую это, так как это было бы довольно хрупко.