Come devo accedere a un'API di terze parti che richiede una chiave?

1

Sto accedendo a un'API di terze parti. Richiede una chiave, che è la stessa chiave per tutti i miei utenti. Attualmente, la mia applicazione include quella chiave nel codice lato client e chiama direttamente l'API di terze parti. Così ogni utente può decompilare il mio codice e ottenere la chiave legata alla mia applicazione. (Male, giusto?)

Credo che sia necessario un server tra il client e la terza parte. E il client fa una richiesta al server, che ha la chiave. Il server inoltra la richiesta a terzi e restituisce i risultati al client. È questo l'approccio giusto?

Se questo è l'approccio corretto, dovrei creare il server ed eseguirlo su AWS? O esistono già strumenti di terze parti per questo uso? (Ho visto AWS Gateway, ma sembrava riguardare la creazione di API, non l'accesso.) Come dovrei avere un utente che accede alla terza parte, senza fornire loro la chiave segreta condivisa da tutti gli utenti?

    
posta Evorlor 11.07.2017 - 16:16
fonte

2 risposte

4

Servizi popolari come Google utilizzano le chiavi API. Questa chiave deve essere protetta poiché questo è ciò che viene utilizzato per tracciare il tuo utilizzo rispetto al servizio. Molti servizi sono basati sul volume e verranno addebitati in modo appropriato in base all'utilizzo.

In genere, questi servizi sono accessibili tramite un componente lato server.

Cliente - > Il tuo servizio (chiave API) - > Chiama il servizio esterno

Quindi il client non sa nulla della chiave.

    
risposta data 11.07.2017 - 16:31
fonte
1

Bene, si. Se non vuoi che i tuoi utenti siano in grado di utilizzare l'API di terze parti alle proprie condizioni, devi eseguire il proxy dell'accesso a tale API e introdurre un diverso tipo di autenticazione tra i tuoi utenti e il proxy.

È sempre una buona idea riflettere se è effettivamente ciò che devi fare, però. Perché ti importa se i tuoi utenti utilizzano l'API dall'interno o dall'app? Hai firmato un accordo che lascerai solo ai tuoi utenti registrati quella chiave? (Questo potrebbe essere necessario per dimostrare gli sforzi in buona fede per la conformità.) Sei preoccupato che gli utenti possano abusare dell'API? Questo può essere un motivo valido, ma ovviamente devi aggiungere rate-limiting al tuo proxy anziché passare semplicemente tutte le richieste autenticate.

    
risposta data 11.07.2017 - 16:22
fonte

Leggi altre domande sui tag