Как настроить пользовательскую аутентификацию и авторизацию в Istio/K8?

Допустим, у меня есть проект с 8 модулями (сервисами). Я понимаю, что аутентификация и авторизация в Istio Gateway выполняются с использованием jwt. Чтобы каждый запрос был проверен. Но пользователям с разными ролями, например: [учитель, ученик, персонал] необходима конечная точка для регистрации/входа/выхода из системы с использованием имени пользователя и пароля. Есть ли способ, с помощью которого Istio Gateway обрабатывает создание пользователей, сохраняя их в базу данных и генерируя jwt? Или мне нужно создать еще один модуль (сервис), предназначенный для Auth, и сгенерировать jwt из этого модуля? Если да, то как мне еще настроить jwt проверку прямо со шлюза?

Спасибо, что нашли время и прочитали это)

1 ответ

Есть ли способ, с помощью которого Istio Gateway обрабатывает создание пользователей, сохраняя их в базу данных и генерируя jwt?

Нет, для этого вам необходимо создать микросервис (приложение) Аутентификации, который генерирует токен.

Istio берет на себя задачу проверки токенов JWT во входящих пользовательских запросах. Поэтому, если вы реализуете функцию аутентификации IstioJWT, коду вашего приложения не нужно беспокоиться о проверке токена JWT. Istio сделает это за вас. Не генерация токенов JWT. Istio не будет генерировать токены за вас. Это должен делать микросервис аутентификации. Istio проверит, действителен JWT или нет.

Здесь вы можете найти пошаговое руководство о том, как работают Istio и JWT для аутентификации микросервисов. Там вы также найдете множество схем авторизации на основе JWT.

Смотрите также:

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