Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Рефакторинг и перенаправление для защиты API путем запроса ключей API .
Разработчик создает приложение , которое отправляет запросы к вашим API для доступа к вашим серверным службам. Чтобы контролировать доступ к вашим API, вы можете потребовать от разработчика передавать ключ API при каждом запросе. Если ключ отсутствует или недействителен, запрос не будет выполнен.
Публикация — это процесс предоставления ваших API-интерфейсов разработчикам приложений для использования. API публикации можно в общих чертах определить по следующим задачам:
- Создайте продукты API в Apigee Edge, объединяющие ваши API.
- Зарегистрируйте разработчиков приложений в Edge. Только зарегистрированный разработчик приложения может зарегистрировать приложение.
- Разработчики регистрируют приложения в Edge для доступа к продуктам API. В ответ разработчик получает API-ключ. Теперь, когда у разработчика есть ключ API, он может отправлять запросы к вашим API.
Дополнительные сведения см. в разделе Введение в публикацию .
В следующей таблице определены некоторые термины, используемые для регистрации приложений и генерации ключей:
Срок | Определение |
---|---|
API-продукт | Пакет прокси-серверов API в сочетании с планом обслуживания, который устанавливает ограничения на доступ к этим API. Продукты API — это центральный механизм, который Apigee Edge использует для авторизации и контроля доступа к вашим API. |
Разработчик | Потребитель API. Разработчики пишут приложения, которые отправляют запросы к вашим API. |
Приложение | Клиентское приложение, которое разработчик регистрирует для доступа к продукту API. При регистрации приложения в продукте API генерируется ключ API для доступа к API в этом продукте. |
API-ключ | Строка с информацией об авторизации, которую клиентское приложение использует для доступа к ресурсам, предоставляемым продуктом API. Ключ API генерируется, когда зарегистрированное приложение связано с продуктом API. |
Предварительные требования для этого урока
В этом руководстве предполагается, что вы прошли первое руководство по созданию прокси-сервера API для доступа к API погоды Yahoo. Если вы еще не прошли первое руководство, см. раздел Защита API путем запроса ключей API .
Шаг 1. Создайте продукт API
- В пользовательском интерфейсе управления нажмите вкладку «Публикация» , затем «Продукты» .
- Нажмите (+) Товар .
- Введите или выберите следующее в полях диалогового окна «Добавить продукт»:
Поле Ценить Имя Бесплатный API-продукт Отображаемое имя Бесплатный API-продукт Описание Бесплатный API-продукт Среда тест Доступ Только внутренний Ключевой тип утверждения Автоматический
(ключ API автоматически утверждается после его создания)Квота 10 запросов в час
(ограничивает количество запросов до 10 в час)Разрешенные области действия OAuth оставить пустым Заполненный диалог должен выглядеть следующим образом:
- В разделе «Ресурсы» выберите:
- API-прокси : Weatherapikey
- Редакция : 1
- Путь к ресурсу : /forecastrss**
Путь к ресурсу указывает URI ресурсов, к которым продукт разрешает доступ приложению. В этом примере приложение может получить доступ к ресурсу /forecastrss на прокси-сервере Weatherapikey только через этот продукт API. Попытка использовать этот продукт API для доступа к любому другому ресурсу на прокси-сервере WeatherAPIProxy или на любом другом прокси-сервере запрещена.
Для пути к ресурсу разрешены подстановочные знаки. Подстановочный знак «/**» указывает, что включены все суб-URI, что означает ресурс в форме /forecastrss/foo/bar . Подстановочный знак «/» указывает, что включены только URI на один уровень ниже. Дополнительные сведения см. в разделе Создание продуктов API .
Обратите внимание, что раскрывающийся список «Путь к ресурсу» показывает все условные потоки, определенные для указанного прокси-сервера API. Условный поток прокси-сервера API определяет логику или этапы обработки, связанные с путем к ресурсу. Продукт API контролирует доступ к этим путям ресурсов.
- Нажмите «Импортировать ресурс» . Будет добавлен путь к ресурсу, а прокси-сервер API Weatherapikey автоматически будет добавлен в раздел «Прокси-серверы API для продукта» .
- Нажмите Сохранить . Ваш новый продукт указан на странице «Продукты».
Узнать больше:
Шаг 2. Зарегистрируйте разработчика
Чтобы сгенерировать ключ API, вы регистрируете приложение и связываете его с продуктом API. Однако вы не сможете зарегистрировать приложение, не зарегистрировав сначала разработчика приложения.
- В пользовательском интерфейсе управления нажмите вкладку «Опубликовать» , затем «Разработчики» .
- Нажмите (+) Разработчик .
- В диалоговом окне «Новый разработчик» введите следующие значения:
- Имя : Джейн
- Фамилия : Учебник
- Адрес электронной почты : janetutorial@example.com.
- Имя пользователя : jtutorial
- Нажмите Сохранить . Новый разработчик появится в списке разработчиков на странице «Разработчики».
Узнать больше:
Шаг 3. Зарегистрируйте приложение.
Теперь, когда у вас есть продукт API и разработчик, вы можете зарегистрировать приложение с помощью продукта API. При регистрации приложения генерируется ключ API для продуктов API, связанных с приложением. Затем вы можете передать ключ разработчикам приложений, чтобы они могли получить доступ к функциям продуктов API из приложения.
- В пользовательском интерфейсе платформы API нажмите вкладку «Публикация» , затем «Приложения разработчика» .
- Нажмите (+) Приложение для разработчиков .
- В диалоговом окне «Добавить приложение» введите следующие значения:
- Отображаемое имя : Приложение ключа API погоды.
- Разработчик : Jane Tutorial (janetutorial@example.com)
- URL обратного вызова : оставьте пустым.
- Свяжите приложение с продуктом:
- В разделе «Продукты» нажмите + Товар .
- Выберите Бесплатный продукт API .
- Нажмите на значок галочки , чтобы принять изменения.
- Нажмите «Сохранить». Новое приложение появится в списке приложений на странице «Приложения для разработчиков».
- Выберите Приложение Weather API Key в списке приложений. Откроется страница сведений о приложении.
- Поскольку при создании продукта API вы выбрали Тип утверждения ключа: Автоматически , ключ API утверждается автоматически, и вы можете просмотреть его немедленно. (Если вы выбрали Тип утверждения: Вручную , вам нужно будет нажать «Утвердить» в столбце «Действия» для продукта «Бесплатный API», чтобы утвердить ключ API.)
- В разделе «Продукты» рядом с записью « Продукт бесплатного API» нажмите « Показать» в столбцах «Ключ потребителя» и «Секрет потребителя» , чтобы отобразить сгенерированные ключи.
Consumer Key — это другое название ключа API, и это единственный ключ, который нужен приложению для доступа к ресурсу прогноза через прокси-сервер API. Секрет потребителя необходим (вместе с ключом потребителя) для защиты API через OAuth 2.0. См., например, OAuth 2.0: Настройка нового прокси-сервера API .
Узнать больше:
Шаг 4. Используйте ключ API в запросе
Чтобы убедиться, что политика VerifyAPIKey работает правильно, необходимо протестировать ее, выполнив вызов прокси-сервера API с действительным ключом API. Вы можете запросить прокси-сервер API в браузере, на странице трассировки прокси-сервера API, из консоли Apigee или с помощью cURL. URL-адрес для запроса имеет форму:
http://{org-name}-test.apigee.net/v1/weatherapikey/forecastrss?w=12797282&apikey=IEYRtW2cb7A5Gs54A1wKElECBL65GVls
Замените название организации Apigee на {org-name} и правильное значение apikey .
Найдите в ответе следующее содержание:
<rss xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0"> <channel> <title>Yahoo! Weather - Palo Alto, CA</title> <link>http://us.rd.yahoo.com/dailynews/rss/weather/Palo_Alto__CA/*http://weather.yahoo.com/forecast/USCA1093_f.html</link> <description>Yahoo! Weather for Palo Alto, CA</description> <language>en-us</language>
Если вы опустите ключ API в запросе или укажете неверное значение ключа, вы получите ответ об ошибке в виде:
{"fault":{"faultstring":"Failed to resolve API Key variable null","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
Шаг 5: Куда дальше?
Теперь, когда вы сделали запрос к API, используя параметр запроса для передачи ключа API, измените API, чтобы он передавал ключ в виде заголовка.
Продолжайте защищать API, требуя ключи API .