Подтвердить что ты не робот

Как работают API-шлюзы?

Как работают API-шлюзы? Каковы типичные компоненты шлюза API? Существуют ли общие стандарты в отношении того, как они управляют безопасностью, протоколированием вызовов и управлением?

4b9b3361

Ответ 1

Это довольно широкий вопрос, поскольку существует множество разных типов шлюзов (и решений для управления). В самом широком смысле шлюз - это фильтр где-то в вашем веб-стеке (размещенный вами или третьим лицом), который каким-то образом фильтрует ваш трафик API. Может произойти некоторая фильтрация:

  • Внутри CDN, если вы используете его, прежде чем он достигнет ваших серверов.
  • В прокси-сервере, размещенном третьей стороной, с которой вы перенаправляете трафик.
  • В рамках выделенных машин в вашем собственном облаке или локальной инфраструктуре, в которых запущено программное обеспечение прокси (стороннее, с открытым исходным кодом или в доме).
  • В рамках определенной части вашего приложения стек перед трафиком берется для первичной обработки.

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

Шлюз обычно работает как набор модулей и фильтров, которые обрабатывают трафик, когда он протекает через него с высокой скоростью, и вы можете обычно включать те модули/фильтры, которые вам нужны, и контролировать их параметры. Очевидно, существует довольно много разных способов реализовать на практике различные варианты и различные системы с открытым исходным кодом.

Я попытаюсь написать это нейтрально, так как я работаю для 3scale, который предлагает как коммерческие, так и open-source решения, но я бы предложил вам посмотреть на различные варианты и сделать свои собственные выводы! Основной выбор у вас:

  • Собственные шлюзы на локальном уровне, от поставщиков, таких как Apigee и Layer7 - это, как правило, жесткое или мягкое устройство, которое вы установите локально в ваш центр обработки данных.
  • Облачные шлюзы, от таких поставщиков, как Mashery, Apigee и WSO2 API Cloud, которые эффективно используют API-трафик, перенаправленный через их серверы.
  • Архитектуры плагинов/агентов, такие как 3scale (для которых я работаю), которые предоставляют программные модули, которые могут быть развернуты по помещению в приложении, по предположению в прокси-шлюзе с открытым исходным кодом, например Varnish, а также подключен к CDN.
  • Решения с открытым исходным кодом, такие как APIAXLE и WSO2, которые могут быть развернуты в помещении или в облаке.

Различные подходы работают по-разному, и это зависит от того, к чему вы стремитесь. В 3scale у нас, очевидно, есть предвзятость для нашего подхода, поскольку он позволяет вам размещать фильтрующие элементы практически в любом месте вашего стека, но не сомневайтесь, что каждый поставщик будет иметь свое представление!