Модель аутентификации и безопасности в приложениях клиент / сервер - PullRequest
0 голосов
/ 18 июня 2009

Я занимаюсь разработкой пользовательского клиент-серверного приложения, которое требует от клиента входа в систему со своим именем пользователя и паролем. Учетные записи пользователей никак не связаны с учетными записями Windows / AD. После входа клиентское приложение будет запрашивать другие сервисы у серверной системы.

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

Спасибо

Ответы [ 2 ]

1 голос
/ 18 июня 2009

Возможно, вы захотите внедрить систему, которая будет передавать «билеты» между различными частями (сервер входа, клиент, сервер приложений). Этот билет будет содержать основную информацию, такую ​​как идентификатор пользователя (имя пользователя, идентификатор строки и т. Д.). Этот билет будет либо зашифрован с помощью секретного ключа, который разделяют авторизованные серверы, либо будет помечен хэшем содержимого заявки, засыпанного секретным ключом, который совместно используют серверы. Первый способ позволяет только авторизованным серверам создавать и считывать билет, а второй способ позволяет авторизованным серверам проверять, что только авторизованные серверы могли создать билет, но позволяет любому читать билет. Все серверы приложений будут проверять тикет (пытаясь расшифровать его или проверяя соответствие хеша), прежде чем предпринимать какие-либо действия, которые должны быть защищены. Если это веб-приложение, тогда файлы cookie являются хорошим местом для хранения билетов.

0 голосов
/ 18 июня 2009

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

Table:  Users
Fields: UserID   PK
        Login    Text
        Password Text
        ...

Table:  Roles
Fields: RoleID   PK
        Role     Text
        ...

Table:  UserRoles
Fields: UserID    FK
        RoleID    FK
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...