Как /oauth/authorize и /oauth/token взаимодействуют в Spring OAuth?

Я глубоко изучаю Spring OAuth и нашел противоречивую информацию.

В частности, в этом руководстве указано, что /oauth/token конечная точка обрабатывает имя пользователя и пароль перед предоставлением обновления. токен в клиентское приложение. Напротив, Руководство для разработчиков Spring OAuth упоминает /oauth/authorize и /oauth/token конечных точек, но пока не уточняет, как они работают.

Выполняет ли /oauth/authorize 100 % проверки username/password/nOtherFactors, а затем сигнализирует конечной точке /oauth/token отправить маркер обновления клиенту, чтобы клиент затем отправил маркер обновления конечной точке /oauth/token?

Или все это обрабатывается конечной точкой /oauth/token?

Отличается ли соотношение между /oauth/authorize и /oauth/token для разных типов грантов? Как?


person CodeMed    schedule 29.04.2016    source источник
comment
Я удалил два изображения из этого, где хост изображения умер. Если вы можете снова получить эти изображения, разместите их на официальном CDN.   -  person halfer    schedule 07.02.2019


Ответы (1)


Согласно спецификации OAuth 2.0 конечные точки авторизации и токена имеют разные цели.

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

Конечная точка токена — это место, где клиент (например, серверный API или мобильное приложение) вызывает обмен кодом авторизации, идентификатором клиента и секретом клиента на токен доступа. В этом сценарии агенту пользователя предоставляется только код авторизации, без прямого доступа к токену доступа. Клиент является доверенной стороной с доступом к идентификатору клиента и секрету клиента с сервера авторизации (поэтому я упомянул API на стороне сервера в качестве клиента).

Пожалуйста, прочитайте эту статью, в которой есть еще лучшее объяснение.

person Soma Yarlagadda    schedule 02.05.2016
comment
Спасибо и +1 за объяснение со ссылкой. Позволь мне изучить это немного подробнее, когда у меня будет время. Мне любопытно узнать, отличается ли ответ на этот ОП для разных типов грантов. Однако я не ожидаю, что вы напишете об этом диссертацию. - person CodeMed; 02.05.2016
comment
Превосходно! Я знаю, что этот ответ уже немного старше, но спасибо за краткое объяснение! Особенно, если кто-то использует Spring Security 5 + OAuth2Client, он получает массу конечных точек просто так, что затрудняет понимание и настройку приложения, основанного на этих библиотеках. - person Igor; 12.03.2020