Пароли для приложений, использующих стороннюю аутентификацию?

StackOverflow https://stackoverflow.com/questions/994046

Вопрос

У меня есть приложение ASP.NET MVC, в которое я только что интегрировал РПХ сторонняя федеративная система идентификации.Интеграция работает нормально, но мне трудно понять, что с ней делать на уровне ASP.NET.

Поскольку идентификационные данные обрабатываются извне, мне не нужны пароли в моем приложении:Я никогда не получаю пароль пользователя, только его личность.Однако поставщик членства ASP.NET требует передачи паролей для создания пользователя, входа в систему и т. д.

Я подумывал об использовании new Guid() во время создания, но для этого потребуется вызов базы данных для получения пароля пользователя, прежде чем я смогу войти в систему через поставщика членства.Я мог бы использовать один и тот же пароль для каждого пользователя, чтобы он был известен заранее, но меня беспокоит, что это сделает данные моего пользователя небезопасными.

Мне было бы интересно услышать, как другие сайты решают эту проблему, например, StackOverflow.

[Пожалуйста, см. также мой другой вопрос, относительно поставщиков членства для такого приложения.]

Это было полезно?

Решение

но я обеспокоен тем, что это сделает данные моего пользователя небезопасными.

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

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

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

Другие советы

Зачем тогда использовать членство в asp.net?Вам не совсем подходит то, что вы делаете, а именно сторонняя аутентификация.Может быть, вы могли бы взглянуть на проект дотнепенид и примеры, поскольку у них есть классический пример сайта asp.net, который вы могли бы изменить для MVC?У них есть вики здесь Может быть, Google Dotnetopenid MVC?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top