Использование Kong в качестве обратного прокси для Keycloak с аутентификацией OpenId
Я использую Kong для защиты своих микросервисов с помощью kong-oidc ( https://github.com/nokia/kong-oidc). Это работает просто отлично, пока я не использую Kong в качестве обратного прокси для Keycloak. В противном случае при доступе к защищенному URI (API: https://localhost/api/v1/counterparty) я получаю запрос к redirect_uri_path, но состояние сеанса не найдено.
У меня проблема только после первого перенаправления, которое выглядит следующим образом: https: // localhost / api / v1 / counterparty-service /? State = 48f642ce2e4d6aea65810e01bb0de89c & session_state = a63.....
Если я удаляю часть после / (? Состояние =....), то все работает просто отлично.
Мой конг ngnix config (полный пример на https://github.com/hostettler/microservices):
location /auth/ {
proxy_pass http://iam:8080/auth/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /api {
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
default_type '';
set $ctx_ref '';
set $upstream_host '';
set $upstream_upgrade '';
set $upstream_connection '';
set $upstream_scheme '';
set $upstream_uri '';
set $upstream_x_forwarded_for '';
set $upstream_x_forwarded_proto '';
set $upstream_x_forwarded_host '';
set $upstream_x_forwarded_port '';
rewrite_by_lua_block {
Kong.rewrite()
}
Я просто ожидаю, что первый редирект будет работать так же, как когда я вручную удалил состояние =