Перейти к содержанию

Федеративные шлюзы

Обзор

NEOMSA APIM поддерживает развертывание API на внешних сторонних API-шлюзах, что позволяет создать федеративную архитектуру API-шлюзов. Такой подход отделяет плоскость управления от шлюзов среды выполнения, обеспечивая централизованное управление API и позволяя API работать ближе к пользователям или сервисам для повышения производительности и отказоустойчивости.

Что такое федеративный шлюз?

Федеративный шлюз — это внешний API-шлюз, работающий независимо, но управляемый централизованно через NEOMSA APIM . В этой архитектуре:

  • Централизованное управление API : NEOMSA APIM служит панелью управления, где вы определяете, версионируете, обеспечиваете безопасность и отслеживаете свои API.

  • Распределенные API-шлюзы : API развертываются на нескольких шлюзах среды выполнения в различных средах, таких как облачные платформы (AWS, Azure), локальные системы или кластеры Kubernetes.

Этот архитектурный шаблон позволяет организациям:

  • Повышение производительности : перенаправляйте трафик API на ближайший или наиболее оптимальный шлюз, уменьшая задержку.

  • Повышение отказоустойчивости : Изолируйте сбои, чтобы проблемы в одном шлюзе не влияли на другие.

  • Обеспечение управления : централизованное применение политик и управление жизненным циклом на всех федеративных шлюзах.

  • Обеспечьте гибкость облачных вычислений : развертывайте API в AWS, Azure, локально или в гибридных/мультиоблачных средах.

Поддерживаемые шлюзы

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

Gateway Discovery Deployment Environment
AWS API Gateway [x] Поддерживается [x] Поддерживается Облако AWS
Шлюз API Azure [x] Поддерживается [x] Поддерживается Облако Azure
Kong Gateway [x] Поддерживается [ ] Не поддерживается Kubernetes, автономный
Envoy Gateway [x] Поддерживается [ ] Не поддерживается Kubernetes

Условные обозначения:

  • Обнаружение: Возможность автоматического обнаружения существующих API, развернутых на шлюзе, и их импорта в NEOMSA APIM для управления и обеспечения прозрачности. - Развертывание: Возможность развертывания API, разработанных в NEOMSA APIM , на федеративном шлюзе.

AWS API Gateway

Развертывайте и управляйте API на Amazon Web Services API Gateway. NEOMSA APIM поставляется с предустановленным коннектором к шлюзу AWS, который обеспечивает бесперебойное развертывание и управление API в инфраструктуре AWS.

Основные функции:

  • Развертывание API в AWS API Gateway

  • Обнаружение существующих API из AWS API Gateway

  • Безопасность OAuth 2.0 через Lambda Authorizer

  • Централизованное управление через NEOMSA APIM

Шлюз API Azure

Развертывайте и управляйте API в службе управления API Microsoft Azure. Встроенный коннектор шлюза Azure упрощает развертывание и обнаружение API в инфраструктуре Azure.

Основные функции:

  • Развертывание API в Azure API Management

  • Обнаружение существующих API через Azure API Gateway

  • Интеграция с Microsoft Entra ID

  • Централизованное управление через NEOMSA APIM

Kong Gateway

Обнаружение и управление API, развернутыми на Kong Gateway. NEOMSA APIM поддерживает как развертывание Kong Kubernetes, так и Kong Standalone.

Основные функции:

  • Обнаружение API через портал разработчиков Kong

  • Обнаружение шлюзовых сервисов, развернутых в Kong

  • Поддержка режимов Kong Kubernetes и автономного режима

  • Единое управление через панель управления NEOMSA APIM

Envoy Gateway

Обнаружение и управление API, развернутыми на Envoy Gateway в средах Kubernetes.

Основные функции:

  • Обнаружение API через Envoy Gateway

  • Интеграция с Kubernetes

  • Централизованное управление API

Режимы шлюза

Федеративные шлюзы могут работать в различных режимах в зависимости от ваших требований:

  • Режим только для записи : развертывание и управление API из NEOMSA APIM на федеративном шлюзе.

  • Режим только для чтения : обнаружение и импорт существующих API из федеративного шлюза в NEOMSA APIM .

  • Режим чтения-записи : Обеспечивает как развертывание новых API, так и обнаружение существующих API, гарантируя полную двустороннюю синхронизацию.

Пользовательские агенты шлюза

Если вам необходимо интегрироваться со сторонним шлюзом, который не поддерживается по умолчанию, NEOMSA APIM предоставляет возможность создания пользовательских агентов шлюза. Это позволяет расширить возможности федеративного шлюза на любой внешний шлюз.

Преимущества архитектуры

Внедрение федеративной архитектуры шлюзов с использованием NEOMSA APIM предоставляет ряд ключевых преимуществ:

  1. Централизованное управление: управление всеми API из единой панели управления независимо от места их развертывания.

  2. Операционная независимость: Команды могут использовать собственные шлюзы среды выполнения, сохраняя при этом централизованное управление.

  3. Снижение задержки: развертывайте API ближе к потребителям для повышения производительности.

  4. Высокая доступность: Распределите трафик API между несколькими шлюзами для повышения отказоустойчивости.

  5. Независимая от облачных провайдеров: развертывание API в различных облачных средах и локальной инфраструктуре.

  6. Соответствие нормативным требованиям : поддержание потока данных и API-трафика в пределах определенных географических регионов при сохранении централизованного управления.

Начало работы

Для начала работы с федеративными шлюзами:

  1. Выберите шлюз: выберите подходящий федеративный шлюз в зависимости от вашей инфраструктуры (AWS, Azure, Kong, Envoy или собственный).

  2. Настройка учетных данных: Настройте необходимые учетные данные и разрешения в выбранной вами платформе шлюза.

  3. Регистрация шлюза: добавьте федеративный шлюз в качестве новой среды шлюза на портале администрирования NEOMSA APIM .

  4. Развертывание API: Создайте API на портале издателя и разверните их на вашем федеративном шлюзе.

  5. Мониторинг и управление: Используйте NEOMSA APIM для мониторинга и управления вашими API во всех федеративных шлюзах.

AWS

Развертывание API на WS API Gateway

Начиная с версии 4.5.0, NEOMSA APIM поддерживает развертывание API в AWS API Gateway. NEOMSA APIM поставляется со встроенным коннектором AWS Gateway, и с помощью этого коннектора можно развертывать/удалять API, созданные с помощью NEOMSA APIM , в AWS API Gateway.

Следуйте приведенным ниже инструкциям, чтобы настроить AWS API Gateway в качестве федеративного API-шлюза.

Шаг 1: Настройка учетных данных пользователя в AWS API Gateway

  1. Войдите в свою учетную запись AWS и перейдите на главную страницу консоли. Введите в строку поиска «IAM».

  2. Щелкните на службу IAM. Перейдите в раздел «Пользователи» в подразделе «Управление доступом».

  3. Создайте пользователя IAM в WWS с соответствующими AmazonAPIGatewayAdministrator правами доступа.

  4. Получите ключ доступа и секретный ключ доступа для пользователя IAM, созданного на предыдущем шаге. Выберите в качестве варианта использования «Сторонний сервис».

Обратите внимание, что не рекомендуется вводить корневые учетные данные учетной записи AWS. Вместо этого создайте нового пользователя IAM с необходимыми правами доступа и используйте учетные данные этого пользователя IAM.

Шаг 2: Зарегистрируйте AWS API Gateway в качестве федеративного шлюза в NEOMSA APIM .

  1. Запустите NEOMSA APIM .

  2. Войдите в административный портал.

https://<hostname>:9443/admin

https://localhost:9443/admin

  1. Добавьте новую среду шлюза.

    1. Выберите тип шлюза AWS и укажите соответствующие данные в полях.

    2. Введите ключ доступа и секретный ключ, полученные на шаге 1, в разделе «Настройки шлюза».

    3. Сохраните настройки.

Шаг 3: Настройка стороннего менеджера ключей.

Примечание: Этот шаг необходимо выполнить только в том случае, если вы планируете включить безопасность для AWS API на шаге 4.

  1. Войдите в административный портал.

https://<hostname>:9443/admin

https://localhost:9443/admin

  1. Зарегистрируйте сторонний менеджер ключей, следуя инструкциям в документации NEOMSA APIM . В этом руководстве мы настроим Auth0 в качестве менеджера ключей

Шаг 4: Создание и разработка API

  1. Войдите в портал для издателей.

https://<hostname>:9443/publisher

https://localhost:9443/publisher

  1. Создайте новый REST API и выберите тип шлюза AWS. Укажите действительный URL-адрес конечной точки.

  1. Разработайте API в соответствии с вашими потребностями.

Шаг 5: Настройка функции Lambda и роли выполнения в AWS.

API AWS защищены с помощью политики AWS OAuth2. Политика принимает в качестве параметров Lambda ARN и Lambda Invoke Role ARN. Эта информация будет использоваться для настройки авторизатора Lambda в AWS Gateway. Вы можете реализовать функцию Lambda для проверки токенов от выбранного вами поставщика идентификации (IDP).

Когда AWS API Gateway получает запрос к защищенному API, он пропускает запрос через соответствующую функцию Authorizer, прежде чем направить его непосредственно к бэкенд-API. Для настройки безопасности API выполните следующие действия.

Примечание: Для выполнения описанных ниже шагов потребуется предоставить пользователю IAM, созданному на шаге 1, дополнительные разрешения. Присвойте AWSLambda_FullAccess пользователю необходимые разрешения и добавьте указанную ниже пользовательскую политику, разрешающую действие sts:AssumeRole.

{

"Version": "2012-10-17",

"Statement": [

{

"Sid": "test",

"Effect": "Allow",

"Action": [

"iam:GetRole",

"iam:PassRole"

],

"Resource": "*"

}

]

}

  1. Настройте функцию Lambda в AWS для проверки токенов, сгенерированных поставщиком идентификации (IDP), настроенным на шаге 3.

  2. В AWS IAM настройте роль выполнения для лямбда-функции.

i. Перейдите в раздел IAM > Роли в консоли AWS и создайте новую роль, указав следующие данные.

Trusted Entity Type : AWS Service

Use Case : Lambda

ii. На этапе «Добавить разрешения» прикрепите AWSLambdaRole разрешение. При желании прикрепите его, AWSLambdaBasicExecutionRole если хотите включить ведение журналов CloudWatch для функции Lambda.

iii. Укажите имя роли и отредактируйте политику доверия, как показано ниже, чтобы разрешить доступ к службе API Gateway.

{

"Version": "2012-10-17",

"Statement": [

{

"Effect": "Allow",

"Principal": {

"Service": [

"lambda.amazonaws.com",

"apigateway.amazonaws.com"

]

},

"Action": "sts:AssumeRole"

}

]

}

Шаг 6: Настройка безопасности для API

  1. В портале API Publisher перейдите в Policies раздел API, созданного на шаге 4, и на вкладку «Политики уровня API».

  2. Прикрепите политику AWS OAuth2.0 к API. Здесь вам потребуется указать ARN функции Lambda и роль выполнения, созданную выше.


Шаг 7: Развертывание и публикация API

  1. Перейдите по ссылке Deployments и разверните API на шлюзе AWS API Gateway, настроенном на шаге 2.

  2. Опубликуйте API на портале для разработчиков.

Шаг 8: Вызовите API

  1. Войдите в портал для разработчиков.

https://<hostname>:9443/devportal

https://localhost:9443/devportal

  1. Создайте приложение и получите токен доступа от модуля управления знаниями (KM), который вы настроили на шаге 3.

  2. Перейдите в раздел "Пробная версия" и вызовите API, используя указанный выше токен доступа.

Примечание: Если при развертывании API не указана политика AWS OAuth2, API будет развернут без каких-либо средств защиты. Политика AWS OAuth2 может применяться как на уровне API, так и на уровне ресурса. Если политики существуют на обоих уровнях, приоритет будет отдаваться политике уровня ресурса.

Примечание: Обратите внимание, что для использования API, развернутых в AWS API Gateway, подписка не требуется.

Примечание: Обратите внимание, что для развертывания в AWS API Gateway поддерживаются только REST API.

Поиск API на WS API Gateway

Начиная с версии 4.6.0, NEOMSA APIM поддерживает федеративное обнаружение API для API, развернутых в AWS API Gateway. Это позволяет обнаруживать API, созданные и управляемые в AWS, и передавать их под централизованное управление NEOMSA APIM .

После обнаружения эти API могут в полной мере использовать возможности плоскости управления NEOMSA APIM , включая:

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

Единое управление – централизованное представление всех API, исключающее ручной импорт и фрагментарные операции.

Возможности портала для разработчиков – предоставляют единый каталог, где разработчики могут находить API, размещенные на AWS, изучать документацию, тестировать конечные точки, подписываться на API и беспрепятственно получать доступ к ключам и токенам.

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

Следуйте приведенным ниже инструкциям, чтобы настроить AWS API Gateway в качестве федеративного API-шлюза.

Шаг 1: Настройка учетных данных пользователя в AWS API Gateway

  1. Войдите в свою учетную запись AWS и перейдите на главную страницу консоли. Введите в строку поиска «IAM».

  2. Щелкните на службу IAM. Перейдите в раздел «Пользователи» в подразделе «Управление доступом» .

  3. Создайте пользователя IAM в WWS с соответствующими AmazonAPIGatewayAdministrator правами доступа.

  4. Получите ключ доступа и секретный ключ доступа для пользователя IAM, созданного на предыдущем шаге. Выберите в качестве варианта использования «Сторонний сервис» .

Примечание

Обратите внимание, что не рекомендуется вводить корневые учетные данные учетной записи AWS. Вместо этого создайте нового пользователя IAM с необходимыми правами доступа и используйте учетные данные этого пользователя IAM. Дополнительную информацию см. в разделе «Рекомендации по управлению ключами доступа AWS» .

Шаг 2: Зарегистрируйте AWS API Gateway в качестве федеративного шлюза в NEOMSA APIM .

  1. Запустите NEOMSA APIM .

  2. Войдите в административный портал.

https://<hostname>:9443/admin

https://localhost:9443/admin

  1. Добавьте новую среду шлюза.

    1. Выберите тип шлюза AWS из выпадающего списка и укажите соответствующие данные в полях.

    2. В зависимости от требований выберите режим работы шлюза: «Только для чтения» или «Чтение и запись».

    3. Введите ключ доступа и секретный ключ, полученные на шаге 1, в разделе «Конфигурация соединителя шлюза».

    4. Укажите интервал планирования для обнаружения API в минутах.

    5. Сохраните настройки.

Важно:

Если вы хотите отключить планирование обнаружения API для настроенной среды шлюза, укажите 0 в качестве интервала планирования.

Шаг 3: Развертывание на портале разработчиков

  1. Войдите в портал издателя. https://<hostname>:9443/publisher

https://localhost:9443/publisher

  1. Перейдите в раздел «API», и там будут перечислены API, обнаруженные через AWS API Gateway.

  2. Нажмите на API, чтобы просмотреть подробную информацию об API.

  3. В левом меню щелкните «Жизненный цикл» и выберите «Опубликовать» , чтобы API был развернут на портале разработчиков.

Шаг 4: Вызовите API

  1. Войдите в портал для разработчиков.

https://<hostname>:9443/devportal

https://localhost:9443/devportal

  1. Создайте приложение и получите токен доступа от модуля управления знаниями (KM), который вы настроили на шаге 3.

  2. Перейдите в раздел "Пробная версия" и вызовите API, используя указанный выше токен доступа.

Azure

Развертывание API на Azure API Gateway

Начиная с версии 4.6.0, NEOMSA APIM поддерживает развертывание API в шлюзах Azure API. NEOMSA APIM поставляется с коннектором для шлюза Azure и позволяет развертывать/удалять API, созданные с помощью NEOMSA APIM , в шлюзах Azure API.

Следуйте приведенным ниже инструкциям, чтобы настроить Azure API Gateway в качестве федеративного API-шлюза в NEOMSA APIM .

Шаг 1: Создайте службу управления API Azure.

  1. Войдите в свою учетную запись Azure и перейдите на главную страницу.

  2. Перейдите в раздел «Подписки» и создайте новую подписку.

  3. Перейдите в раздел «Группы ресурсов» и создайте новую группу ресурсов.

  4. Перейдите на главную страницу, создайте ресурс, найдите «Управление API» в строке поиска служб, выберите службу «Управление API» и создайте службу «Управление API» после выбора подписки.

Шаг 2: Создайте приложение и сгенерируйте учетные данные.

  1. На портале Azure перейдите в раздел «Главная», затем выберите «Microsoft Entra ID» .

  2. Нажмите «Добавить» , затем «Регистрация приложения» .

  3. Создайте приложение.

  4. Перейдите к своему приложению, щелкните раскрывающееся меню «Управление» и выберите «Сертификаты и секреты» .

  5. Нажмите «Новый секретный ключ клиента», затем нажмите «Добавить» .

  6. Сохраните секретное значение в надежном месте.

Примечание

Сохраните секретное значение в надежном месте, так как вы сможете просмотреть его только сразу после создания.

Шаг 3: Зарегистрируйте Azure API Gateway в качестве федеративного шлюза в NEOMSA APIM .

  1. Запустите NEOMSA APIM .

  2. Войдите в административный портал.

https://<hostname>:9443/admin

https://localhost:9443/admin

  1. Добавьте новую среду шлюза.

  2. Выберите тип шлюза Azure и укажите соответствующие данные в полях.

    1. Для развертывания API необходимо установить режим шлюза либо «Только запись», либо «Чтение-запись».

    2. Идентификатор арендатора — перейдите в раздел «Главная», «Идентификатор Microsoft Entra», «Обзор» и найдите идентификатор арендатора.

    3. Идентификатор подписки — перейдите в раздел «Главная», «Подписки» и найдите идентификатор подписки перед вашей подпиской.

    4. Идентификатор клиента — перейдите в раздел Microsoft Entra ID, Управление, Регистрация приложений и найдите идентификатор клиента перед вашим приложением.

    5. Секретный ключ клиента — значение секрета, которое вы сохранили ранее при создании секретного ключа клиента.

    6. Группа ресурсов — перейдите в раздел «Главная», «Группа ресурсов» и найдите название вашей группы ресурсов.

    7. Название службы APIM — перейдите в раздел «Главная», «Все ресурсы» и найдите название вашего ресурса.

    8. Имя хоста APIM — имя хоста, назначаемое API, развернутым в Azure. По умолчанию используется azure-api.net.

  3. Сохраните настройки.

Шаг 4: Создание и разработка API

  1. Войдите в портал для издателей.

https://<hostname>:9443/publisher

https://localhost:9443/publisher

  1. Создайте новый REST API и выберите тип шлюза Azure. Укажите действительный URL-адрес конечной точки.

  1. Разработайте API в соответствии с вашими потребностями.

Шаг 5: Настройка безопасности для API

По умолчанию API развертываются в Azure без каких-либо средств защиты. Однако возможность включения проверки JWT предоставляется по умолчанию. Добавление политики Azure OAuth2 из портала издателя NEOMSA APIM в качестве политики уровня API или уровня операции активирует политику validate-jwt того же типа (уровня операции или уровня API) на стороне Azure API Management. Вам потребуется указать URL-адрес конечной точки конфигурации Open ID, откуда можно получить метаданные конфигурации Open ID (общеизвестный URL-адрес), с помощью которого будут проверяться токены JWT, предоставленные при вызове API.

  1. В портале API Publisher перейдите в Policies раздел API, созданного на шаге 4, и на вкладку «Политики уровня API».

  2. Привяжите политику Azure OAuth2.0 к API. Здесь вам потребуется указать URL-адрес OpenID.

Шаг 6: Развертывание и публикация API

  1. Перейдите к Deployments настроенному на шаге 1 шлюзу Azure API Gateway и разверните в нем API.

  2. Перейдите в раздел «Жизненный цикл» и опубликуйте API на портале разработчиков.

Шаг 7: Вызовите API

  1. Войдите в портал для разработчиков.

https://<hostname>:9443/devportal

https://localhost:9443/devportal

  1. Создайте приложение и получите токен доступа JWT, указав URL-адрес OpenID.

  2. Перейдите в раздел "Пробная версия" и вызовите API, используя указанный выше токен доступа.

Примечание: Если при развертывании API не указана политика Azure OAuth2, API будет развернут без каких-либо средств защиты. Политика Azure OAuth2 может применяться как на уровне API, так и на уровне ресурса.

Примечание: Обратите внимание, что для API, развернутых в Azure API Gateway, подписка не требуется.

Примечание: Обратите внимание, что для развертывания в Azure API Gateway поддерживаются только REST API.

Примечание: Из политик, поддерживаемых Azure, NEOMSA APIM поддерживает enable-jwt (упомянутая выше политика OAuth), set-header, rate-limit и CORS. Они работают так же, как и их аналоги в Azure. Добавление политики Azure в поток в API Azure на портале издателя NEOMSA APIM приведет к ее добавлению в Azure при развертывании.

Поиск API на Azure API Gateway

Начиная с версии 4.6.0, NEOMSA APIM поддерживает федеративное обнаружение API для API, развернутых в Azure API Gateway. Это позволяет обнаруживать API, созданные и управляемые в Azure, и передавать их под централизованное управление NEOMSA APIM .

После обнаружения эти API могут в полной мере использовать возможности плоскости управления NEOMSA APIM , включая:

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

Единое управление – централизованное представление всех API, исключающее ручной импорт и фрагментарные операции.

Возможности портала для разработчиков – предоставляют единый каталог, где разработчики могут находить API, размещенные в Azure, изучать документацию и тестировать конечные точки.

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

Следуйте приведенным ниже инструкциям, чтобы настроить Azure API Gateway в качестве федеративного API-шлюза.

Шаг 1: Создайте службу управления API Azure.

  1. Войдите в свою учетную запись Azure и перейдите на главную страницу.

  2. Перейдите в раздел «Подписки» и создайте новую подписку.

  3. Перейдите в раздел «Группы ресурсов» и создайте новую группу ресурсов.

  4. Перейдите на главную страницу, создайте ресурс, найдите «Управление API» в строке поиска служб, выберите службу «Управление API» и создайте службу «Управление API» после выбора подписки.

Шаг 2: Создайте приложение и сгенерируйте учетные данные.

  1. На портале Azure перейдите в раздел «Главная», затем выберите «Microsoft Entra ID» .

  2. Нажмите «Добавить» , затем «Регистрация приложения» .

  3. Создайте приложение.

  4. Перейдите к своему приложению, щелкните раскрывающееся меню «Управление» и выберите «Сертификаты и секреты» .

  5. Нажмите «Новый секретный ключ клиента» , затем нажмите «Добавить» .

  6. Сохраните секретное значение в надежном месте.

Примечание

Пожалуйста, сохраните секретное значение в надежном месте, так как вы сможете просмотреть его только сразу после создания.

Шаг 3: Зарегистрируйте Azure API Gateway в качестве федеративного шлюза в NEOMSA APIM .

  1. Запустите NEOMSA APIM .

  2. Войдите в административный портал.

https://<hostname>:9443/admin

https://localhost:9443/admin

  1. Добавьте новую среду шлюза.

  2. Выберите тип шлюза Azure и укажите соответствующие данные в полях.

    1. Для развертывания API необходимо установить режим шлюза либо «Только запись», либо «Чтение-запись».

    2. Идентификатор арендатора — перейдите в раздел «Главная», «Идентификатор Microsoft Entra», «Обзор» и найдите идентификатор арендатора.

    3. Идентификатор подписки — перейдите в раздел «Главная», «Подписки» и найдите идентификатор подписки перед вашим идентификатором подписки.

    4. Идентификатор клиента — перейдите в раздел Microsoft Entra ID, Управление, Регистрация приложений и найдите идентификатор клиента перед вашим приложением.

    5. Секретный ключ клиента — значение секрета, которое вы сохранили ранее при создании секретного ключа клиента.

    6. Группа ресурсов — перейдите в раздел «Главная», «Группа ресурсов» и найдите название вашей группы ресурсов.

    7. Название службы APIM — перейдите в раздел «Главная», «Все ресурсы» и найдите название вашего ресурса.

    8. Имя хоста APIM — имя хоста, назначаемое API, развернутым в Azure. По умолчанию используется azure-api.net, но можно настроить пользовательские домены.

  3. Сохраните настройки.

Шаг 4: Опубликовать на портале разработчиков

  1. Войдите в портал издателя.

https://<hostname>:9443/publisher

https://localhost:9443/publisher

  1. Перейдите в раздел «API», и там будут перечислены API, обнаруженные через Azure API Gateway.

  2. Нажмите на API, чтобы просмотреть подробную информацию об API.

  3. В левом меню щелкните «Жизненный цикл» и выберите «Опубликовать» , чтобы API был развернут на портале разработчиков.

Шаг 4: Вызовите API

  1. Войдите в портал для разработчиков.

https://<hostname>:9443/devportal

https://localhost:9443/devportal

  1. Перейдите в раздел "Пробная версия" и вызовите API.

Примечание: В настоящее время NEOMSA APIM не поддерживает ключи подписки для вызова API Azure. Если вам необходимо протестировать API из NEOMSA APIM , отключите эту subscription required опцию на вкладке настроек API в Azure. Если вы включили политику validate-jwt в Azure, вы можете указать токен со стороны NEOMSA APIM на портале тестирования.

Envoy Gateway

Начиная с версии 4.6.0, NEOMSA APIM представляет федеративное обнаружение API для API, развернутых на Envoy Gateway в кластере Kubernetes. NEOMSA APIM включает встроенный коннектор Envoy Gateway и отдельный агент Gateway, который позволяет обнаруживать API, развернутые на Envoy Gateway в кластере.

Пользовательские ресурсы API (CR), созданные и управляемые в Envoy Gateway на Kubernetes, автоматически обнаруживаются и передаются под централизованное управление NEOMSA APIM . Агент Gateway обнаруживает HTTPRoutes, Services, BackendTrafficPolicies и SecurityPolicies применяемые в кластере Kubernetes, и согласовывает их с API в NEOMSA APIM .

Выполните следующие шаги, чтобы настроить Envoy Gateway в кластере Kubernetes в качестве федеративного API-шлюза для обнаружения API.

Шаг 1. Установите Envoy Gateway.

Для установки Envoy Gateway выполните следующую команду:

helm install eg oci://docker.io/envoyproxy/gateway-helm --version v1.5.1 -n envoy-gateway-system --create-namespace

Шаг 2. Установите Nginx.

Для установки Nginx Ingress Controller выполните следующую команду:

helm upgrade --install ingress-nginx ingress-nginx \

--repo https://kubernetes.github.io/ingress-nginx \

--namespace ingress-nginx --create-namespace

Шаг 3. Добавьте EnvoyGateway в качестве внешней среды шлюза.

Выполните следующие действия, чтобы добавить EnvoyGateway в качестве внешней шлюзовой среды:

  1. Откройте браузер и на портале администратора перейдите к просмотру параметров окружения.

  2. Нажмите кнопку «Добавить среду шлюза».

  3. Заполните следующую информацию:

  4. Раздел «Общие сведения» :

    • Имя:EG

    • Отображаемое имя:EG

  5. Раздел «Тип среды шлюза»Envoy Gateway : выберите из выпадающего списка.

  6. Раздел Vhosts : Добавить example.com как host-1

  7. Нажмите «Добавить».

Шаг 5. Установите APIM Common Agent.

Для установки общего агента APIM выполните следующие команды:

helm repo remove agent

helm repo add agent https://github.com/wso2-extensions/apim-gw-connectors/releases/download/apim-k8s-common-gw-connector-1.0.0-beta

helm repo update

helm install apim-apk-agent agent/apim-k8s-common-gw-helm --version 1.0.0-beta -f https://raw.githubusercontent.com/wso2-extensions/apim-gw-connectors/refs/heads/main/samples/helm/APIM-4-6-0/apim-common-agent-values.yaml --debug --wait --timeout 10m0s \

--set controlPlane.serviceURL=https://apim-wso2am-acp-1-service.default.svc.cluster.local:9443/ \

--set controlPlane.eventListeningEndpoints="amqp://admin:admin@apim-wso2am-acp-1-service.default.svc.cluster.local:5672?retries='10'&connectdelay='30'" \

--set controlPlane.certificates.caCertSecretName=kgw-apim-connector-test-cert \

--set dataPlane.k8ResourceEndpoint=https://apk-wso2-kgw-config-ds-service.default.svc.cluster.local:9443/api/configurator/apis/generate-k8s-resources \

--set dataPlane.namespace=default

Шаг 6. Примените пример API к кластеру.

Выполните следующую команду, чтобы применить пример API к кластеру:

kubectl apply -f https://raw.githubusercontent.com/wso2-extensions/apim-gw-connectors/refs/heads/main/samples/helm/APIM-4-6-0/sample-api.yaml

Шаг 7. Проанализируйте обнаруженный API на портале издателя.

Выполните следующие шаги, чтобы просмотреть обнаруженный API:

  1. Откройте браузер и перейдите по адресуhttps://apim.example.local/publisher/

  2. Обнаруженный API вы сможете увидеть в интерфейсе издателя.

Теперь, когда вы нашли свой API:

  1. Опубликуйте API на портале разработчиков : сделайте API доступным для разработчиков, чтобы они могли его найти и использовать.

  2. Подпишитесь на API с помощью приложений : Создайте приложения и подпишитесь на этот API для доступа.

  3. Вызов API : Воспользуйтесь функцией тестирования на портале разработчиков, чтобы проверить работу конечных точек API.

Kong

Поиск API на Kong Gateway в Kubernetes

Начиная с версии 4.6.0, NEOMSA APIM представляет федеративное обнаружение API для API, развернутых на Kong Gateway в кластере Kubernetes. NEOMSA APIM включает встроенный коннектор Kong Gateway и отдельный агент Gateway, который позволяет обнаруживать API, развернутые на Kong Gateway в кластере.

Пользовательские ресурсы API (CR), созданные и управляемые в Kong Gateway на Kubernetes, автоматически обнаруживаются и передаются под централизованное управление NEOMSA APIM . Агент Gateway обнаруживает HTTPRoutes, Services, и, KongPlugins применяемые в кластере Kubernetes, и согласовывает их с API в NEOMSA APIM .

Выполните следующие шаги, чтобы настроить Kong Gateway в кластере Kubernetes в качестве федеративного API-шлюза для обнаружения API.

Предварительные требования

Прежде чем начать, убедитесь, что у вас запущен Kong Gateway в кластере Kubernetes. Выполните следующие шаги:

  • Создайте пространство имен в кластере:

  • kubectl create ns kong

  • Установите CRD-файлы Gateway API в кластере:

  • kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/latest/download/standard-install.yaml -n kong

  • Создайте экземпляр Kong GatewayClass и Gateway ресурс Kong в кластере. Убедитесь, что у вас есть секретный ключ TLS, если вы планируете использовать HTTPS.

Примечание

Для получения более подробной информации см. раздел «Создание шлюза Kong» .

  • Установите Kong Ingress Controller с помощью Helm.

Примечание

Для получения более подробной информации см. Kong Ingress Controller .

  • Установите Nginx Ingress.

  • helm upgrade --install ingress-nginx ingress-nginx --repo https://kubernetes.github.io/ingress-nginx --namespace ingress-nginx --create-namespace

Шаг 1: Зарегистрируйте Kong Gateway в Kubernetes в качестве федеративного шлюза в NEOMSA APIM .

  1. Запустите NEOMSA APIM .

  2. Войдите в административный портал.

  3. Добавьте новую среду шлюза.

    1. Введите имя для среды шлюза. Это имя также будет использоваться агентом шлюза для идентификации среды.

    2. Укажите отображаемое имя и описание для среды шлюза.

    3. В качестве типа среды шлюза выберите Kong Gateway .

    4. Выберите режим шлюза «Только для чтения».

    5. Укажите интервал планирования обнаружения API равным 0 .

    6. В настройках шлюзового коннектора выберите тип развертывания Kubernetes .

    7. Введите данные VHost в соответствии с настройками вашего шлюза. Добавьте хост , HTTP-порт и HTTPS-порт в разделе «Расширенные настройки».

    8. Нажмите кнопку «Добавить» , чтобы добавить шлюз.

  1. Примечание

  2. Если вы используете Kong Gateway локально и пользовательское имя хоста, обязательно добавьте это имя хоста в файл /etc/hosts, чтобы оно корректно разрешалось. Например:

  3. 127.0.0.1 <host>

Шаг 2: Добавьте PEM-сертификат в менеджер ключей резидента.

Kong Gateway в Kubernetes требует сертификаты в формате PEM. Поэтому вам необходимо загрузить PEM-сертификат в Resident Key Manager (или любой другой используемый вами менеджер ключей).

  1. В папке NEOMSA APIM перейдите в соответствующий <APIM-HOME>/repository/resources/security каталог и выполните следующие команды для генерации PEM-сертификата из хранилища ключей по умолчанию:

  2. keytool -exportcert -alias wso2carbon -keystore ./wso2carbon.jks -file km-cert.crt

  3. openssl x509 -inform DER -in km-cert.crt -out km-cert.pem

  4. В административном портале перейдите в раздел «Ключевые менеджеры» и загрузите сгенерированный km-cert.pemPEM-сертификат в систему управления ключами для резидента.

Шаг 3: Настройка агента NEOMSA APIM Kong Gateway

Для установки NEOMSA APIM Common Agent для Kong используйте Helm. При настройке агента обновите следующие параметры в values.yaml-файле:

  1. environmentLabels- Имя, указанное для среды Kong Gateway на шаге 1.3

  2. controlPlane.serviceURL и controlPlane.eventListeningEndpoints- Обновить URL-адреса и порты на основе смещения порта и пространства имен.

  3. controlPlane.username и controlPlane.password- Обновите имя пользователя и пароль на основе учетных данных плоскости управления.

  4. dataPlane.namespace- Пространство имен, в котором работает Kong Gateway.

  5. dataPlane.gatewayClassName- Название GatewayClass экземпляра Kong

  6. dataPlane.GatewayHTTPSPort- Порт HTTPS, настроенный на шаге 1.3

  7. dataPlane.GatewayHTTPPort- HTTP-порт, настроенный на шаге 1.3

  8. agent.gateway- Установить на kong

Шаг 4: Найдите API от Kong Gateway.

  1. Примените указанный ниже набор пользовательских ресурсов (CR) в вашей среде Kubernetes.

    • Service CR – Определяет серверную службу, которая будет обрабатывать запросы API.

    • HTTPRoute CR (ресурсы API) – сопоставляют пути API (например, /pets, /orders) с серверной частью.

    • HTTPRoute CR (OPTIONS) – Обработка предварительных запросов CORS для клиентов, работающих в браузере.

    • ACL KongPlugin – ограничивает доступ для определенных потребителей/приложений.

    • JWT KongPlugin – Обеспечивает проверку токена с помощью Key Manager от NEOMSA APIM .

    • CORS KongPlugin — разрешает междоменные запросы путем настройки разрешенных источников, методов и заголовков.

Примечание

Имя хоста HTTPRoute CR должно совпадать с именем хоста, указанным вами на шаге 1.3.

Примечание

Если вы определите только запросы на изменение (CR) для Service и HTTPRoute, обнаруженный API можно будет вызвать без аутентификации или авторизации. Если вы добавите только плагин KongPlugin для JWT, вам потребуется использовать действительный токен с портала разработчика с активной подпиской на любой API, развернутый на Kong Gateway.

  1. Войдите в портал издателя и просмотрите обнаруженный API.

Шаг 5: Опубликуйте API на портале разработчиков.

  1. Выберите обнаруженный API

  2. Перейдите во вкладку «Жизненный цикл» в левом меню и нажмите кнопку «Опубликовать», чтобы опубликовать API на портале разработчиков.

Шаг 6: Подпишитесь и вызовите API.

  1. Войдите в портал для разработчиков.

  2. Создайте приложение и сгенерируйте ключи для обоих типов сред: производственной и тестовой.

  3. Подпишитесь на API, используя созданное приложение.

  4. В приложении перейдите в раздел «Токены OAuth2» в подразделе «Производственные ключи» . Сгенерируйте и скопируйте токен доступа.

  5. Перейдите в консоль API в разделе « Пробное тестирование» для выбранного API и вставьте скопированный токен в поле «Значение заголовка авторизации» .

  1. Нажмите «Попробовать» , а затем нажмите «Выполнить» , чтобы вызвать API.

Примечание

Чтобы удалить развертывание, созданное для API, удалите соответствующий запрос на изменение сервиса (CR), связанный с этим API, из кластера Kubernetes.

Поиск API на Kong Gateway

NEOMSA APIM поддерживает обнаружение API из Kong Gateway и управление ими через его панель управления. Он поставляется с предустановленным коннектором Kong Gateway, который позволяет обнаруживать API, развернутые в Kong Gateway.

API, опубликованные на портале разработчиков Kong, автоматически обнаруживаются как API в NEOMSA APIM . Кроме того, шлюзовые сервисы, развернутые в Kong Gateway и не связанные ни с одним опубликованным API, также обнаруживаются и отображаются как API на портале издателей.

Выполните следующие шаги, чтобы настроить Kong Gateway в качестве федеративного API-шлюза для обнаружения API.

Шаг 1: Сгенерируйте токен доступа для использования административных сервисов в Kong Gateway.

  1. Войдите в свою учетную запись Kong Connect и перейдите на главную страницу консоли.

  2. Чтобы создать новый персональный токен доступа, откройте страницу Konnect PAT и выберите пункт «Сгенерировать токен».

Примечание

Для получения более подробной информации см. раздел «Начало работы с Kong Gateway» .

Шаг 2: Получите конфигурации шлюза Kong.

  1. Перейдите в раздел «Менеджер шлюзов» и выберите шлюз, который хотите подключить к NEOMSA APIM .

  2. На странице «Обзор» см. раздел «Об этом бессерверном шлюзе» для получения информации о конфигурации, описанной ниже.

    • Имя : Это уникальный идентификатор имени шлюза.

    • URL прокси : Это URL шлюза, который будет использоваться для доступа к API. Это имя хоста будет использоваться в качестве виртуального хоста при добавлении шлюза в NEOMSA APIM .

    • Admin API : Это URL-адрес Gateway Admin API, который будет использоваться для управления API.

    • ID : Это идентификатор плоскости управления шлюза, который будет использоваться для идентификации шлюза в NEOMSA APIM .

Шаг 3: Зарегистрируйте Kong Gateway в качестве федеративного шлюза в NEOMSA APIM .

  1. Запустите NEOMSA APIM .

  2. Войдите в административный портал.

  3. Добавьте новую среду шлюза.

    1. Введите имя, полученное на шаге 2, в разделе «Конфигурации шлюза», выберите тип шлюза « Kong Gateway» и укажите соответствующие данные в полях.

    2. В зависимости от требований выберите режим работы шлюза: только для чтения или чтение/запись.

    3. Укажите время по расписанию для обнаружения API.

    4. В разделе « Конфигурации соединителя шлюза» выберите тип развертывания «Автономный » .

    5. Введите URL-адрес административной панели , полученный из API административной панели на шаге 2. Здесь URL-адрес должен быть в формате, https://<region>.api.konghq.comуказанном в разделе «Конфигурации коннектора шлюза» . Обратите внимание, что URL-адрес административной панели не должен содержать /v2/control-planes базовый путь (basepath).

    6. Введите идентификатор плоскости управления , полученный из идентификатора , полученного на шаге 2, в разделе « Конфигурации соединителя шлюза» .

    7. Введите токен доступа, полученный на шаге 1, в разделе «Настройки шлюза» .

    8. Введите виртуальный хост, полученный из URL-адреса прокси-сервера , найденного на шаге 2. В этом случае для виртуального хоста укажите только часть URL-адреса прокси-сервера, относящуюся к имени хоста.

    9. Нажмите кнопку «Добавить» , чтобы добавить шлюз.

Шаг 4: Найдите API и опубликуйте его на портале разработчиков.

  1. Войдите в портал для издателей.

  2. Выберите обнаруженный API и нажмите кнопку «Опубликовать» , чтобы опубликовать API на DevPortal.

Шаг 5: Вызовите API

  1. Войдите в портал для разработчиков.

  2. Перейдите в раздел "Пробная версия" и вызовите API.

Примечание: Если вы настроите плагин JWT для сервиса в Kong Gateway, вы сможете вызывать API, используя токен JWT.

Примечание: Если вы настроили плагин ограничения скорости для сервиса в Kong Gateway, вам необходимо добавить аналогичную политику ограничения скорости в административный портал в разделе расширенных политик. Например: если настроенная политика ограничения скорости составляет 10 запросов в минуту, вам необходимо добавить политику ограничения скорости с именем 10PerMin в административный портал.

Примечание: Обратите внимание, что для использования API, развернутых в Kong API Gateway, подписка не требуется.

Настройка пользовательского агента шлюза

NEOMSA APIM позволяет развертывать API на сторонних API-шлюзах. По сути, если поставщик API хочет развернуть свои API на стороннем шлюзе, который не поддерживается NEOMSA APIM по умолчанию, ему необходимо использовать собственный агент шлюза. Для настройки собственного агента шлюза необходимо выполнить следующие действия:

  • Напишите собственный агент шлюза.

  • Разверните пользовательский агент шлюза в API Manager.

  • Зарегистрируйте соответствующий API-шлюз в административном портале, указав необходимые данные.

  • Создавайте и развертывайте API в стороннем API-шлюзе через портал издателя API-M.

Для выполнения настроек следуйте приведенным ниже инструкциям.

Шаг 1 — Создайте пакет агентов шлюза.

Вам необходимо написать собственный пакет Gateway Agent, как описано ниже.

  1. Создайте проект Maven.

При создании проекта Maven вручную вам потребуется выполнить следующие шаги.

1. Определите класс, реализующий GatewayAgentConfiguration интерфейс, отвечающий за управление конфигурациями, связанными с экземпляром шлюза.

1. Определите класс, расширяющий GatewayDeployer интерфейс, который отвечает за создание внешних артефактов шлюза и развертывание API.
  1. Осуществлять GatewayAgentConfiguration.

Ниже перечислены методы, которые GatewayAgentConfiguration-интерфейс использует для выполнения различных связанных операций.

Метод Описание
getImplementation Указывает полное имя класса реализации, соответствующей интерфейсу GatewayDeployer.
getConnectionConfigurations Предоставляет список настроек, которые должны отображаться в административном портале для подключения к API управления стороннего шлюза.
getGatewayFeatureCatalog Предоставляет список функций портала, поддерживаемых шлюзом стороннего разработчика. Отображение пользовательского интерфейса портала будет зависеть от доступности этих функций.
getType Тип агента шлюза. Например, AWS.
getDefaultHostnameTemplate Указывает базовый URL-адрес экземпляра шлюза.
  1. Осуществлять GatewayDeployer.

Ниже перечислены методы, которые GatewayDeployer интерфейс использует для выполнения различных связанных операций.

Метод Описание
инициализация Загружает конфигурации агента шлюза и создает клиентские объекты для взаимодействия с API управления внешнего шлюза.
getType Тип агента шлюза. Например, AWS.
развертывать Разверните API в пользовательском шлюзе.
отменить развертывание Разверните ранее развернутый API в пользовательском шлюзе.
validateApi Выполняет первоначальную проверку перед развертыванием API.
getAPIExecutionURL Предоставляет URL-адрес выполнения API, развернутого в пользовательском шлюзе. URL-адрес шлюза, отображаемый в тестовой версии на портале разработчиков, будет сгенерирован на основе выходных данных этого метода.
transformAPI Преобразует API перед развертыванием на шлюзе.
  1. Создайте проект.

Перейдите в указанную <PROJECT_HOME> директорию и выполните следующую команду.

mvn clean install

Это создаст пользовательский JAR-файл агента шлюза.

Шаг 2 — Разверните пакет на сервере NEOMSA APIM .

  1. Остановите сервер API-M, если он уже запущен.

  2. Скопируйте JAR-файл, сгенерированный в custom.gw.manager целевом каталоге компонента, и добавьте его в этот <API-M Server>/repository/components/dropins/каталог.

  3. Запустите сервер

Шаг 3 — Настройка шлюза с помощью административного портала.

  1. Войдите в административный портал, используя следующий URL-адрес:https://<hostname>:9443/admin

  2. Добавить новый шлюз.

    1. Нажмите «Шлюзы» , а затем « Добавить среду шлюза» .

Шаг 4 — Создание и развертывание API

  1. Войдите в портал для издателей, используя следующий URL-адрес:https://<hostname>:9443/publisher

  2. Создайте новый API. Выберите пользовательский шлюз из списка шлюзов.

  1. Перейдите на вкладку «Развертывания», выберите пользовательскую среду шлюза, зарегистрированную на шаге 3, и разверните API на этот пользовательский шлюз.