Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
Что вы узнаете
Из этого руководства вы узнаете:
- Создайте прокси-сервер API, для которого требуется ключ API.
- Добавьте продукт API.
- Добавьте разработчика и зарегистрируйте приложение.
- Вызовите API с помощью ключа API.
Важно защитить API от несанкционированного доступа. Один из способов сделать это – использовать ключи API (их также называют открытыми ключами, ключами потребителя или ключами приложений).
Когда приложение отправляет запрос к вашему API, оно должно предоставить действительный ключ. Во время выполнения правило "Проверка ключа API" проверяет, что предоставленный ключ API:
- Допустимое
- не был отозван;
- Соответствует ключу API для продукта API, который предоставляет доступ к запрошенным ресурсам.
Если ключ действителен, запрос разрешается. Если ключ недействителен, запрос не будет авторизован.
В этом руководстве вы создадите прокси-сервер API, для доступа к которому требуется действительный ключ API.
Что вам понадобится
- Аккаунт Apigee Edge. Если у вас его ещё нет, вы можете зарегистрироваться, следуя инструкциям в статье Как создать аккаунт Apigee Edge.
- Веб-браузер для выполнения вызова API.
- (Для дополнительного задания, не обязательно) cURL, установленный на вашем компьютере, чтобы выполнять вызовы API из командной строки.
Как создать прокси-сервер API
- Перейдите на страницу https://apigee.com/edge и войдите в аккаунт.
Чтобы перейти к нужной организации, нажмите на свое имя пользователя в верхней части боковой панели навигации, чтобы открыть меню профиля пользователя, а затем выберите организацию из списка.
-
На целевой странице нажмите API Proxies (Прокси API), чтобы открыть список прокси API.
- Нажмите + Прокси.

- На странице Создать прокси-сервер выберите Обратный прокси-сервер (наиболее распространенный).
- На странице Proxy Details (Сведения о прокси-сервере) настройте прокси-сервер следующим образом:
В этом поле выполните следующие действия Название прокси-сервера Введите: helloworld_apikey.Базовый путь к проекту Новый вариант:
/helloapikey.Базовый путь проекта – это часть URL, используемого для отправки запросов к прокси API.
Примечание. Рекомендации Apigee по управлению версиями API можно найти в электронной книге Управление версиями из серии Проектирование веб-API: недостающее звено.
Существующий API Введите:
http://mocktarget.apigee.net.Это целевой URL, который Apigee Edge вызывает при запросе к прокси-серверу API.
Описание Введите: hello world protected by API key. - Нажмите Далее.
- На странице Common Policies (Общие правила) в разделе Security: Authorization (Безопасность: авторизация) выберите API Key (Ключ API) и нажмите Next (Далее). В прокси-сервер API будут добавлены два правила.
- На странице Виртуальные хосты выберите default и secure, а затем нажмите Далее. Если выбрать default, вы сможете вызывать API с помощью
http://. Если выбрать secure, вы сможете вызывать API с помощьюhttps://. - На странице Summary (Сводка) убедитесь, что выбрана test (тестовая) среда развертывания, и нажмите Create and deploy (Создать и развернуть).
- Вы увидите сообщение о том, что новый прокси-сервер API и продукт API успешно созданы, а прокси-сервер API развернут в тестовой среде.
- Нажмите Edit proxy (Изменить прокси), чтобы открыть страницу Overview (Обзор) для прокси-сервера API.
Посмотреть правила
- В редакторе прокси-сервера API нажмите на вкладку Разработка. Вы увидите, что в поток запросов прокси-сервера API добавлены два правила:
- Проверка ключа API. Проверяет вызов API, чтобы убедиться, что действительный ключ API присутствует (отправляется как параметр запроса).
- Удалить параметр запроса apikey. Правило AssignMessage, которое удаляет ключ API после его проверки, чтобы он не передавался и не раскрывался без необходимости.
-
Нажмите на значок правила "Проверить ключ API" в представлении потока и посмотрите XML-конфигурацию правила в представлении кода внизу. Элемент
<APIKey>указывает правилу, где искать ключ API при вызове. По умолчанию ключ ищется в HTTP-запросе в качестве параметра запросаapikey:<APIKey ref="request.queryparam.apikey" />
Название
apikeyможет быть любым свойством, содержащим ключ API.
Попробуйте вызвать API
На этом этапе вы выполните успешный вызов API непосредственно к целевому сервису, а затем неудачный вызов к прокси-серверу API, чтобы посмотреть, как он защищен правилами.
-
Выполнено
В браузере перейдите по следующему адресу: Это целевой сервис, на который настроен API-прокси для пересылки запроса, но пока вы будете обращаться к нему напрямую:
http://mocktarget.apigee.net
Вы должны получить успешный ответ:
Hello, Guest!. -
Сбой
Теперь попробуйте вызвать прокси-сервер API:
http://ORG_NAME-test.apigee.net/helloapikey
заменив
ORG_NAMEназванием организации Edge.Без правила "Проверка ключа API" этот вызов дал бы тот же ответ, что и предыдущий. В этом случае вы получите следующий ответ с ошибкой:
{"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
Это означает, что вы не передали действительный ключ API (в качестве параметра запроса).
На следующих этапах вы добавите продукт API.
Как добавить продукт API
Чтобы добавить продукт API с помощью интерфейса Apigee:
- Выберите Publish (Опубликовать) > API Products (Продукты API).
- Нажмите + Продукт API.
Введите сведения о продукте для продукта API.
Поле Описание Название Внутреннее название продукта API. Не используйте в названии специальные символы.
Примечание. После создания продукта API его название изменить нельзя. Пример:helloworld_apikey-Product.Отображаемое название Отображаемое название продукта API. Отображаемое название используется в интерфейсе и может быть изменено в любое время. Если не указано, будет использоваться значение поля "Название". Это поле заполняется автоматически на основе значения поля "Название". Вы можете изменить или удалить его содержимое. Отображаемое имя может содержать специальные символы. Пример: helloworld_apikey-Product.Описание Описание продукта API. например Test product for tutorial(2-е издание).Среда Среды, к которым будет разрешен доступ с помощью продукта API. Примеры: testилиprod.Доступ Выберите Общедоступные. Как автоматически одобрять запросы на доступ Включить автоматическое одобрение запросов ключей для этого продукта API из любого приложения. Квота Пропустите этот шаг. Разрешенные области действия OAuth Пропустите этот шаг. - В разделе API resources (Ресурсы API) выберите созданный прокси-сервер API. например
helloworld_apikey(2-е издание). - Нажмите Добавить.
- В разделе Пути добавьте путь "/".
- Нажмите Добавить.
- Нажмите Сохранить.
На следующих шагах вы получите необходимый ключ API.
Как добавить разработчика и приложение в организацию
Далее мы смоделируем процесс регистрации разработчика для использования ваших API. У разработчика может быть одно или несколько приложений, которые вызывают ваши API. Каждое приложение получает уникальный ключ API. Это позволяет поставщику API более точно контролировать доступ к своим API и получать более подробные отчеты о трафике API по приложениям.
Как создать аккаунт разработчика
Чтобы создать аккаунт разработчика, выполните следующие действия:
- В меню выберите Опубликовать > Разработчики.
- Нажмите + Разработчик.
В окне "Новый разработчик" введите следующие данные:
В этом поле ВВОД Имя KeyserФамилия SozeИмя пользователя keyserЭлектронная почта keyser@example.com- Нажмите Создать.
Как зарегистрировать приложение
Чтобы зарегистрировать приложение разработчика:
- Выберите Опубликовать > Приложения.
- Нажмите + Приложение.
В окне Новое приложение введите следующие данные:
pВ этом поле выполните следующие действия Название и Отображаемое название Введите: keyser_app.Компания / разработчик Выберите: DeveloperРазработчик Выберите: Keyser Soze (keyser@example.com)URL обратного вызова и Примечания Оставьте поле пустым. - В разделе Учетные данные выберите Никогда в меню Срок действия. Срок действия учетных данных этого приложения не истекает.
- В разделе Товары нажмите Добавить товар.
- Выберите helloworld_apikey-Product.
- Нажмите Добавить.
- Нажмите Создать над разделом Сведения о приложении справа, чтобы сохранить изменения.
Как получить ключ API
Чтобы получить ключ API:
- На странице Приложения (Публикация > Приложения) нажмите keyser_app.
На странице keyser_app нажмите Показать рядом с пунктом Ключ в разделе Учетные данные. В разделе Продукт вы увидите, что ключ связан с helloworld_apikey.
.
- Выберите и скопируйте Ключ. Он понадобится вам на следующем шаге.
Как вызвать API с помощью ключа
Теперь, когда у вас есть ключ API, вы можете использовать его для вызова прокси-сервера API. Введите в веб-браузере следующее: Замените название организации Edge на ORG_NAME, а ключ API – на API_KEY. Убедитесь, что в параметре запроса нет лишних пробелов.
http://ORG_NAME-test.apigee.net/helloapikey?apikey=API_KEY
Теперь при вызове прокси-сервера API вы должны получить следующий ответ:
Hello, Guest!
Поздравляем! Вы создали прокси-сервер API и защитили его, потребовав, чтобы в вызове был указан действительный ключ API.
Обратите внимание, что передавать ключ API в качестве параметра запроса не рекомендуется. Рекомендуем передавать его в HTTP-заголовке.
Рекомендация: передача ключа в HTTP-заголовке
На этом шаге вы измените прокси-сервер, чтобы он искал ключ API в заголовке x-apikey.
- Измените прокси-сервер API. Выберите Develop > API Proxies > helloworld_apikey и перейдите в режим Develop.
-
Выберите правило Verify API Key (Проверить ключ API) и измените XML-код правила, чтобы оно искало ключ в
header, а не вqueryparam:<APIKey ref="request.header.x-apikey"/>
- Сохраните прокси API, чтобы применить изменения.
-
Выполните следующий вызов API с помощью cURL, чтобы передать ключ API в качестве заголовка
x-apikey. Не забудьте заменить название организации.curl -v -H "x-apikey: API_KEY" http://ORG_NAME-test.apigee.net/helloapikey
Обратите внимание, что для полного изменения вам также потребуется настроить правило AssignMessage, чтобы удалить заголовок, а не параметр запроса. Пример:
<Remove>
<Headers>
<Header name="x-apikey"/>
</Headers>
</Remove>
Статьи по теме
Вот несколько тем, которые напрямую связаны с этим руководством:
- Как управлять продуктами API
- Ключи API
- Регистрация разработчиков приложений
- Регистрация приложений и управление ключами API
- VerifyAPIKey policy
- AssignMessage policy
Однако защита API с помощью ключей API – это лишь часть истории. Часто для защиты API используются дополнительные меры безопасности, например OAuth.
OAuth – это открытый протокол, который, если говорить простыми словами, обменивает учетные данные (например, имя пользователя и пароль) на токены доступа. Токены доступа – это длинные случайные строки, которые можно передавать по цепочке сообщений, даже между приложениями, без ущерба для исходных учетных данных. Срок действия токенов доступа обычно короткий, поэтому они постоянно генерируются.