Что такое ключ API?

63

Я вижу это слово почти в каждом приложении перекрестного сервиса в наши дни.

Что такое ключ API и какие его использует?

Кроме того, в чем разница между общедоступными и частными ключами API.

Теги:
security
api-key
terminology

6 ответов

62
Лучший ответ

То, что используется "точно" для ключа API, очень зависит от того, кто его выдает, и от каких служб он используется. Однако, в общем, ключ API - это имя, присвоенное той или иной форме секретного токена, которое передается вместе с запросами веб-службы (или подобных) для идентификации происхождения запроса. Ключ может быть включен в некоторый дайджест содержимого запроса, чтобы дополнительно проверить происхождение и предотвратить подделку значений.

Как правило, если вы можете положительно идентифицировать источник запроса, он действует как форма проверки подлинности, что может привести к контролю доступа. Например, вы можете ограничить доступ к определенным действиям API на основании того, кто выполняет запрос. Для компаний, которые зарабатывают деньги от продажи таких услуг, это также способ отслеживания того, кто использует эту вещь для выставления счетов. Кроме того, блокируя ключ, вы можете частично предотвратить злоупотребление в случае слишком высоких объемов запросов.

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

  • 11
    Хорошо сказано! Однако, по моему немного ограниченному опыту, различие между публичным и частным не имеет ничего общего с криптообеспечением с открытым ключом. «Открытые» ключи, которые я видел, - это, как правило, «access lite» - другими словами, ключ, который вы можете распространять, чтобы предоставить третьим сторонам доступ к нечувствительным данным, не отдавая ключи от королевства.
  • 1
    @Rob +1 для подробного ответа @tim +1 для aferthought!
Показать ещё 1 комментарий
13

В общем говоря:

Ключ API просто идентифицирует вас.

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

  • 0
    Большую часть времени они выглядят как хэши. мои наблюдения верны?
  • 0
    Можно генерировать, как вы хотите, если они уникальны. Да, хэш некоторых данных кажется разумным способом их создания.
Показать ещё 2 комментария
6

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

Служба поддерживает все выданные ключи и проверяет их при каждом запросе.

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

  • 0
    так как насчет публичного и частного?
  • 1
    Открытый и закрытый ключи происходят из области шифрования и имеют отношение к асимметричному шифрованию. Я никогда не слышал, чтобы эти термины использовались в смысле ключей API.
2

Ключи API - это всего лишь один из способов аутентификации пользователей веб-сервисов.

1

Похоже, что многие люди используют ключи API в качестве решения для обеспечения безопасности. В нижней строке: Никогда не обрабатывать ключи API как секретные, это не так. На https или нет, тот, кто может прочитать запрос, может увидеть ключ API и может сделать любой вызов, который они хотят. Ключ API должен быть как идентификатор пользователя, так как он не является полным решением безопасности даже при использовании с ssl.

Лучшее описание в ссылке Евгения Осовецкого: При работе с большинством API-интерфейсов, почему им требуются два типа аутентификации, а именно ключ и секрет? Или отметьте http://nordicapis.com/why-api-keys-are-not-enough/

  • 2
    Как вы можете видеть, это старый вопрос, и он может считаться «слишком широким» (или, возможно, «не по теме») в соответствии с современными стандартами переполнения стека. Такие вопросы, как правило, привлекают взвешенные ответы, которые обычно опускаются и / или удаляются. Держаться подальше от таких вопросов, как правило, лучший курс действий. Вы можете взглянуть на справочный центр для получения дополнительной информации.
0

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню