密钥斗篷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;
}
}