Вы просматриваете документацию 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 — это открытый протокол, который, в двух словах, обменивает учетные данные (например, имя пользователя и пароль) на токены доступа. Токены доступа — это длинные случайные строки, которые можно передавать по конвейеру сообщений, даже от приложения к приложению, без ущерба для исходных учетных данных. Токены доступа часто имеют короткий срок действия, поэтому постоянно генерируются новые.