Design per l'utilizzo della tua API

3

Quindi ho intenzione di utilizzare le API per la mia app host. Ma le API sono costruite in modo tale da richiedere una sessionkey per ogni richiesta.

Quindi la mia domanda è: come potrei dogfood la mia API? Perché, a quanto pare, sto pensando di creare una chiave "speciale" per la mia app host (perché non ha senso richiedere una chiave per mio uso personale), ma chiunque ispeziona le intestazioni della richiesta potrebbe trovare questo chiave e letteralmente usarlo e bypassare la richiesta delle proprie chiavi.

Forse esiste una best practice per dogfooding della nostra API senza una chiave speciale o in qualche modo per differenziare se la richiesta proviene dall'app host o dal pubblico.

Non ho potuto usare l'IP per differenziare troppo, perché il pubblico poteva usare lo stesso server per chiamare le API. Questo è solo il modo in cui è, ed è uno dei limiti da tenere a mente.

    
posta resting 29.04.2013 - 10:59
fonte

3 risposte

13

Stai per imparare una lezione importante sulle API. Ogni volta che ti trovi a dire " ho bisogno di qualcosa di speciale che non dovrebbe essere disponibile per gli altri ", ti sbagli. Questo è specialmente true quando si tratta di identificazione e autenticazione.

    
risposta data 29.04.2013 - 12:52
fonte
1

Non dovrebbe esserci alcuna chiave speciale su un server API live, come hai anche detto che l'intestazione può essere analizzata e la chiave può essere trovata. Quello che abbiamo fatto in una situazione simile era la creazione di una sandbox o di un ambiente separato (l'URL separato era noto solo al team di sviluppo) e quindi la modifica del codice per accettare una chiave speciale.

Penso che il punto della domanda sia saltare l'autenticazione . Per evitare di sniffare comunicazioni sicure è la soluzione che comunica tramite HTTPS

    
risposta data 29.04.2013 - 11:32
fonte
0

Hai una scelta, nessuna speciale.

  • sistema di autenticazione basato sulla sessione

  • auth con ogni richiesta

Per la sostituzione di username e password,
puoi scegliere o combinare alcuni metodi come:

  • auth con credenziali digitali come i tasti SSH

  • un'autorizzazione unica come token RSA, SMS, PHONE CALL o alcuni metodi biologici

risposta data 24.07.2013 - 07:49
fonte

Leggi altre domande sui tag