Вы просматриваете документацию 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» на целевой странице, чтобы отобразить список прокси API.
- Нажмите + Прокси .
- На странице «Создать прокси» выберите «Обратный прокси» (наиболее распространенный) .
- На странице «Сведения о прокси» настройте прокси следующим образом:
В этой области сделай это Имя прокси Введите: helloworld_apikey
Базовый путь проекта Измените на:
/helloapikey
Базовый путь проекта — это часть URL-адреса, используемого для запросов к прокси-серверу API.
Примечание . Рекомендации Apigee по управлению версиями API см. в электронной книге «Версии в дизайне веб-API: недостающее звено» .
Существующий API Введите:
http://mocktarget.apigee.net
.Это определяет целевой URL-адрес, который Apigee Edge вызывает при запросе к прокси-серверу API.
Описание Введите: hello world protected by API key
- Нажмите Далее .
- На странице «Общие политики» в разделе «Безопасность: авторизация» выберите «Ключ API» и нажмите «Далее» . Это добавит две политики к вашему прокси-серверу API.
- На странице «Виртуальные хосты» выберите «По умолчанию» и «Безопасно» , а затем нажмите «Далее» . Выбор значения по умолчанию позволяет вам вызывать API с помощью
http://
. Выбор безопасного позволяет вам вызывать ваш API с помощьюhttps://
. - На странице «Сводка» убедитесь, что выбрана среда тестового развертывания, а затем нажмите «Создать и развернуть» .
- Вы увидите подтверждение того, что ваш новый прокси-сервер API и продукт API были успешно созданы и что прокси-сервер API был развернут в вашей тестовой среде.
- Нажмите «Редактировать прокси» , чтобы отобразить страницу «Обзор» прокси-сервера API.
Посмотреть правила
- В редакторе прокси API перейдите на вкладку «Разработка» . Вы увидите, что в поток запросов прокси API были добавлены две политики:
- Проверка ключа API: проверяет вызов API, чтобы убедиться в наличии действующего ключа API (отправляется как параметр запроса).
- Удалить параметр запроса apikey: политика AssignMessage, которая удаляет ключ API после его проверки, чтобы он не передавался и не раскрывался без необходимости.
Щелкните значок политики «Проверить ключ API» в представлении потока и просмотрите XML-конфигурацию политики в нижнем представлении кода. Элемент
<APIKey>
сообщает политике, где ей следует искать ключ API при выполнении вызова. По умолчанию он ищет ключ в качестве параметра запроса, называемогоapikey
в HTTP-запросе:<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:
- Выберите «Опубликовать» > «Продукты API» .
- Нажмите +Продукт API .
Введите сведения о продукте для вашего продукта API.
Поле Описание Имя Внутреннее имя продукта API. Не указывайте в имени специальные символы.
Примечание. Вы не сможете редактировать имя после создания продукта API. Например,helloworld_apikey-Product
.Отображаемое имя Отображаемое имя продукта API. Отображаемое имя используется в пользовательском интерфейсе, и вы можете редактировать его в любое время. Если не указано, будет использоваться значение Name. Это поле заполняется автоматически с использованием значения «Имя»; вы можете редактировать или удалять его содержимое. Отображаемое имя может включать специальные символы. Например, helloworld_apikey-Product
.Описание Описание продукта API. Например, Test product for tutorial
.Среда Среды, к которым продукт API разрешит доступ. Например, test
илиprod
.Доступ Выберите Публичный . Автоматически утверждать запросы на доступ Включите автоматическое одобрение запросов ключей для этого продукта API из любого приложения. Квота Игнорировать для этого урока. Разрешенные области действия OAuth Игнорировать для этого урока. - В разделе ресурсов API выберите только что созданный прокси-сервер API. Например,
helloworld_apikey
. - Нажмите Добавить .
- В разделе «Пути» добавьте путь «/».
- Нажмите Добавить .
- Нажмите Сохранить .
На следующих шагах вы получите необходимый ключ API.
Добавьте разработчика и приложение в свою организацию
Далее мы собираемся смоделировать рабочий процесс регистрации разработчика для использования ваших API. У разработчика будет одно или несколько приложений, которые вызывают ваши API, и каждое приложение получает уникальный ключ API. Это дает вам, поставщику API, более детальный контроль над доступом к вашим API и более детальную отчетность о трафике API по приложениям.
Создать разработчика
Чтобы создать разработчика:
- В меню выберите «Опубликовать» > «Разработчики» .
- Нажмите + Разработчик .
Введите следующее в окне «Новый разработчик»:
В этой области входить Имя Keyser
Фамилия Soze
Имя пользователя keyser
Электронная почта keyser@example.com
- Нажмите Создать .
Зарегистрировать приложение
Чтобы зарегистрировать приложение разработчика:
- Выберите «Опубликовать» > «Приложения» .
- Нажмите + Приложение .
Введите следующее в окне «Новое приложение» :
В этой области сделай это пИмя и отображаемое имя Введите: 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. Выберите «Разработка» > «Прокси-серверы API» > helloworld_apikey и перейдите в представление «Разработка» .
Выберите политику «Проверить ключ 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
- Проверить политику APIKey
- Политика назначения сообщений
Если заглянуть немного глубже, защита API с помощью ключей API — это только часть истории. Зачастую защита API включает в себя дополнительную безопасность, например OAuth.
OAuth — это открытый протокол, который, в двух словах, обменивает учетные данные (например, имя пользователя и пароль) на токены доступа. Токены доступа — это длинные случайные строки, которые можно передавать по конвейеру сообщений, даже от приложения к приложению, без ущерба для исходных учетных данных. Токены доступа часто имеют короткий срок действия, поэтому постоянно генерируются новые.
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2024-11-12 UTC.