OAuth 2 - почему на первом шаге нельзя отправить секрет клиента с сервера приложений на сервер аутентификации? - PullRequest
0 голосов
/ 15 мая 2019

У меня проблемы с пониманием смысла шага кода авторизации в потоке кода авторизации OAuth. Почему сервер приложений не может напрямую отправить client_secret на сервер аутентификации и пропустить этот шаг кода авторизации? Более конкретно, почему поток не может быть просто:

  1. Пользователь нажимает кнопку входа, JavaScript выполняет вызов на сервер приложений
  2. Сервер приложений отправляет запрос серверу авторизации с помощью client_id, client_secret, scope + redirect_uri. Затем перенаправляет пользователя на конечную точку аутентификации.
  3. Конечная точка аутентификации предлагает пользователю предоставить доступ к приложению. Пользовательские клики позволяют.
  4. Сервер аутентификации возвращает токен доступа на сервер приложений и переходит к redirect_uri.

Документы Okta говорят, что: «Этап обмена кодом гарантирует, что злоумышленник не сможет перехватить токен доступа, поскольку токен доступа всегда отправляется через защищенный обратный канал между приложением и сервером OAuth «. Я думаю, что подход, который я описал выше, все же позволил бы отправлять токен через этот безопасный обратный канал. Может кто-то указать на пробел в моем понимании?

Я также прочитал этот очень полезный ответ ( Почему в OAuth2 есть поток "Код авторизации", когда поток "Неявный" работает так хорошо? ), но я все еще смущен, потому что кажется как мои шаги 2 и 4 могут быть выполнены через HTTPS и от поставщика OAuth.

...