Авторизация между микро сервисами и пользователями - PullRequest
0 голосов
/ 02 мая 2018

Каков наилучший способ обработки доступа и авторизации между микросервисами и пользователями?

Я создаю приложение на микросервисной архитектуре. Службы общаются друг с другом через REST. Существуют конечные точки, к которым должны обращаться только другие микросервисы, а не пользователи напрямую, некоторые конечные точки являются общедоступными, а некоторые требуют, чтобы пользователи регистрировались или имели права администратора. Кроме того, у пользователей будут роли, такие как администраторы и обычные пользователи.

Я пытаюсь выяснить, является ли Oauth2 и области видимости лучшим подходом к тому, чего я пытаюсь достичь. например у каждого микросервиса будет «пользователь», имеющий права доступа к определенным областям, таким как «service1-place-order».

1 Ответ

0 голосов
/ 04 мая 2018

да, Oauth2 - верный путь для этого

Вы должны внедрить сервер авторизации, который предоставит вам токен доступа, и вы зарегистрируете клиента, пользователя и области на этом сервере авторизации, ваши микросервисы будут работать как серверы ресурсов, конечные точки, которые вы хотите предоставить определенным пользователям с помощью некоторые привилегии будут аннотированы с помощью @preauthorize (hasScope ('readThis') && hasAuthority ('admin')), аналогично вы можете ограничить другие конечные точки, сервер ресурсов будет аутентифицировать токен с сервером аутентификации, поэтому вам придется поддерживать либо хранилище inMemoryTokern, либо токен jdbc магазин,

в случае, если вы хотите получить некоторую информацию в вашем токене доступа, скажем, организации и т. Д., Внедрить также jwt, таким образом вы также сохраните дополнительный вызов с сервера ресурсов на сервер аутентификации для проверки токенов, и вам не нужно будет хранить токен в магазин памяти или jdbc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...