Аутентификация клиентского ПК в ASP.NET MVC (требуется консультация) - PullRequest
1 голос
/ 02 июня 2011

У меня есть сценарий аутентификации, к которому я не знаю, как подойти.Буду признателен за любые советы по этому вопросу.

Требование:

  1. Веб-сайт будет содержать один раздел, который будет только доступным для определенных компьютеров.
  2. Веб-сайт должен знать, какой компьютер в данный момент делает запрос (мне нужно иметь возможность привязать этот компьютер к другим таблицам в базе данных)
  3. У нас есть полный доступ к компьютерам, которые будут получать доступ к веб-сайту
  4. Веб-сайт не может требовать входа в систему, пользователю нужно просто предоставить контентные страницы без необходимости входа в систему.
  5. Решение должно быть безопасным, поскольку оно должно будет пройти аудит безопасности
  6. Предположим, что каждый компьютер находится в другой сети.

Мои идеи на данный момент:

  • используют клиентские сертификаты, но я не уверен, можете ли вы выдавать разныесертификат на клиента?Если ответ «вы не знаете, кто делает запрос», то это не соответствует требованию № 2 и поэтому не является вариантом.
  • Аутентификация Windows с олицетворением, так что я могу иметь разных пользователей, вошедших в систему на ПК (я контролирую, каким будет имя пользователя / учетная запись, вошедшая в систему на машине)
  • Базовая аутентификация и настройкаПК, чтобы запомнить имя пользователя / пароль в первый раз.Я немного боюсь, что это «помни меня» может истечь, что приведет к большому хаосу, поскольку кому-то придется заново настраивать этот компьютер (ы) ...
  • Windows Identity Foundation - никогда не пытался, но если смогуреализовать этот сценарий здесь каким-то приятным способом, и я буду признателен, если вы укажете мне правильное направление.

Заранее благодарен за помощь.
Я бы предпочел не использовать SSL, если это возможно ... (оценка производительности)

РЕДАКТИРОВАТЬ2:
В настоящее время я думаю, что лучшим вариантом будет проверить, является ли ПКаутентифицируется (содержит ли он cookie проверки подлинности с помощью форм) и, если это не так, перенаправляет его на некоторую страницу https: //, которая будет проверять сертификат клиента, устанавливает cookie, если сертификат существует, и перенаправляет обратно на целевую страницу.
Это не должно бытьмедленный, поскольку SSL будет использоваться только в редких случаях, когда срок действия cookie истекает.
Пожалуйста, дайте мне знать, если вы видите какие-либо недостатки в этом решении.
Если вы знаете, как создать сертификат сервера, а затем сгенерировать из него различные клиентские сертификаты, я был бы признателен за рекомендации.

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