密钥斗篷Nginx问题-即使提供了有效的承载令牌,Nginx仍将进入浏览器流

密钥斗篷Nginx问题-即使提供了有效的承载令牌,Nginx仍将进入浏览器流,nginx,keycloak,openid-connect,nginx-config,Nginx,Keycloak,Openid Connect,Nginx Config,我有一个后端\u svc和/testGET端点,它返回一些数据 我想获得这项服务。我想使用NGINX作为api网关,并在NGINX级别设置api身份验证。 我使用的是运行在keydove\u ip:9999 基于登录的浏览器流工作正常,即通过NGINX提供用户名和密码后,我能够访问后端_svc 我要做的是使用访问\u令牌访问此后端\u svc。 我能够通过使用keydape/token端点生成access\u令牌 但是,当我从邮递员处访问后端\u svc时,即使我提供访问\u令牌它仍然会重定向到

我有一个
后端\u svc
/test
GET端点,它返回一些数据

我想获得这项服务。我想使用NGINX作为api网关,并在NGINX级别设置api身份验证。 我使用的是运行在
keydove\u ip:9999

基于登录的浏览器流工作正常,即通过NGINX提供用户名和密码后,我能够访问
后端_svc

我要做的是使用
访问\u令牌访问此
后端\u svc
。 我能够通过使用keydape
/token
端点生成
access\u令牌

但是,当我从邮递员处访问
后端\u svc
时,即使我提供
访问\u令牌
它仍然会重定向到登录流,请参阅随附的邮递员屏幕截图

如果我使用Zuul API网关而不是NGINX,那么在给定
access\u令牌的情况下,它可以正常工作

显然,NGINX没有验证
access\u令牌
,即使它是有效的

NGINX形态-

  server {
    listen 80;

    location /health {
      default_type text/plain;
      return 200 "the NGINX server is working in local docker!";
    }

    access_by_lua '
         local opts = {
           redirect_uri_path = "/redirect_uri",
           accept_none_alg = true,
           discovery = "http://keycloak_ip:9999/auth/realms/sahaj/.well-known/openid-configuration",
           client_id = "sahaj",
           client_secret = "e51910a7-73f5-457c-838c-e71db47e3ba5",
           redirect_uri_scheme = "http",
           logout_path = "/logout",
           redirect_after_logout_uri = "http://keycloak_ip:9999/auth/realms/sahaj/protocol/openid-connect/logout?redirect_uri=http://backend_svc:8888",
           redirect_after_logout_with_id_token_hint = false,
           session_contents = {id_token=true}
         }
         -- call introspect for OAuth 2.0 Bearer Access Token validation
         local res, err = require("resty.openidc").authenticate(opts)
         if err then
           ngx.status = 403
           ngx.say(err)
           ngx.exit(ngx.HTTP_FORBIDDEN)
         end
        
        ';

    location /backend-api {
            rewrite ^/backend-api(.*) $1 break;
            proxy_pass http://backend_svc:8888;
    }

  }