2009-09-21 6 views
72

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

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

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

ответ

70

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

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

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

+10

Хорошо! Тем не менее, в моем ограниченном опыте, публичное/частное различие не имеет ничего общего с криптованием открытого ключа. «Открытые» ключи, которые я видел, обычно являются «доступными» - другими словами, ключ, который вы можете распространять, чтобы предоставить третьим лицам доступ к нечувствительным данным, не отбрасывая ключи от королевства. – timdev

+0

@Rob +1 для подробного ответа @tim +1 для aferthought! – OrangeRind

+0

@tim - согласился. Я думаю, что более распространенный подход, который я видел, - иметь личный ключ дайджест. – Rob

6

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

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

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

+0

так, что о государственном и частном один? – OrangeRind

+1

Открытые и закрытые ключи поступают из области шифрования и имеют какое-то отношение к асимметричному шифрованию. Я никогда не слышал, чтобы эти термины использовались в смысле ключей API. – 2009-09-21 06:20:15

13

Очень вообще говоря:

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

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

+0

большую часть времени они выглядят как хеши. верно ли мое наблюдение? – OrangeRind

+0

Может быть создан, как вы хотите, до тех пор, пока они уникальны. Хэш некоторых данных кажется разумным способом генерировать один, да. –

+0

Да, они похожи на хеши. В конце концов, вы не хотите, чтобы их было легко угадать. – timdev

2

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

0

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

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

2

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

Лучше описание Евгения Osovetsky ссылкой: When working with most APIs, why do they require two types of authentication, namely a key and a secret? Или проверить http://nordicapis.com/why-api-keys-are-not-enough/

+2

Как вы можете видеть, это старый вопрос и, вероятно, может считаться «слишком широким» (или, возможно, «вне темы») в соответствии с современными стандартами стека переполнения. Такие вопросы, как правило, привлекают упрямые ответы, которые обычно сокращаются и/или удаляются. Пребывание от таких вопросов - это, как правило, лучший способ действий. Вы можете посмотреть [помощь/по теме] для получения дополнительной информации. –

Смежные вопросы