Cos'è una chiave API? [chiuso]


109

Vedo questa parola in quasi tutte le applicazioni cross-service in questi giorni.

Cos'è esattamente una chiave API e quali sono i suoi usi?

Inoltre, qual è la differenza tra chiavi API pubbliche e private.

Risposte:


111

Per che cosa viene utilizzata "esattamente" una chiave API dipende molto da chi la emette e per quali servizi viene utilizzata. In generale, tuttavia, una chiave API è il nome dato a una qualche forma di token segreto che viene inviato insieme alle richieste del servizio web (o simili) per identificare l'origine della richiesta. La chiave può essere inclusa in alcuni digest del contenuto della richiesta per verificarne ulteriormente l'origine e per prevenire la manomissione dei valori.

In genere, se è possibile identificare positivamente l'origine di una richiesta, questa agisce come una forma di autenticazione, che può portare al controllo dell'accesso. Ad esempio, puoi limitare l'accesso a determinate azioni API in base a chi esegue la richiesta. Per le aziende che guadagnano dalla vendita di tali servizi, è anche un modo per tracciare chi sta utilizzando la cosa per scopi di fatturazione. Inoltre, bloccando una chiave, è possibile prevenire parzialmente gli abusi in caso di volumi di richieste troppo elevati.

In generale, se si dispone sia di una chiave API pubblica che di una privata, ciò suggerisce che le chiavi sono esse stesse una tradizionale coppia di chiavi pubblica / privata utilizzata in qualche forma di crittografia asimmetrica o firma digitale correlata. Si tratta di tecniche più sicure per identificare positivamente l'origine di una richiesta e, inoltre, per proteggere il contenuto della richiesta dallo snooping (oltre alla manomissione).


12
Ben messo! Tuttavia, nella mia esperienza un po 'limitata, la distinzione pubblico / privato non ha nulla a che fare con la crittografia a chiave pubblica. Le chiavi "pubbliche" che ho visto sono tipicamente "access lite" - in altre parole, una chiave che puoi distribuire per garantire a terzi l'accesso a dati non sensibili, senza cedere le chiavi del regno.
timdev

2
@Rob +1 per la risposta dettagliata @tim +1 per il pensiero successivo!
OrangeRind

@tim - concordato. Penso che l'approccio più comune che ho visto sia avere una chiave digest privata.
Rob il

24

Molto in generale:

Una chiave API ti identifica semplicemente.

Se esiste una distinzione tra pubblico e privato, la chiave pubblica è quella che puoi distribuire agli altri, per consentire loro di ottenere un sottoinsieme di informazioni su di te dall'API. La chiave privata è solo per il tuo uso e fornisce l'accesso a tutti i tuoi dati.


il più delle volte sembrano hash. la mia osservazione è corretta?
OrangeRind

Possono essere generati come vuoi, purché siano unici. Un hash di alcuni dati sembra un modo ragionevole per generarne uno, sì.
Matthew Scharley,

Sì, sembrano hash. Dopotutto, non vuoi che siano facili da indovinare.
timdev

1
Più o meno - la maggior parte delle chiavi API standard di bog vengono generate mediante l'hashing di un valore pseudocasuale ed eseguendo una codifica di testo normale standard sul risultato, ad esempio base16, base64 ecc.
Rob

18

Sembra che molte persone utilizzino le chiavi API come soluzione di sicurezza. La linea di fondo è: non trattare mai le chiavi API come segrete , non lo è. Su https o no, chiunque può leggere la richiesta può vedere la chiave API e può effettuare qualsiasi chiamata desideri. Una chiave API dovrebbe essere un identificatore "utente" in quanto non è una soluzione di sicurezza completa anche se utilizzata con ssl.

La descrizione migliore si trova nel collegamento di Eugene Osovetsky a: Quando si lavora con la maggior parte delle API, perché richiedono due tipi di autenticazione, vale a dire una chiave e un segreto? Oppure controlla http://nordicapis.com/why-api-keys-are-not-enough/


2
Come puoi vedere, questa è una vecchia domanda e potrebbe essere considerata "troppo ampia" (o forse "fuori tema") secondo i moderni standard Stack Overflow. Tali domande tendono ad attrarre risposte supponenti, che di solito vengono sottovalutate e / o eliminate. Stare lontano da tali domande è di solito la migliore linea d'azione. Puoi dare un'occhiata al Centro assistenza per ulteriori informazioni.
Dev-iL

10

Una chiave API è un valore univoco assegnato a un utente di questo servizio quando viene accettato come utente del servizio.

Il servizio conserva tutte le chiavi emesse e le controlla ad ogni richiesta.

Esaminando la chiave fornita su richiesta, un servizio verifica se è una chiave valida per decidere se concedere o meno l'accesso a un utente.


e per quanto riguarda quello pubblico e quello privato?
OrangeRind

1
Le chiavi pubbliche e private provengono dal dominio della crittografia e hanno qualcosa a che fare con la crittografia asimmetrica. Non ho mai sentito questi termini usati nel senso di chiavi API.

2

Le chiavi API sono solo un modo per autenticare gli utenti dei servizi web.


1

Pensala in questo modo, la "chiave API pubblica" è simile a un nome utente che il tuo database utilizza come accesso a un server di verifica. La "Chiave API privata" sarebbe quindi simile alla password. Dal sito / database che utilizza questo metodo, la sicurezza viene mantenuta sul server di terze parti / di verifica al fine di autenticare la richiesta di pubblicazione o modifica del sito / database.

La stringa API è solo l'URL del login per il tuo sito / database per contattare il server di verifica.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.