Keycloak-nodejs-connect grantManager не может выполнить проверку доступа при настройке с помощью внутреннего адреса службы kubernetes keycloak

#kubernetes #oauth-2.0 #keycloak #keycloak-nodejs-connect

#kubernetes #oauth-2.0 #keycloak #keycloak-nodejs-connect

Вопрос:

У меня возникла проблема при проверке токенов с использованием библиотеки keycloak-nodejs-connect, развернутой в кластере kubernetes, в частности, при использовании внутреннего служебного адреса kubernete для keycloak в качестве URL-адреса сервера аутентификации. Я использую keycloak версии 10.0.1.

Наш рабочий процесс выглядит следующим образом — наше веб-приложение проходит проверку подлинности с помощью общедоступного клиента keycloak для получения токена доступа. Этот токен присоединяется к запросам к базе данных для получения данных. База данных (hasura) использует перехват аутентификации для проверки токена, прежде чем разрешить доступ к его данным. Этот перехват аутентификации реализует библиотеку keycloak-nodejs-connect и через предоставленное промежуточное программное обеспечение вызывает grantManager validateToken . Однако, когда библиотека connect настроена с использованием адреса службы kubernete (http://keycloak:8080/auth /) гарантируется ошибка при совпадении с эмитентом, потому что свойство эмитента в токене JWT ( iss ) будет URL-адресом интерфейса, настроенным на сервере keycloak (https://keycloak.public.address.uk/auth /).

Есть ли способ предоставить интерфейс и серверный URL-адрес для библиотеки keycloak-nodejs-connect, чтобы проверка эмитента могла выполняться при использовании серверного URL-адреса для связи с keycloak через службу kubernete — или я должен настраивать keycloak определенным образом, чтобы эмитент отличался? Мне специально нужно использовать здесь служебный адрес kubernete, а не общедоступный адрес для скрытой связи в моем кластере.

Следующие гиперссылки на местоположение источника пытаются выделить проблему в коде:

Большое спасибо за любую помощь, Энди.