Руководство по эксплуатации

Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee
X.info

Как получить ключ API

В следующем примере объясняется, как получить ключ API, который можно использовать для проверки вызовов API к целевому сервису, проксируемому через Apigee Adapter for Envoy.

1. Войдите в Apigee.

  1. Откройте пользовательский интерфейс Apigee в браузере.
  2. После входа в пользовательский интерфейс выберите ту же организацию, которую вы использовали для настройки адаптера Apigee для Envoy.

2. Создайте разработчика.

Для тестирования можно использовать уже существующего разработчика или создать нового следующим образом:

  1. В боковом навигационном меню выберите «Опубликовать» > «Разработчики» .
  2. Click + Developer.
  3. Заполните диалоговое окно, чтобы создать нового разработчика. Вы можете использовать любое имя/адрес электронной почты разработчика по своему усмотрению.

3. Создайте API-продукт

Следуйте приведенному ниже примеру создания продукта. См. также раздел «О настройке продукта API» .

  1. В боковом навигационном меню выберите «Публикация» > «Продукты API» .
  2. Click + API Product .
  3. Заполните страницу с подробными сведениями о товаре следующим образом. Не нажимайте кнопку «Сохранить», пока вам не будет дано соответствующее указание.
  4. Поле Ценить
    Имя httpbin-product
    Отображаемое имя httpbin product
    Среда your_environment

    Установите значение, соответствующее среде, которую вы использовали при настройке Apigee Adapter for Envoy с помощьюapigee-remote-service-cli .

    Доступ Private
    Квота 5 запросов каждые 1 минуту

    См. также раздел «Понимание квот» .

  5. В разделе « Цели удаленной службы Apigee» нажмите «Добавить цель удаленной службы Apigee» .
  6. В диалоговом окне «Целевой объект удаленной службы Apigee» добавьте следующие значения:
    Атрибут Ценить Описание
    Целевое имя Введите название целевого сервиса. Например: httpbin.org Целевая конечная точка, перед которой работает прокси-сервер Envoy.
    API-прокси remote-service remote-service сервер, который был настроен в Apigee во время установки адаптера Envoy.
    Путь Введите / resource_path для сопоставления с конкретным путем. Например: /httpbin . Путь запроса для сопоставления с целевой конечной точкой. Вызовы API-прокси по этому пути будут соответствовать данному API-продукту.

    На следующем снимке экрана показаны правильно настроенные параметры диалога для целевого объекта httpbin.org , что является подходящей конфигурацией для публичного или частного облака Apigee Edge.

  7. Нажмите « Сохранить ».

4. Создайте приложение для разработчиков.

  1. В боковом навигационном меню выберите «Публикация» > «Приложения» .
  2. Click + App .
  3. Заполните страницу приложения разработчика следующим образом. Не сохраняйте изменения, пока не получите соответствующее указание.
  4. Имя httpbin-app
    Отображаемое имя httpbin app
    Разработчик Выберите разработчика, которого вы создали ранее, или выберите любого разработчика из списка.
  5. Далее добавьте в приложение два товара:
    1. Сначала в разделе «Учетные данные» нажмите «+ Добавить продукт» и выберите только что настроенный продукт: httpbin-product .
    2. Затем добавьте продукт удаленного обслуживания . Этот продукт был создан автоматически при настройке Apigee.
  6. Нажмите «Создать» .
  7. В разделе «Учетные данные» нажмите «Показать» рядом с пунктом «Ключ» .
  8. Copy the value of the Consumer Key. This value is the API key that you will use to make API calls to the httpbin service.

О продуктах API

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

Определение продукта API

При определении API-продукта в Apigee можно задать ряд параметров, которые будут использоваться для обработки запросов:

  • Цель
  • Путь запроса
  • Квота
  • Области действия OAuth

Цели удаленного обслуживания

Определение API-продукта будет применяться к запросу, если запрос соответствует как целевой привязке (например, httpbin.org ), так и пути запроса (например /httpbin ). Список потенциальных целей хранится в качестве атрибута API-продукта.

По умолчанию служба Apigee Remote Service проверяет специальный заголовок Envoy :authority (host) на соответствие списку целевых объектов; однако ее можно настроить на использование других заголовков.

Путь к ресурсу API

Введенный путь соответствует следующим правилам:

  • Одиночный слэш ( / ) сам по себе соответствует любому пути.
  • * допустимо в любом месте и соответствует сегменту (между косыми чертами).
  • ** это допустимый символ в конце строки, соответствующий любому содержимому до конца строки.

Квота

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

Варианты использования квот

Квоты позволяют ограничить количество запросов, которые клиент может отправить к сервису за определенный промежуток времени. Квоты часто используются для обеспечения соблюдения бизнес-контрактов или соглашений об уровне обслуживания (SLA) с разработчиками и партнерами, а не для оперативного управления трафиком. Например, квота может использоваться для ограничения трафика для бесплатного сервиса, предоставляя при этом полный доступ платным клиентам.

Квота определяется в API-продукте.

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

Поскольку ключи API сопоставляются с продуктами API, при каждой проверке ключа API соответствующий счетчик квоты может быть уменьшен (если квота определена в соответствующем продукте).

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

Там, где сохраняются квоты

Квоты поддерживаются и проверяются локально процессом удаленной службы и асинхронно с Apigee Runtime. Это означает, что квоты не являются точными и могут быть превышены, если у вас более одной удаленной службы, поддерживающей квоту. Если соединение с Apigee Runtime прерывается, локальная квота будет продолжать действовать как автономная квота до тех пор, пока не будет восстановлено соединение с Apigee Runtime.

Области действия OAuth

Если вы используете токены JWT, вы можете ограничить их использование подмножествами разрешенных областей действия OAuth. Области действия, назначенные вашему выданному токену JWT, будут проверяться на соответствие областям действия API-продукта.

О приложениях для разработчиков

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

Использование аутентификации на основе JWT.

Вместо ключа API можно использовать JWT-токен для выполнения аутентифицированных вызовов API-прокси. В этом разделе объясняется, как использовать команду apigee-remote-service-cli token для создания, проверки и ротации JWT-токенов.

Обзор

Проверка и аутентификация JWT осуществляется Envoy с помощью собственногофильтра аутентификации JWT .

После аутентификации фильтр Envoy ext-authz отправляет заголовки запроса и JWT в apigee-remote-service-envoy . Он сопоставляет утверждения api_product_list и scope из JWT с продуктами API Apigee, чтобы авторизовать его для целевого объекта запроса.

Создание JWT-токенов Apigee

JWT-токены Apigee можно создавать с помощью интерфейса командной строки:

apigee-remote-service-cli token create -c config.yaml --id $KEY --secret $SECRET

Или используя стандартную конечную точку для ввода токена OAuth. Пример использования Curl:

curl https://org-env.apigee.net/remote-service/token -d '{"client_id":"myclientid","client_secret":"myclientsecret","grant_type":"client_credentials"}' -H "Content-type: application/json"

Использование токена JWT

Получив токен, вы просто передаете его в Envoy в заголовке Authorization. Пример:

curl localhost:8080/httpbin/headers -i -H "Authorization:Bearer $TOKEN"

Сбой токена JWT

Отказ посланника

Если Envoy отклонит токен, вы можете увидеть сообщение следующего вида:

Jwks remote fetch is failed

В таком случае убедитесь, что в разделе remote_jwks вашей конфигурации Envoy указан действительный URI, что он доступен для Envoy и что вы правильно настроили сертификаты при установке прокси-сервера Apigee. Вы должны иметь возможность напрямую вызвать URI с помощью GET-запроса и получить действительный JSON-ответ.

Пример:

curl https://myorg-eval-test.apigee.net/remote-service/certs

Другие сообщения от Envoy могут выглядеть следующим образом:

  • «Присутствие зрителей в Jwt запрещено»
  • "Эмитент JWT не настроен"

Эти параметры заданы в настройках Envoy, и вам, возможно, потребуется их изменить.

Проверить токен

Вы можете использовать интерфейс командной строки для проверки своего токена. Пример.

apigee-remote-service-cli -c config.yaml token inspect -f path/to/file

или

apigee-remote-service-cli -c config.yaml token inspect <<< $TOKEN

Отладка

См. раздел "Недействительный ключ API" .

Ведение журнала

Вы можете настроить уровень логирования для службы $REMOTE_SERVICE_HOME/apigee-remote-service-envoy. Все сообщения в журнал отправляются в stderr.

Элемент Необходимый Описание
-l, --log-level Допустимые уровни: debug, info, warn, error. Регулирует уровень ведения журнала. По умолчанию: info.
-j, --json-log Выводит лог-файлы в формате JSON.

Envoy обеспечивает ведение журналов. Для получения дополнительной информации см. следующие ссылки на документацию Envoy:

Использование сетевого прокси

HTTP-прокси можно установить, используя переменные среды HTTP_PROXY и HTTPS_PROXY в окружении исполняемого файла apigee-remote-service-envoy. При их использовании также можно использовать переменную среды NO_PROXY для исключения определенных хостов из рассылки через прокси.

HTTP_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port]
HTTPS_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port]
NO_PROXY=127.0.0.1,localhost

Помните, что прокси-сервер должен быть доступен из apigee-remote-service-envoy.

О метриках и аналитике

Доступна конечная точка для сбора метрик Prometheus по адресу :5001/metrics . Вы можете настроить этот номер порта. См. файл конфигурации .

Аналитика Envoy

По следующим ссылкам вы найдете информацию о получении аналитических данных прокси-сервера Envoy:

Аналитика Istio

По следующим ссылкам вы найдете информацию о получении аналитических данных прокси-сервера Envoy:

Аналитика Apigee

Apigee Remote Service for Envoy отправляет статистику запросов в Apigee для аналитической обработки. Apigee сообщает об этих запросах под соответствующим именем продукта API.

Для получения информации об аналитике Apigee см. раздел «Обзор аналитических сервисов» .