Разница между ресурсом и клиентом в OAuth2 - PullRequest
0 голосов
/ 07 ноября 2019

Я разрабатываю систему аутентификации / авторизации в узле J для приложения на основе микросервиса.

Я прочитал некоторые статьи и документацию о стандарте OAuth2, но мне нужно кое-что прояснить для моего случая использования. В основном у OAuth2 есть несколько действующих лиц, таких как:

  • Владелец ресурса (пользователь)
  • Клиентское приложение (веб-приложение в некоторых потоках грантов OAuth2, такое как код авторизации, неявный, пароль)
  • Сервер авторизации
  • Сервер ресурсов (служба, к которой я хочу получить доступ)

Поэтому в моей базе данных я храню клиента (веб-приложение) с его client_id и client_secret.

Предположим, что одному из моих микросервисов необходим доступ к данным из другого микросервиса. Оба они имеют REST Api. Нет взаимодействия с пользователем, все делается в фоновом режиме. В этом случае я бы использовал поток учетных данных клиента. Следуя правилам OAuth2, оба они являются серверами ресурсов, но в то же время похоже, что они также являются клиентскими приложениями.

Так я должен зарегистрировать их в таблице / коллекции клиентских БД с идентификатором клиента, секретным и так далее, или я сделал несколько ошибок?

Спасибо

1 Ответ

0 голосов
/ 08 ноября 2019

Если я правильно понял ваш вопрос, микросервис вызывающего абонента - это ваш клиент, а вызываемый - ваш ресурс. Многое зависит от того, какой тип связи с микросервисами вы внедрили. Если вы реализуете шаблон «API-шлюз», то ваш шлюз всегда является клиентом, а все остальные микросервисы могут рассматриваться как ресурсы. Но если ваши микро-сервисы могут звонить друг другу, то, как вы упомянули, каждый из них должен быть зарегистрирован как клиент и ресурс одновременно.

...