4

Я не использую это, но интересный вопрос. Если я установил веб-приложение в IIS для использования проверки подлинности Windows и олицетворения пользователя, прошедшего проверку подлинности, а моя ConnectionString в базу данных SQLServer использует Integrated Security=true;, мое приложение при попытке подключения к базе данных будет использовать пользователя, прошедшего проверку подлинности приложением?IIS с веб-приложением с использованием аутентификации Windows с олицетворением

Если да, это хорошо? (В базе данных есть разрешения LDAP/AD «Пользователи домена». Учитывая базу данных, которая будет проверяться, когда каждый пользователь будет регистрировать ваши действия.)

ответ

2

Да, соединения с SQL Server будут находиться под этими пользователями.

В целом, это плохо. Но это зависит от ситуации. Ниже приводятся основные факторы, которые следует учитывать:

  1. Для каждого пользователя потребуется его собственное подключение. Соединения от разных пользователей нельзя использовать повторно, даже если используется объединение пулов. Создание соединения - относительно дорогостоящая операция. И для каждого подключения требуется небольшая часть памяти.
  2. Для каждого пользователя должен быть свой вход (или, по крайней мере, для группы Windows, в которой пользователь должен войти в систему). Это может быть дополнительное обслуживание для создания журналов и т. Д. С другой стороны, каждый такой журнал может быть защищен по-другому. Важно отметить, что защита объектов для разных пользователей может быть достигнута и при использовании одной учетной записи для подключения к SQL Server
3

Я считаю, что ответ EK верен только в ситуации, когда используется аутентификация Kerberos , То, что вы описываете, называется «двойной прыжок». По сути, если пользователь аутентифицируется на «Server-A», код, который работает на «Server-A», не может развернуться и использовать эти учетные данные для доступа к другим сетевым ресурсам, таким как SQL Server на «Server-B». Это подробно описано здесь, но здесь есть прямая ссылка: Blog Article

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

0

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

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

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

1

Да, он использовал бы аутентифицированного пользователя и выдавал бы за права «аутентифицированного пользователя» доступ к базе данных. Для получения дополнительной информации просмотрите эту ссылку How To: Use Impersonation and Delegation in ASP.NET 2.0

Смежные вопросы