Как защищает параметр состояния в Oauth 2.0?

Добрый день Разъясните мне пожалуйста как защищает параметр state в URL при использовании oauth 2.0.

  1. Когда клиент хочет пройти аутентификацию в моем Django-приложении, он отправляет запрос на oauth-сервер с зашифрованным или подписанным параметром состояния.
  2. На сервере аутентификации клиент вводит имя пользователя и пароль, и если они совпадают, сервер аутентификации перенаправляет клиента обратно в мое приложение, используя GET-запрос, содержащий параметр "code" и то же состояние .
  3. Мое приложение получает этот запрос, проверяет состояние и отправляет новый запрос на сервер аутентификации, содержащий "код", состояние и секрет (который я заранее получил от администрации сервера аутентификации).
  4. Сервер аутентификации проверяет секрет и состояние и выдает токен доступа моему приложению. Вопрос: Какую функцию выполняет состояние? Если я правильно понимаю, между шагами 1 и 2 мой запрос может быть перехвачен, а состояние может быть легко скопировано, даже в зашифрованном виде, и вставлено в поддельный запрос. Сервер аутентификации не проверяет состояние на наличие подписи и не пытается его расшифровать... От чего это защищает?

Я пытаюсь понять, как это работает

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