отдельный микросервис чтобы он раздавал токены, авторизовал, следил за ролями и пр.
Это работа для сервера авторизации, есть достаточно хороших готовых решений типа Keycloak которые достаточно легко интегрировать.
Взаимодействие фронт-бэк происходит так:
1. Фронт перенаправляет пользователя в Keycloak для авторизации
2. Пользователь авторизовывается
3. Keycloak возвращает пользователя обратно на фронт с токеном в JWT формате и подписью (JWS)
4. Фронт делает авторизованные запросы в бэк с помощью этого токена
5. Бэк, используя публичный ключ из Keycloak, валидирует подпись токена и убеждается, что он не просрочен
6. Базовая информация о пользователе, Scope и его Roles находятся в токене, их можно использовать для валидации доступа к эндпойнтам бэка и понимать, кто авторизован