Openidc с ошибкой Keycloak uthenticate(): запрос к redirect_uri_path, но состояние сеанса не найдено, клиент

Я использую Openresty в качестве сервера. У меня есть файл конфигурации nginx в соответствии с https://eclipsesource.com/blogs/2018/01/11/authenticating-reverse-proxy-with-keycloak/.

Я получаю следующую ошибку "openidc.lua:1053: authenticate(): запрос к redirect_uri_path, но состояние сеанса не найдено, клиент"

Может кто-нибудь пролить свет и попытаться решить проблему.

С уважением, Аллахбакш

2 ответа

Ваш URI перенаправления не должен быть установлен в "/" но к некоторому произвольному пути, который не должен возвращать содержимое (например, /redirect_uri). Это "тщеславный" URL, который обрабатывается lua-resty-openidc

У меня была та же проблема, и я смог ее исправить, установив переменную $session_name в блоке сервера. Пример:

      server {
  ...
  server_name proxy.localhost;
  #lua_code_cache off;      
  set $session_name nginx_session;
  location / {          
          access_by_lua_block {
            local opts = {
               redirect_uri = "http://proxy.localhost/cb",
               discovery = "http://127.0.0.1:9000/.well-known/openid-configuration",
               client_id = "proxyclient-id",
               client_secret = "secret",
               ssl_verify = "no",
               scope = "openid"
            }
            -- call authenticate for OpenID Connect user authentication
            local res, err = require("resty.openidc").authenticate(opts)

            if err then
              ngx.status = 500
              ngx.say(err)
              ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR)
            end

            ngx.req.set_header("X-USER", res.id_token.sub)
          }

          proxy_pass http://localhost:8080/;
          proxy_set_header x-forwarded-proto $scheme;
        }
}

Еще одна вещь, на которую следует обратить внимание, это директива lua_code_cache off; Это может прервать сессию. См.: https://github.com/bungle/lua-resty-session#notes-about-turning-lua-code-cache-off .

Другие вопросы по тегам