Предложения для практической системы аутентификации пользователей? - PullRequest
4 голосов
/ 05 января 2010

Я ненавижу заново изобретать колесо, поэтому я ищу существующее решение для создания простой системы аутентификации для моего приложения. Некоторое время я экспериментировал с использованием CardSpace или OpenID внутри приложения, но не могу убедить руководство в том, что это будут рабочие решения. Конечно, я мог бы просто создать простой диалог входа в систему, где имя пользователя, домен и (хешированный) пароль хранятся в таблице базы данных, и я уже делал это много раз. Я ненавижу это решение, так как чувствую, что это просто слабый вариант. И я не хочу тратить слишком много времени на то, чтобы сделать всю систему входа в систему максимально безопасной, тем более что я подозреваю, что для этого должны существовать решения.

Итак, кроме OpenID / OpenAuth и CardSpace, есть ли другие решения для аутентификации, которые можно использовать из приложения Delphi / WIN32? <ч /> Прямо сейчас приложение будет использоваться многими клиентами. Большинство из них являются однопользовательскими средами, хотя, вероятно, некоторые из них начнут иметь от двух до пяти пользователей после добавления этой системы аутентификации. Но мы хотим поддержать клиента, которому нужно разрешить около 500 разных пользователей в одном приложении. Они распределены по 100 офисам, но все они подключены к одной и той же базе данных SQL Server. (MS Access прямо сейчас, но мы даем возможность этому пользователю использовать вместо этого SQL Server.) Чтобы сделать дела еще более интересными, клиент использует Citrix для централизации пользовательских систем, и приложение имеет прямой доступ к базе данных SQL Server. , Это не идеальная установка, но опять же, клиент на самом деле не платит за это. Мы просто настраиваем тестовую среду. Подтверждение концепции, которую клиент проверит для нас. Недостатки будут решены позже. Но сейчас мне нужны быстрые решения, и одним из них является практичная система аутентификации, где мне не нужно писать много кода.

Ответы [ 3 ]

1 голос
/ 03 февраля 2010

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

1 голос
/ 11 февраля 2010

Рассматривали ли вы использование аутентификации SQL Server и не разрешать аутентификацию для тех, кто использует базу данных Access?

Если вы используете новый собственный клиент SQL Server и SQL Server 2005, срок действия паролей истекает, и вы можете изменить их в своем клиентском приложении. Все инструменты для создания и управления учетными записями пользователей встроены в SQL Server Management Studio. И если позже вы решите поддерживать проверку подлинности Windows, вам просто нужно изменить строку подключения.

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

Вот страница MSDN, на которой говорится о программной обработке паролей в SQL Server 2005

Необходимо убедиться, что Собственный клиент SQL Server установлен , но это просто по сравнению с остальной частью ADO.

1 голос
/ 05 января 2010

Я бы тогда предложил

  1. Delphi - поскольку вы используете Delphi:)
  2. Открытый исходный код - поскольку вам нужно уметь выяснить, что не так, если есть проблема, вы, вероятно, хотите, чтобы она была дешевой.

Итак, вот несколько решений:

http://www.torry.net/pages.php?id=313

 CoWindowsAccount v.1.0
 SSecurity v.1.2.1.3

http://free -password-manager-plus.software.informer.com / 1,6 /

...