Веб-сервис Аутентификация и управление идентификацией пользователя

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

Вопрос

Моя команда и меня в настоящее время работают над довольно большим проектом. Мы работаем над онлайн-игрой, которая будет доступна (на данный момент), двумя способами: -Via веб-браузер, приложение Full JavaScript (сторона клиента), полный Ajax (в основном означает, что интерфейс UI будет управляться в стороне js). -Via Приложение iPhone (UI будет управляться самим приложением).

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

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

Я посмотрел в WS-Security, но это, очевидно, требует хранения паролей, незашифрованных на сервере, что не является приемлемым! Затем я посмотрел в ОАУТ, но на первый взгляд это казалось много работы, чтобы настроить и не особо подходя к моим потребностям (то, как приложения должны быть приняты, не радует меня, поскольку это будет мое приложение только Использование веб-службы, а не внешнее приложение). Я прочитал и слышал о многих других способах делать то, что я хочу, но, если честно, я немного запутался, и я не знаю, какая информация надежна и что нет.

Я хотел бы отметить, что я использую symfony2 для бэкэнда и jQuery для JavaScript клиента JavaScript. Кроме того, я хотел бы получить подробный, пошаговый ответ, потому что я действительно путаю со всеми, что я прочитал и слышал.

Спасибо за ваше время, и я надеюсь, что кто-то может помочь мне, так как это довольно срочно.

Добрый вечер

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

Решение

Я не совсем уверен, что ответит на ваш запрос, но поскольку интернет-интерфейс всегда будет обрабатываться на стороне клиента, я думаю, что вы можете использовать аутентификацию HTTP без гражданства:

Это брандмауэр в генеракодицетагкоде:

security:
    firewalls:
        api:
            pattern: ^/api/ # or whatever path you want
            http_basic: ~
            stateless: true
.

, а затем идея в основном заключается в том, что на сервере вы используете обычные поставщики пользователей, кодировщики и athnot для достижения максимальной безопасности, а на клиенте вы отправляете заголовки аутентификации HTTP, например, в jQuery:

$.ajax("...", {
    username: "Foo",
    password: "bar"
});
.

Обратите внимание, что, поскольку аутентификация нестандартна (файл cookie никогда не создается), заголовки должны быть отправлены с каждым запросом, но я рисунок, поскольку приложение почти полностью клиентская сторона, это не проблема ,

Вы также можете проверить Symfony2 Руководство по безопасности для получения дополнительной информации о том, как Настройка http-аутентификации. Также обязательно заберуте доступ HTTPS в вашем ACL, поэтому запросы, содержащие учетные данные, защищены (security.yml в ваших определениях ACL).

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