Принимайте только аутентифицированные запросы к бэкенду

У меня такой вопрос. Я совсем новичок в этой области.
У меня есть веб-приложение. Оно состоит из сервисов, развернутых на движке Docker. Основными сервисами/контейнерами являются:

  • Фронтенд : React на веб-сервере Nginx
  • Backend (API) : Django, DRF на gunicorn на Nginx
  • .

Для фронтенда я использую провайдер Auth0. Он работает так, как ожидалось. Если пользователь не аутентифицирован/авторизован, он перенаправляется на страницу входа.

Теперь я хочу также "защитить" мой бэкенд, чтобы он принимал только аутентифицированные соединения от фронтенда. Для бэкенда (Django) у меня также включен CORS (django-cors-headers пакет), но я все еще могу подключиться из браузера my-site/api/ и получить ответ.
. Кто-нибудь знает, какую стратегию мне следует использовать. Должен ли я как-то защитить его с помощью JWT-токенов. Как-то передать его бэкенду в запросе?

Существуют различные способы авторизации вызовов API из ваших внешних приложений для выполнения действий на вашем внутреннем сервере. Они, как правило, различаются по нескольким аспектам:

  • Сложность
  • Необходимость знать, кто послал запрос
  • Поверхности доступа
  • Продолжительность доступа
  • Роли
  • и так далее...

В этом случае, если у вас есть аутентифицированные пользователи на вашем front-end с помощью AuthO, то JWT может иметь смысл, так как с помощью этого метода вы можете закодировать определенные данные пользователя, которые позволят вам принять решение на вашем back-end о том, должен ли этот пользователь иметь доступ к этому действию в это время.

Вот статья, объясняющая несколько популярных методов аутентификации

Вернуться на верх