Использование Kong в качестве обратного прокси для Keycloak с аутентификацией OpenId - PullRequest
0 голосов
/ 24 марта 2019

Я использую 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.....

Если яудалите часть после / (? state = ....), тогда все работает просто отлично.

Мой конг 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()
        }

Я просто ожидаюпервый редирект для работы, как когда я вручную удалил состояние =

...