我怎样才能在 nginx 中实现这种行为

我怎样才能在 nginx 中实现这种行为

为了实现以下行为,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 的身份验证应用程序。

相关内容