使用API​​网关配置nginx&身份验证服务

时间:2018-05-21 11:13:32

标签: authentication nginx nginx-location api-gateway nginx-config

我目前在我的nginx配置中实现了一些逻辑,因此我可以处理身份验证和令牌验证。我的逻辑是:

第一种情况:

  1. 用户尝试访问/ login或/ register页面。
  2. Nginx应将这些调用直接重定向到auth服务。
  3. Auth创建一个令牌并将其发送回用户。
  4. 结束。
  5. 第二种情况:

    1. 用户尝试使用令牌访问/ someservice / somepage页面。
    2. Nginx应将此调用重定向到API网关。
    3. API Gateway验证用户是否正在尝试访问受保护资源,如果是,则验证令牌并发回2xx响应。
    4. Nginx获得2xx响应&将用户重定向到真实 / someservice
    5. Someservice生成响应并将其发送回用户。
    6. 结束。
    7. 首先,这个逻辑对你来说好吗?我应该考虑其他选项身份验证选项吗? 最重要的是,如何使用nginx实现此逻辑?

      我的nginx配置如下所示:

      http {
        upstream gateway {
          server ...;
        }
        upstream auth {
          server ...;
        }
        upstream someservice {
          server ...;
        }
        server {
          location ^~ /api {
            proxy_pass http://gateway;
            # redirect ???
          }
          location /auth {
            proxy_pass http://auth;
          }
          location /someservice {
            proxy_pass http://someservice;
          }
        }
      }
      

      谢谢!

1 个答案:

答案 0 :(得分:0)

所以最后我通过一些小的调整保留了我的原始配置,比如伟大的auth_request nginx指令,并且我按照保护级别对功能进行分组,如果用户试图访问安全资源,那么nginx将首先验证通过其他服务请求。