Почему некоторым провайдерам API требуется ключ API? - PullRequest
10 голосов
/ 27 января 2009

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

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

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

Ответы [ 7 ]

6 голосов
/ 27 января 2009

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

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

4 голосов
/ 27 января 2009

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

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

1 голос
/ 27 января 2009

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

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

0 голосов
/ 18 октября 2012

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

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

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

0 голосов
/ 27 января 2009

Я думаю, что Gracenote делает то же самое для cddb. Я забыл детали, но кое-что вспомнил о каком-то токене.

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

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

0 голосов
/ 27 января 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...