Я работаю над микросервисной архитектурой, но сталкиваюсь с некоторыми проблемами.
Сначала позвольте мне кратко рассказать об архитектуре.
Пользователь входит в систему и получает подписанный токен, который будет использоваться для вызова всех REST APIS.
Будет много серверов API, на которых API защищены с помощью безопасности Spring и авторизованы в соответствии с ролями пользователей.
Службы должны взаимодействовать друг с другом для получения/обновления информации.
Каждая служба будет иметь право проверять выпуск токена сервером аутентификации.
Проблема:-
Все работает нормально, если пользователь входит в систему, и один и тот же токен используется и передается каждой службе, которая проверяется. Таким образом, службам не нужно доверять друг другу при передаче токена.
Теперь проблема в том, что есть некоторые службы, которые необходимо вызывать с самого сервера без входа в систему. Допустим, вызов сервера на сервер. Как служба будет аутентифицировать и авторизовать вызов от других служб.
Я читал о Spring Microservices, но Zuul здесь тоже не спаситель, так как каждый сервер API имеет встроенную защиту Spring, а не только шлюз API.
Одним из решений может быть то, что у каждой службы есть свой собственный пользователь по умолчанию с определенными ролями, который используется для входа в систему-> получение токена-> вызова другого API-интерфейса сервера с токеном.
Не могли бы вы дать мне несколько указателей на серверные вызовы, где каждый сервер аутентифицируется и авторизуется с использованием весенней безопасности.
Спасибо.