Хранение и использование учетных данных пользователя Microsoft в базе данных SQL Server 2008 - PullRequest
1 голос
/ 26 апреля 2010

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

Часть моего программного обеспечения (приложение VB.NET) требует возможности доступа / чтения / записи в общую сетевую папку. У меня есть возможность для пользователя указать любые учетные данные, которые могут потребоваться для доступа к указанной папке.

Я хочу сохранить эти учетные данные, данные в базе данных SQL Server, как часть конфигурации (у меня есть таблица, которая содержит конфигурацию).

Меня беспокоит, что пароль для учетной записи пользователя будет не зашифрован. Тем не менее, если я зашифрую пароль, база данных приложений и / или приложений VB.NET не сможет использовать учетные данные для операций ввода-вывода файлов, пока пароль не будет зашифрован перед использованием.

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

Ответы [ 3 ]

0 голосов
/ 26 апреля 2010

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

Ну, наверное, не настоящее слово, а что-то вроде случайного байтового массива или чего-то подобного.

0 голосов
/ 26 апреля 2010

Сам SQL Server имеет средства для хранения учетных данных Windows, см. СОЗДАТЬ ПОЛНОМОЧИЯ :

Учетные данные - это запись, которая содержит информация аутентификации, которая требуется для подключения к ресурсу вне SQL Server. Большинство учетных данных включите пользователя Windows и пароль.

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

Единственные правильные сценарии доступа к ресурсам:

  • как пользователь, запускающий приложение, т.е. обычный заурядный сценарий использования
  • как служба, которая олицетворяет подключенного пользователя, что делается путем получения токена удаленной идентификации из аутентификации SSPI, например NegotiateStream.RemoteIdentity
0 голосов
/ 26 апреля 2010

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

...