Лучшие практики безопасности для аутентификации OAuth 2 в приложении Javascript

У меня есть REST API с механизмом аутентификации OAuth 2 (FOSOAuthServerBundle в приложении Symfony 3).

Чтобы получить / обновить токен, URL-адрес выглядит так: https://api.example.com/oauth/v2/token?grant_type=[password|refresh_token]&client_id=[client_id]&client_secret=[client_secret]&username=[username]&password=[password]

Это отлично работает при межсерверных вызовах, но не может применяться в приложениях Javascript.

Как можно реализовать аутентификацию API Oauth 2 из фронтального приложения? (JWT отсутствует на сервере).


person Sylvain    schedule 27.03.2017    source источник


Ответы (1)


В контексте, который вы описали, лучший вариант (если не удается изменить api) - создать тонкий прокси-сервер, чтобы добавить еще один уровень защиты к вашему токену.

Учитывая, что вы, вероятно, разработчик javascript, вы можете легко использовать AWS API Gateway + Lambda для его создания без необходимости в сервере.

Сервер умирает каждый раз, когда кто-то реализует OAuth на одной странице в веб-приложении. Остановите геноцид! Используйте прокси на стороне сервера! Действовать сейчас!

- Алекс Билби (@alexbilbie) (https://github.com/alexbilbie/alexbilbie.github.com/blob/master/_posts/2014-11-11-oauth-and-javascript.md)

person Udan    schedule 27.03.2017