为了实现以下行为,Nginx 需要哪些配置:
每当收到请求时,都应将其转发给应用程序 A;如果应用程序 A 在响应中返回 { "allowed" :true},则应将同一请求转发给应用程序 B,并将应用程序 B 的响应返回给客户端。但是,如果应用程序 A 在响应中返回 { "allowed" : false},则服务器应返回状态代码为 401 的响应。
像这样:
server {
listen 80;
location / {
# forword request to App-A;
proxy_pass https://app-A.dev/;
# Read the response
if response['allowed'] == true;
# forword it to application B
proxy_pass https://app-B.dev/;
else:
return '401';
}
}
答案1
这:https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-subrequest-authentication/
您可以查看 Authelia 或 Authentik 的身份验证应用程序。