代码之家  ›  专栏  ›  技术社区  ›  FERN

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

  •  1
  • FERN  · 技术社区  · 6 年前

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

    第一种情况:

    1. 用户尝试访问/login或/register页。
    2. nginx应该将这些调用直接重定向到auth服务。
    3. auth创建一个令牌并将其发送回用户。
    4. 结束。

    第二种情况:

    1. 用户试图使用令牌访问/someservice/somespage页。
    2. nginx应该将此调用重定向到API网关。
    3. api网关验证用户是否试图访问安全资源,如果是,验证令牌并返回2xx响应。
    4. nginx得到2xx响应并将用户重定向到 真实的 /一些服务
    5. someservice生成响应并将其发送回用户。
    6. 结束。

    首先,你觉得这个逻辑是正确的吗?我是否应该考虑其他选项身份验证选项? 最重要的是,如何使用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 回复  |  直到 6 年前
        1
  •  0
  •   FERN    6 年前

    最后我用一些小的调整保持了我原来的配置,比如 auth_request nginx指令和我按保护级别对功能进行分组,如果用户试图访问安全资源,那么nginx将首先通过另一个服务验证请求。

    推荐文章