Сценарий Лицензии Безопасности WCF - PullRequest
1 голос
/ 24 февраля 2011

Мы пытаемся создать лучший сценарий безопасности для нашего случая.

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

  1. Не нужно вводить пароль для просмотра всех лицензий компании.Необходимо различать лицензии, которые компания купила.

  2. Когда пользователь хочет использовать лицензию (использовать приложение), он должен будет ввести свой собственный пароль.

Соединение между приложением WPF и сервером будет осуществляться с использованием службы WCF.Должен быть какой-то токен, который будет проверять, возможно ли подключение к серверу каждые 5 минут, в противном случае приложение закроется.

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

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

Можно ли будет это реализовать?Пожалуйста, расскажите нам свою мысль об этом.

1 Ответ

1 голос
/ 24 февраля 2011

Вы не сказали, где находится сервер - локальное или центральное местоположение.И что требуется, это безымянные лицензии для отслеживания одновременных пользователей (или одновременных сеансов, то есть один и тот же пользователь может использовать приложение с нескольких компьютеров).Вот схема того, что я бы сделал для локального сервера:

  • Для каждой компании создайте файл лицензии.Это может быть простой XML-файл, содержащий такие данные, как количество лицензий, срок действия, идентификатор компании (и другая информация).Важно зашифровать содержимое с помощью вашего закрытого ключа.Вам также следует хранить хэш для проверки на несанкционированное вмешательство
  • Файл лицензии будет предоставлен каждой компании для размещения на своем сервере в настроенном месте.Доставка лицензии может быть ручной (загрузка по электронной почте / через Интернет) или автоматической (предоставьте регистрационный ключ для загрузки лицензии)
  • Код сервера будет считывать лицензию с использованием вашего открытого ключа и применять правила лицензирования.
  • Для централизованно размещенного сервера схема будет аналогичной, но хранилище лицензий будет находиться под вашим контролем, и поэтому нет необходимости шифровать эти данные.Однако важно, чтобы каждая компания выдавала какой-то токен идентификатора (скажем, цифровой сертификат), чтобы вы могли отслеживать лицензию для правильной компании.

Аутентификация пользователя как таковая не связана с этим, и вы можете использовать любойСхема аутентификации, которую вы хотите.Всякий раз, когда пользователь проходит проверку подлинности (скажем, с использованием имени пользователя / пароля), лицензия будет помечена как использованная.Для модели с центральным сервером (размещенными службами) вы также можете использовать аутентификацию пользователя для аутентификации компании (без выдачи им отдельного цифрового сертификата).

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