У меня есть несколько микро-сервисов. которые могут вызываться клиентом через API-шлюз, а также микро-сервисы могут связываться друг с другом.
В идеале запрос будет исходить от шлюза API от пользователя, который будет иметь все разрешения.
здесь я пытаюсь назначить пользователю только требуемую роль, например, если пользователю (браузеру) нужны данные из микро-сервиса A, тогда только эта роль будет предоставлена пользователю, и если внутренне микро-сервис A нуждается в данных из B (вызов покоя), то эта роль не должна быть назначена пользователю.
Требование: как ограничить / разрешить внутреннюю связь между микро-сервисами, чтобы только авторизованный микро-сервис мог звонить другим.
Параметры:
Назначение всех ролей пользователю, даже для внутренней связи (передача одного и того же токена во всех сообщениях).
Присвоение пользователю роли, относящейся только к пользователю, если он требует внутренней связи, тогда каждая микросервис будет действовать как сам пользователь для другого микросервиса и генерировать собственный токен перед вызовом.
- Не разрешать микросервису осуществлять внутреннюю связь, а извлекать все данные из всех микросервисов и процессов на клиенте.
Какой вариант лучше использовать выше или любой другой?