Этот репозиторий содержит аутентификационный микросервис и связанный с ним API-сервис. Для централизованного доступа к API задействован шлюз KrakenD.
1. AuthMicroservice (ссылка)
Аутентификационный микросервис. Создает и подписывает Access/Refresh токены приватным ключом.
- JWT-аутентификация
- Двухфакторная JWT-аутентификация (2FA) с помощью TOTP пароля (например, через Google Authenticator)
- Подпись токенов с использованием асимметричного алгоритма RSA
- Ротация ключей. В проекте есть специальная функция, которая создает новую пару ключей (private и public) и вводит их в работу.
2. APIMicroservice (ссылка)
Макет API сервиса, содержащего бизнес-логику. Есть защищенные эндпоинты, требующие JWT авторизации (1 шт).
Так как AuthMicroservice периодически обновляет ключи, APIMicroservice может запрашивать у него актуальный публичный ключ, а также несколько предыдущих ключей. Последние нужны для верификации токенов, подписанных старыми ключами, время действия которых еще не истекло.
Проект докеризирован, поэтому для запуска достаточно выполнить docker-compose up --build в папке проекта.
API будет доступен по адресу http://localhost:8080/.
/users/{user-id}:
Возвращает пользователя по его id
Метод:GET/orders/{user-id}:
Возвращает все заказы пользователя по его id
Метод:GET/user-data/{user-id}:
Этот эндпоинт существует только в KrakenD, он агрегирует результаты с/users/{user-id}и/orders/{user-id}
Метод:GET