Проверка JWT в архитектуре микросервисов и публикации открытых ключей

Мы проводим рефакторинг нашей системы веб-приложений для архитектуры микро-сервисов.
Мы решили аутентифицировать наших пользователей JWT и сохранить в нем некоторые данные авторизации. Например, из полезной нагрузки токена можно сделать вывод, может ли пользователь получить доступ к определенному ресурсу.

Мы рассмотрим два варианта:

  1. Каждый микросервис спросит службу подписи (например, API-шлюз), является ли токен действительным.
  2. Каждый микросервис будет хранить открытый ключ и проверять сам токен.

В случае управления открытыми ключами, как служба шлюза может опубликовать свой открытый ключ для всех других микро-служб?

Кажется, что есть много информации о том, как проектировать систему, но не о том, как на самом деле реализовать эти вещи.

1 ответ

Я бы посоветовал против варианта 1, поскольку он добавляет много ненужной нагрузки на службу подписи.

Служба подписи может поделиться своим открытым ключом. Службы, которым нужен этот ключ, могут просто получить его при запуске и использовать его для проверки JWT. При этом вам нужно убедиться, что служба подписи - это то, кем она является, используя, например, HTTPS.

Другие вопросы по тегам