Объедините пользовательского провайдера с хешированными паролями с базовым http для API бэкэнда - PullRequest
2 голосов
/ 02 апреля 2012

У меня есть REST API и интерфейс для этого API, оба написаны на Symfony2.
Во внешнем интерфейсе я написал пользовательского провайдера для создания пользовательского объекта во внешнем интерфейсе на основе информации из внутреннего интерфейса, такой как (хешированный) пароль, соль и т. Д.
Согласно этой документации: http://symfony.com/doc/current/cookbook/security/custom_provider.html

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

Могу ли я как-то использовать базовый HTTP с этой версией хешированного пароля?
Или я могу перехватить поля _username и _password формы входа на веб-интерфейсе и сохранить их в сеансе (не уверен, что это правильно, но это сейчас исправит)

Я попробовал последнее, поместив форму входа в систему по собственному URL-адресу вместо «login_check», чтобы я мог видеть поля _username и _password, но после этого мне нужно переслать его в «/ login-check» чтобы позволить Symfony2 творить чудеса. Однако это продолжает давать сбои, потому что он «не может найти контроллер» (при обычном использовании Sf2 перехватывает вызовы login_check без меня, устанавливающего контроллер, но я полагаю, что это не так, когда вы начинаете с ним связываться)

Любой совет будет приветствоваться,

Приветствия

Dieter

1 Ответ

0 голосов
/ 02 апреля 2012

Если вы хешировали пароль до его передачи на сервер, тогда этот хешированный пароль станет новым паролем.

Базовая аутентификация HTTP обычно используется как метод аутентификации RESTful, однако он должен быть поверх SSL . Если вы используете криптографический одноразовый номер в качестве идентификатора сеанса, вам все равно нужно передать это значение через SSL для всех запросов, иначе вы будете нарушать OWASP A9 , и все пользователи могут быть скомпрометированы.

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