Почему некоторым поставщикам API требуется ключ API?

Несколько API-интерфейсов веб-служб вы подписываетесь на ключ API. Например, веб-службам UPS требуется ключ, который включен в звонки на их службу - помимо имени пользователя и пароля.

Что это за ключ, используемый провайдером? Возможно, ИБП является единственным, требующим как ключ API, так и имя пользователя/пароль?

Одна из идей заключается в том, что они используют его для ограничения или измерения использования API, но мне кажется, что настройка в профиле пользователей может легко сделать то же самое, особенно потому, что вам обычно нужно получить учетную запись w/username и пароль, чтобы получить API в первую очередь.

Ответ 1

Существует два преобладающих варианта использования. Первое - измерение, отслеживание и ограничение использования API. Если кто-то создает службу, которая позволяет третьим лицам получить к ней доступ, поставщик услуг может захотеть контролировать (или, по крайней мере, знать), у кого есть доступ, чтобы они могли попытаться предотвратить такие атаки, как атаки на отказ в обслуживании. На стороне измерения и дорожки может быть получена интересная информация, например, знание того, какие приложения пользуются популярностью для доступа к службе или какие функции используют люди больше всего.

Другой вариант использования связан с безопасностью и аутентификацией. Для поставщика услуг неразумно иметь сторонние приложения и услуги, чтобы пользователи отказались от своего имени пользователя и пароля для основной службы. Это огромная экспозиция. Вот почему многие службы стандартизируют такие протоколы, как OAuth, который предоставляет делегированный доступ через авторизацию пользователю данные. Хотя он не является надежным, определенно предпочтительнее распространять учетные данные пользователей неизвестным и ненадежным сторонам.

Ответ 2

В большинстве случаев он должен следить за тем, как разработчики используют web-api. Если они каким-то образом не согласны с вашим использованием api, это дает им возможность закрыть его/вы, не повредив других пользователей. И статистика для пользователя/приложения всегда ценна.

Я использовал flickr api - в этой ситуации ключ принадлежит вам, но данные для входа могут быть теми, кто использует ваше приложение, поэтому ключ api - это единственный способ разграничения между приложениями.

Ответ 3

Обычно он использовался для получения статистики о том, сколько приложений выполняет запросы к API. Я думаю, что запрашивать имя пользователя/пароль с помощью API-ключа в некоторых случаях является неоднозначным, но это способ его реализации, поэтому мы не можем с ним что-то делать.

Они запрашивают ключ API, потому что у вас может быть несколько API под одной учетной записью - если у вас есть несколько сайтов, которые используют тот же API.

Ответ 4

Они могут использовать его для обозначения той версии API, которую вы пытаетесь использовать. Возможно, в версии 1.0 есть метод, который выполняет POST на www.UPS.com/search, а другой - в версии 2.0 с тем же адресом, но принимает другой набор параметров или даже возвращает данные в другом формате/стиль. Ваша программа была построена на V1.0 и ожидает определенный контракт API. Они хотят иметь возможность создавать V2.0, не мешая их продуктам клиентов.

Это просто догадка, но это звучит хорошо для меня.

Ответ 5

Я думаю, что Gracenote делает аналогичную вещь для cddb. Я забываю детали, но я кое-что помню о некоторых токенах.

(У них/были действительно драконовские правила об использовании их сервиса тоже.)

Симон напомнил мне, что такое грацентот. Gracenote и Fedex и другие веб-сервисы имеют множество разработчиков, которые пишут приложения для программного обеспечения. Таким образом, разработчики получают токен, чтобы помещать их в свои приложения, но у конечных пользователей есть собственное имя пользователя и пароль. Это позволяет службам следить за злоупотреблениями программами и т.д. Это, вероятно, основная причина. (например, браузер или веб-сайт, сообщающий веб-серверу, который/что это)

Ответ 6

Первоначально Blogger потребовал, чтобы вы подали заявку на ключ API (a la Карты Google) и использовали его для ограничения доступа к API. Поскольку Blogger превратился в Metaweblog, требования к API стали менее важными, и Blogger больше не требует от вас подачи заявки на получение ключа. Как отмечают другие, его все еще можно использовать для отслеживания.

Ответ 7

В нашей ситуации наши клиенты хотят:

  • Отслеживание/аналитика - определение того, кто что делает и какие продукты. Поскольку множество пользователей - это настольные приложения, просто просмотр ссылок не всегда достаточно.
  • Разрешения - к каким ресурсам должен иметь доступ пользователь? Как пользователь может создавать приложения, имеющие доступ к указанным ресурсам?
  • Лицензирование/правовое обеспечение того, что пользователи прочитали и приняли информацию о ToU/лицензировании.
  • Безопасность - прохождение вокруг имен пользователей/паролей - очень плохая идея.