Необходимо организовать авторизацию в микросервисной архитектуре. В системе есть группы пользователей. В любой момент администратор может отозвать или добавить полномочия определенной группе пользователей.
На данный момент, есть 2 варианта решения проблемы:
1. Прокси
Перед сервисами будет reverse-proxy сервис, с которым будет работать администратор. На данном уровне будет определятся конечный сервис по url и полномочия пользователя.
2. ACL сервис
Сервис, с которым будет работать администратор и к которому будут обращаться сервисы для определения полномочий пользователя.
Речь идет не об аутентификации, а об авторизации. Проблема в том, чтобы на уровне сервиса определить актуальные полномочия пользователя, которые могут быть изменены администратором в любой момент.
Был вариант хранить permissions в jwt, но тогда появляется необходимость обновлять его с определенным интервалом, чтобы держать их в актуальном состоянии.
Fadi Hadzh: OAuth — открытый протокол авторизации. Аутентификация происходит когда клиент отправляет токен, дальше - авторизация и делайте что хотите. Вы же по аутентифицированному пользователю в одном сервисе спрашивать у сервера авторизации можно ему или не.