Есть три проходные партии в нашей системе:Контроль доступа на основе требований - как реализовать пользователя «Система»?
- Frontend
- Сервис А
- Service B
плюс у нас есть автономная службы маркеров безопасности, наш провайдер идентификации.
Идентифицированный пользователь взаимодействует с Frontend, он вызывает службу A, которая, в свою очередь, вызывает услугу B. Ток доступа пользователя проходит через этот конвейер, используя «poor's man identity delegation». Служба A и служба B разрешают (или не разрешают) действия пользователя на основе требований в переданном удостоверении. Все счастливы!
Но теперь я столкнулся с ситуацией, когда служба A не имеет контекста пользователя во время работы. Это происходит:
- при запуске
- когда Сервис А обрабатывает сообщение от сообщения шины
- когда срабатывает таймер
В каждом случае служба А требуется обратиться в службу B, чтобы получить какие-то данные, но он получает 401, потому что токен доступа не передан в службу B.
Есть ли какие-либо рекомендации, как справиться с такой ситуацией? Единственная идея, которую я имею в голову сейчас, - зарегистрировать пользователя «System» (возможный пользователь на услугу A, Service B, Service C и т. Д.) В нашем провайдере идентификации, получить токен доступа для этого пользователя и использовать его в случаях, описанных выше. Но я плохо пахну для меня, и я ищу альтернативные идеи.
Любые предложения будут оценены. Спасибо!