Настройка nginx с помощью шлюза API и службы аутентификации - PullRequest
0 голосов
/ 21 мая 2018

В настоящее время я реализую некоторую логику в своей конфигурации nginx, чтобы я мог обрабатывать аутентификацию и проверку токена.Моя логика здесь такова:

Первый сценарий:

  1. Пользователь пытается получить доступ к страницам / login или / register.
  2. Nginx должен перенаправить эти вызовы непосредственно наauth service.
  3. Auth создает токен и отправляет его обратно пользователю.
  4. End.

Второй сценарий:

  1. Пользователь пытается получить доступ к странице / someservice / somepage с помощью токена.
  2. Nginx должен перенаправить этот вызов на шлюз API.
  3. Шлюз API проверяет, пытается ли пользователь получить доступ к защищенному ресурсу, если это так, проверьте токен и отправьте ответ 2xx.
  4. Nginx получает ответ 2xx и перенаправляет пользователя на real / someservice
  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 Ответ

0 голосов
/ 28 мая 2018

Итак, наконец, я сохранил свои исходные конфигурации с некоторыми небольшими изменениями, такими как замечательная директива auth_request nginx, и я группирую функциональность по уровню защиты. Если пользователь пытается получить доступ к защищенному ресурсу, тогда nginx сначала проверит запрос черездругой сервис.

...