O que é uma chave de API? [fechadas]


109

Vejo essa palavra em quase todos os aplicativos de serviço cruzado atualmente.

O que exatamente é uma chave de API e quais são seus usos?

Além disso, qual é a diferença entre as chaves de API públicas e privadas.

Respostas:


111

Para que "exatamente" uma chave de API é usada, depende muito de quem a emite e para quais serviços ela está sendo usada. Em geral, no entanto, uma chave de API é o nome dado a alguma forma de token secreto que é enviado junto com solicitações de serviço da web (ou semelhantes) para identificar a origem da solicitação. A chave pode ser incluída em algum resumo do conteúdo da solicitação para verificar ainda mais a origem e evitar adulteração dos valores.

Normalmente, se você puder identificar a origem de uma solicitação positivamente, ela atua como uma forma de autenticação, que pode levar ao controle de acesso. Por exemplo, você pode restringir o acesso a certas ações da API com base em quem está executando a solicitação. Para empresas que ganham dinheiro com a venda desses serviços, é também uma forma de rastrear quem está usando o produto para fins de faturamento. Além disso, ao bloquear uma chave, você pode evitar parcialmente o abuso no caso de volumes de solicitação muito altos.

Em geral, se você tiver uma chave de API pública e uma privada, isso sugere que as próprias chaves são um par de chaves pública / privada tradicional usado em alguma forma de criptografia assimétrica ou assinatura digital relacionada. Essas são técnicas mais seguras para identificar positivamente a origem de uma solicitação e, além disso, para proteger o conteúdo da solicitação de espionagem (além de adulteração).


12
Bem colocado! No entanto, em minha experiência um tanto limitada, a distinção público / privado não tem nada a ver com criptografia de chave pública. As chaves "públicas" que vi são normalmente "access light" - em outras palavras, uma chave que você pode distribuir para conceder a terceiros acesso a dados não confidenciais, sem entregar as chaves do reino.
— timdev

2
@Rob +1 para a resposta detalhada @tim +1 para a reflexão posterior!
— OrangeRind

@tim - concordou. Acho que a abordagem mais comum que vi é ter uma chave de resumo privada.
— Rob

24

De maneira muito geral:

Uma chave de API simplesmente identifica você.

Se houver uma distinção público / privado, então a chave pública é aquela que você pode distribuir para outras pessoas, para permitir que elas obtenham algum subconjunto de informações sobre você da API. A chave privada é apenas para seu uso e fornece acesso a todos os seus dados.


na maioria das vezes, eles se parecem com hashes. minha observação está correta?
— OrangeRind

Eles podem ser gerados da maneira que você quiser, desde que sejam exclusivos. Um hash de alguns dados parece uma maneira razoável de gerar um, sim.
— Matthew Scharley,

Sim, eles se parecem com hashes. Afinal, você não quer que sejam fáceis de adivinhar.
— timdev

1
Mais ou menos - a maioria das chaves de API padrão bog são geradas por hash de algum valor pseudo-aleatório e executando alguma codificação de texto simples padrão no resultado, por exemplo, base16, base64 etc.
— Rob

18

Parece que muitas pessoas usam chaves de API como solução de segurança. O ponto principal é: nunca trate as chaves de API como secretas , não é. Seja https ou não, quem ler a solicitação poderá ver a chave da API e fazer a chamada que desejar. Uma chave de API deve ser apenas um identificador de 'usuário', pois não é uma solução de segurança completa, mesmo quando usada com SSL.

A melhor descrição está no link de Eugene Osovetsky para: Ao trabalhar com a maioria das APIs, por que elas exigem dois tipos de autenticação, ou seja, uma chave e um segredo? Ou verifique http://nordicapis.com/why-api-keys-are-not-enough/


2
Como você pode ver, esta é uma questão antiga e provavelmente pode ser considerada "muito ampla" (ou talvez "fora do tópico") de acordo com os padrões modernos do Stack Overflow. Essas perguntas tendem a atrair respostas opinativas, que geralmente são rejeitadas e / ou excluídas. Ficar longe dessas questões é geralmente o melhor curso de ação. Você pode dar uma olhada na Central de Ajuda para mais informações.
— Dev-iL

10

Uma chave de API é um valor exclusivo atribuído a um usuário desse serviço quando ele é aceito como usuário do serviço.

O serviço mantém todas as chaves emitidas e as verifica a cada solicitação.

Observando a chave fornecida na solicitação, um serviço verifica se é uma chave válida para decidir se concede acesso a um usuário ou não.


então o que acontece com o público e o privado?
— OrangeRind,

1
As chaves públicas e privadas vêm do domínio da criptografia e têm algo a ver com a criptografia assimétrica. Nunca ouvi esses termos usados ​​no sentido de chaves de API.

2

As chaves de API são apenas uma forma de autenticar usuários de serviços da web.


1

Pense nisso desta forma, a "Chave de API pública" é semelhante a um nome de usuário que seu banco de dados está usando como um login para um servidor de verificação. A "Chave de API privada" seria então semelhante à senha. Pelo site / banco de dados usando este método, a segurança é mantida no servidor de verificação / terceiros para autenticar a solicitação de postagem ou edição do seu site / banco de dados.

A string da API é apenas o URL do login para seu site / banco de dados entrar em contato com o servidor de verificação.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.