Сценарий потока аутентификации mtls и jwt NGINX как шлюз API?
У меня есть сценарий, в котором аутентификация mTLS между B2B (клиентом) и шлюзом API NGINX требуется на одной стороне потока аутентификации для доступа к ресурсу из конечной точки API (за шлюзом API nginx), а между API nginx требуется авторизация JWT. шлюз, IdP (keycloak) и конечная точка API, на которой размещен ресурс URL.
Таким образом, похоже, что для новых клиентов, подключающихся к шлюзу API, будет осуществляться аутентификация mtls, а затем поток авторизации между шлюзом API и IdP и конечной точкой/микросервисом API будет происходить через поток JWT. Обобщить:
- Аутентификация MTLS происходит между клиентом B2B и шлюзом API.
- Если аутентификация mtls прошла успешно: шлюз API запрашивает токен JWT у IdP (?)
- IdP аутентифицирует запрос от шлюза API и
- Отвечает токеном JWT, содержащим правильные области авторизации.
- Шлюз API запрашивает ресурс у конечной точки/микросервиса API, используя токен JWT, чтобы предоставить данные авторизации.
- Ресурс возвращается и пересылается обратно клиенту...
Ближайшей моделью, которую я могу найти для этого сценария, является сценарий «Фантомный токен», описанный здесь:
https://curity.io/resources/learn/phantom-token-pattern/
(За исключением того, что в моем сценарии фантомный токен каким-то образом генерируется в ответ на успешную аутентификацию mtls клиентом)
Мои вопросы:
а) Имеет ли этот сценарий вообще смысл? Если да, то для каких случаев использования?
б) Если да, то как для этого будет выглядеть конфигурация NGINX Plus/NGINX?
Фон:
- Я понимаю, что mtls будет использоваться для обработки потока аутентификации для полной аутентификации.
- альтернативой было бы использовать аутентификацию JWT + авторизацию вместо mtls.
Меня смущает, почему/как можно использовать оба из них для authX API Gateway?