Защита единого входа в веб-приложение

Мне нужно создать структуру единого входа, и мой вопрос: обязателен ли SSL?

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

Как мне убедиться, что пользователь является тем, кем он себя называет, а не Джо Блоу с улицы, отправляющим HTTP-запрос POST с этим именем пользователя?

Должен ли я использовать SSL (и если да, то что это влечет за собой)? Будет ли достаточно добавления соли и шифрования имени пользователя? Может быть, заблокировать его, чтобы исходный IP-адрес находился в контролируемом диапазоне?

Мое веб-приложение работает на IIS 6/7 и использует платформу ASP.NET MVC, если это важно.


person tridium    schedule 10.09.2010    source источник
comment
Мне кажется, что это может быть под юрисдикцией serverfault.   -  person Rushyo    schedule 10.09.2010


Ответы (2)


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

person Novikov    schedule 10.09.2010

Похоже, вы хотите использовать сертификаты SSL на стороне клиента. Как вы это реализуете, зависит от вашей настройки.

Другая информация, которую следует иметь в виду:

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

person Rushyo    schedule 10.09.2010