Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Как получить ключ API
В следующем примере объясняется, как получить ключ API, который можно использовать для проверки вызовов API к целевой службе, проксируемой через адаптер Apigee для Envoy.
1. Войдите в Apigee.
- Откройте пользовательский интерфейс Apigee в браузере.
- В пользовательском интерфейсе выберите ту же организацию, которую вы использовали для настройки адаптера Apigee для Envoy.
2. Создайте разработчика
Вы можете использовать существующего разработчика для тестирования или создать нового следующим образом:
- Выберите «Опубликовать» > «Разработчики» в боковом меню навигации.
- Нажмите + Разработчик.
- Заполните диалоговое окно, чтобы создать нового разработчика. Вы можете использовать любое имя/адрес электронной почты разработчика по вашему желанию.
3. Создайте продукт API
Следуйте примеру создания продукта, приведенному ниже. См. также О конфигурации продукта API .
- Выберите «Опубликовать» > «Продукты API» в боковом меню навигации.
- Нажмите + Продукт API .
- Заполните страницу сведений о продукте следующим образом. Не нажимайте «Сохранить» , пока не получите соответствующее указание.
- В разделе «Цели удаленной службы Apigee» нажмите «Добавить цель удаленной службы Apigee» .
- В диалоговом окне «Цель удаленной службы Apigee» добавьте следующие значения:
Атрибут Ценить Описание Имя цели Введите имя целевой службы. Например: httpbin.org
Целевая конечная точка, на которой находится прокси-сервер Envoy. API-прокси remote-service
Прокси remote-service
, который был предоставлен в Apigee во время установки адаптера Envoy.Путь Введите / resource_path
, чтобы он соответствовал определенному пути. Например:/httpbin
.Путь запроса для сопоставления в целевой конечной точке. Вызовы прокси-сервера API по этому пути будут соответствовать этому продукту API. Публичное или частное облако Edge: на следующем снимке экрана показаны правильно настроенные параметры диалогового окна для цели
httpbin.org
, подходящая конфигурация для публичного или частного облака Apigee Edge. - Нажмите Сохранить .
Поле | Ценить |
---|---|
Имя | httpbin-product |
Отображаемое имя | httpbin product |
Среда | your_environment Установите для этого параметра среду, которую вы использовали при подготовке адаптера Apigee для Envoy с помощью |
Доступ | Private |
Квота | 5 запросов каждые 1 минуту См. также Общие сведения о квотах . |
4. Создайте приложение для разработчика
- Выберите «Опубликовать» > «Приложения» в боковом меню навигации.
- Нажмите + Приложение .
- Заполните страницу приложения разработчика следующим образом. Не сохраняйте данные до тех пор, пока не будет получено соответствующее указание.
- Затем добавьте в приложение два продукта:
- Сначала в разделе «Учетные данные» нажмите + Добавить продукт и выберите только что настроенный продукт: httpbin-product .
- Затем добавьте продукт удаленного обслуживания . Этот продукт был создан автоматически при подготовке Apigee.
- Нажмите Создать .
- В разделе «Учетные данные» нажмите «Показать» рядом с ключом .
- Скопируйте значение ключа потребителя. Это значение представляет собой ключ API , который вы будете использовать для вызовов API службы
httpbin
.
Имя | httpbin-app |
Отображаемое имя | httpbin app |
Разработчик | Выберите разработчика, которого вы создали ранее, или любого разработчика из списка. |
О продуктах API
Продукты API — это основная точка управления удаленной службой Apigee. Когда вы создаете продукт API и привязываете его к целевой службе, вы создаете политику, которая будет применяться к любым запросам, которые вы настраиваете для обработки Envoy адаптером Apigee.
Определение продукта API
Когда вы определяете продукт API в Apigee, вы можете установить ряд параметров, которые будут использоваться для оценки запросов:
- Цель
- Путь запроса
- Квота
- Области действия OAuth
Цели удаленного обслуживания
Определение продукта API будет применяться к запросу, если запрос соответствует как целевой привязке (например, httpbin.org
), так и пути запроса (например, /httpbin
). Список потенциальных целей хранится в качестве атрибута Продукта API.
По умолчанию Apigee Remote Service сверяет специальный заголовок :authority (host)
Envoy со своим списком целей; однако его можно настроить на использование других заголовков.
Путь к ресурсу API
Введенный путь соответствует следующим правилам:
- Одиночная косая черта (
/
) сама по себе соответствует любому пути. -
*
действителен в любом месте и соответствует внутри сегмента (между косыми чертами). -
**
действителен в конце и соответствует всему, что находится в конце строки.
Квота
Квота определяет количество сообщений-запросов, которые приложению разрешено отправлять в API в течение часа, дня, недели или месяца. Когда приложение достигает предела квоты, последующие вызовы API отклоняются.
Варианты использования квотКвоты позволяют вам установить количество запросов, которые клиент может сделать к службе за определенный промежуток времени. Квоты часто используются для обеспечения соблюдения деловых контрактов или соглашений об уровне обслуживания с разработчиками и партнерами, а не для оперативного управления трафиком. Например, квота может использоваться для ограничения трафика для бесплатной услуги, обеспечивая при этом полный доступ платящим клиентам.
Квота определяется в продукте API.Параметры квоты настраиваются в продуктах API. Например, когда вы создаете продукт API, вы можете дополнительно установить разрешенный предел квоты, единицу времени и интервал.
Поскольку ключи API сопоставляются с Продуктами API, каждый раз при проверке ключа API соответствующий счетчик квоты может уменьшаться (если квота определена в связанном Продукте).
В отличие от среды выполнения Apigee, квоты, введенные в определение продукта, автоматически применяются удаленной службой Apigee. Если запрос авторизован, он будет засчитан в разрешенную квоту.
Где сохраняются квотыКвоты поддерживаются и проверяются локально процессом Remote Service и асинхронно поддерживаются с помощью Apigee Runtime. Это означает, что квоты не точны и, вероятно, будут превышены, если у вас есть более одной удаленной службы, поддерживающей квоту. Если соединение с Apigee Runtime прерывается, локальная квота будет действовать как отдельная квота до тех пор, пока она не сможет повторно подключиться к Apigee Runtime.
Области OAuth
Если вы используете токены JWT, вы можете ограничить их подмножествами разрешенных областей OAuth. Области действия, назначенные вашему выданному токену JWT, будут проверены на соответствие областям продукта API.
О приложениях для разработчиков
После настройки продуктов API вы создадите приложение, связанное с разработчиком. Приложение предоставляет клиенту доступ к связанным продуктам API с помощью ключа API или токена JWT.
Использование аутентификации на основе JWT
Вы можете использовать токен JWT для выполнения аутентифицированных вызовов прокси-сервера API вместо использования ключа API. В этом разделе объясняется, как использовать команду apigee-remote-service-cli token
для создания, проверки и ротации токенов JWT.
Обзор
Проверка и аутентификация JWT осуществляется Envoy с помощьюфильтра аутентификации JWT .
После аутентификации фильтр Envoy ext-authz
отправляет заголовки запроса и JWT в apigee-remote-service-envoy
. Он сопоставляет api_product_list
и scope
JWT с продуктами Apigee API, чтобы авторизовать его в отношении цели запроса.
Создание токенов Apigee JWT
Токены Apigee JWT можно создать с помощью CLI:
apigee-remote-service-cli token create -c config.yaml --id $KEY --secret $SECRET
Или с помощью стандартной конечной точки токена OAuth. Пример завитка:
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 в заголовке авторизации. Пример:
curl localhost:8080/httpbin/headers -i -H "Authorization:Bearer $TOKEN"
Ошибка токена JWT
Отказ посланника
Если Envoy отклоняет токен, вы можете увидеть сообщение следующего вида:
Jwks remote fetch is failed
Если это так, убедитесь, что ваша конфигурация Envoy содержит действительный URI в разделе remote_jwks
, что он доступен для Envoy и что вы правильно установили сертификаты при установке прокси-сервера Apigee. Вы должны иметь возможность напрямую вызывать URI с помощью вызова GET и получать действительный ответ JSON.
Пример:
curl https://myorg-eval-test.apigee.net/remote-service/certs
Другие сообщения от Envoy могут выглядеть так:
- «Аудитория в JWT не допускается»
- «Издатель Jwt не настроен»
Это требования вашей конфигурации Envoy, которые вам, возможно, придется изменить.
Проверка токена
Вы можете использовать CLI для проверки вашего токена. Пример
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-уровень | Допустимые уровни: отладка, информация, предупреждение, ошибка. | Регулирует уровень ведения журнала. По умолчанию: информация |
-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:
Апиджи-аналитика
Apigee Remote Service for Envoy отправляет статистику запросов в Apigee для аналитической обработки. Apigee сообщает об этих запросах под соответствующим названием продукта API.
Информацию об аналитике Apigee см. в разделе Обзор сервисов аналитики .