#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, а не общедоступный адрес для скрытой связи в моем кластере.
Следующие гиперссылки на местоположение источника пытаются выделить проблему в коде:
- конфигурация URL-адреса сервера nodejs connect (обратите внимание, что доступен только один URL-адрес, используемый как для связи с сервером keycloak, так и для проверки эмитента)
- Где применяется конфигурация
- Где эмитент токена проверяется на настроенном сервере аутентификации keycloak
- URL-адрес интерфейса сервера Keycloak
- Один из примеров того, как для эмитента устанавливается URL-адрес интерфейса при создании токена
Большое спасибо за любую помощь, Энди.