У меня есть несколько микросервисов, которые проверяют и идентифицируют пользователя с помощью Keycloak, как показано ниже.
Теперь я хочу разместить шлюз API Apache APISIX перед микросервисами.
Apache APISIX имеет плагин для Keycloak. Может ли подключаемый модуль сделать следующее, чтобы проверка была удалена из всех микросервисов?
access_token от пользователяПримечание
Эта статья подробно описывает, как интегрировать плагин Keycloak, чтобы пользователю пришлось проходить аутентификацию с помощью Keycloak (используя один Keycloak client_id и client_secret). Однако в моем случае у каждого пользователя будут разные client_id и client_secret.


Can the plugin do the following such that the validation is removed from all the microservices?
Да, оно может. Apache APISIX может проверять access_token, а также может добавлять user_info, id_token к восходящему потоку.
Для получения более подробной информации вы можете обратиться к документации по подключаемым модулям Apache APISIX. https://apisix.apache.org/docs/apisix/plugins/openid-connect.
In my case, however, each user will have a different client_id and client_secret.
Теперь Apache APISIX не поддерживает установку более одного идентификатора клиента openid-connect в маршруте. Может быть, вы можете создать больше маршрутов, каждый маршрут для каждого клиента? И используйте Host, чтобы различать их.
Спасибо за ответ. Это работает, как и ожидалось. Более того, плагин openid-connect аутентифицирует
access_tokenсгенерированные с использованием разныхclient_idиclient_secret