API-шлюз и проверка подлинности микросервисов

Как работает API Gateway и микросервисы.

Может ли кто-нибудь объяснить основной поток архитектуры микросервисов с помощью шлюза. Я не мог найти правильный ответ.

Скажем, у нас есть сервер аутентификации и микрослужба клиентов, работающие в отдельных экземплярах и перед всеми службами, у нас есть шлюз API.

У меня такой вопрос.

когда пользователь пытается войти в систему, используя имя пользователя и пароль, шлюз API вызывает сервер аутентификации и возвращает пользователю токен доступа.

Затем пользователь пытается получить доступ к определенному URL-адресу (/ customers - клиентская микрослужба), который работает в отдельном экземпляре. что делает API Gateway?

  1. проверить токен с помощью сервера аутентификации, получить идентификатор пользователя и передать запрос в службу поддержки клиентов с идентификатором пользователя?

OR

  1. проверить токен и передать запрос микросервису клиента с токеном доступа? а микросервис клиента отвечает за проверку идентификатора пользователя (выполнение HTTP-вызова на сервер аутентификации)?

person Karesh A    schedule 31.07.2017    source источник


Ответы (2)


Я думаю, что наиболее распространенным подходом является использование шлюза API также в качестве шлюза безопасности, что означает, что шлюз API отвечает за завершение SSL и проверку токена. Если проверка токена прошла успешно, вы можете поместить идентификатор пользователя или ключ API пользователя в качестве заголовка и перенаправить запрос в микросервис. Более того, вы также можете решить выполнять не только аутентификацию, но и авторизацию на шлюзе API (обычно с помощью решений для управления API).

Что касается вашего варианта №2 - я не вижу смысла проверять токен 2 раза. Лучше всего выполнять проверки безопасности на границе, потому что в случае неудачной проверки вы используете меньше ресурсов (откажитесь раньше)

person Irek L.    schedule 20.01.2019

Чтобы ответить на ваш вопрос, это близко к варианту № 2, который вы упомянули. Шлюз API обычно проверяет действительность токена аутентификации, а затем передает запрос в вашу микрослужбу. Однако вам нужно решить во время разработки, будет ли ваша микрослужба также выполнять другой уровень проверки токена.

Обратите внимание, что шлюз API не будет выполнять авторизацию, авторизация - это то, что ваша микрослужба должна будет обеспечить.

person Atmanirbhar Bharat    schedule 06.10.2017