OAuth 2.0 на REST API со сторонним поставщиком - PullRequest
1 голос
/ 31 марта 2019

Я новичок в OAuth 2.0 и пытаюсь разработать приложение с использованием стороннего поставщика OAuth с потоком предоставления кода авторизации в качестве сервера авторизации и Spring Security.Этот провайдер предоставляет мне две конечные точки /authorize и /token, и эти две, после того как пользователь авторизует свой доступ, вернут токен доступа.

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

Но, поскольку приложение в основном представляет собой набор API REST,мы хотим иметь возможность протестировать его с помощью Postman, при этом на Postman я получаю токен, устанавливая авторизацию как OAuth 2.0 и запрашивая токен непосредственно со сторонних конечных точек, но, поскольку Postman имеет свой собственный URI обратного вызова,мое приложение не хранит сгенерированный токен.

Итак, два моих вопроса по этому вопросу:

  1. Использование конечной точки / callback для хранения токена и проверка его перед каждым запросомФильтр это обычный способ сделать это?
  2. Чтобы использовать Почтальон, я должен создать конечную точку для хранения сгенерированного токенав стороне от контекста приложения или я должен создать собственный Сервер авторизации в качестве дополнительного слоя поверх этой сторонней AS?

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

В конце концов я пришел к выводу, что все время использовал Почтальона неправильно.Итак, к концу мы получили токен, сохраненный в базе данных, когда пользователь входит в систему, и затем возвращаем его вызывающей стороне, будь то приложение Front-end или сам Postman.Затем при каждом вызове API вызывающий должен включать в заголовок токен в качестве Авторизации, а Фильтр на Spring будет проверять токен в Базе данных.

0 голосов
/ 01 апреля 2019

Поскольку ваше приложение представляет собой набор API REST, вам необходимо сделать его в качестве сервера ресурсов (в терминах OAuth2).
Resource Server сам не выполняет аутентификацию, он только проверяет токен из заголовка Authorization ( Resource Server в двух словах ).

Пример можно найти в примерах Spring Security: oauth2resourceserver

...