@Wan-Derer
Зобанели на Хабре, волки́ ;((

Как организовать юзер-сервис в виде микросервиса?

Допустим, есть несколько (микро)сервисов, у каждого есть бэк (Java, Spring) и фронт (React, Angular etc.). Каждому надо понимать что за Вася на него зашёл и какие данные ему можно отдавать.
Поэтому есть потребность выноса логики работы с пользователями в отдельный микросервис чтобы он раздавал токены, авторизовал, следил за ролями и пр.
По отдельности эти части (front, back, security) плюс-минус понятны, по крайней мере, можно найти примеры. А вот как они должны взаимодействовать - непонятно. При этом задача-то шаблонная, наверняка есть типовой паттерн чтобы не городить велосипеды.

Подскажите что можно почитать, посмотреть на эту тему. Где найти примеры?
  • Вопрос задан
  • 167 просмотров
Пригласить эксперта
Ответы на вопрос 1
отдельный микросервис чтобы он раздавал токены, авторизовал, следил за ролями и пр.

Это работа для сервера авторизации, есть достаточно хороших готовых решений типа Keycloak которые достаточно легко интегрировать.

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы