Che cosa fare per il mio schema di autenticazione dell'API Web?

2

Recentemente ho letto molto sui meccanismi di autenticazione dell'API Web e sono un po 'confuso su come implementare il mio meccanismo di autenticazione dell'API Web, sto pensando di utilizzare l'autenticazione basata su token ma non sono sicuro se è la scelta giusta.

Fondamentalmente la mia API Web gestirà tutte le operazioni necessarie e memorizzerà gli utenti del mio sito web e anche gli utenti dell'API.

Voglio supportare il seguente

  • L'utente può registrarsi sul mio sito Web e app utilizzando il proprio account G + o Facebook o un nome utente già creato dal mio servizio, così come accedere al proprio account social.
  • Se l'utente non ha effettuato l'accesso, non sarà in grado di pubblicare gli articoli ma sarà in grado di vedere gli articoli, pensa qualcosa come Craiglist.
  • Supponiamo che l'utente sia uno sviluppatore e che desideri pubblicare gli articoli tramite il software che hanno creato anziché passare attraverso il sito Web e pubblicare un articolo alla volta, come posso consentire questo?

Ora le mie domande sono:

  1. Quando un utente si registra sul mio sito web, devo creare una (chiave pubblica / chiave segreta) per il successivo token di accesso, quindi posso usare la mia API dal sito web mentre l'utente controlla se ha accesso a determinati endpoint?

  2. Devo assegnare una (chiave pubblica / chiave segreta) per il mio sito Web in modo da poter utilizzare l'API quando l'utente non ha effettuato l'accesso?

  3. Come sopra per le app mobili

  4. Come faccio a consentire agli utenti di (iscriversi / accedere) usando G + o Facebook ?, se accedono utilizzando qualsiasi social network come posso proteggere la mia API?

posta General Electric 26.02.2016 - 02:49
fonte

1 risposta

1

Devi separare l'autenticazione e .

Autenticazione garantisce che il tuo sito web sappia che l'utente entrante è effettivamente quello che hai nel file . In altre parole, una volta che qualcuno si è registrato come bob nella tua applicazione, tutti chiedono di essere controllati tramite l'autenticazione.

Come dici, hai diverse opzioni per l'autenticazione. È possibile scaricare il processo su alcuni provider di identità ben noti (Google, Facebook, LinkedIn, ...). Si assicureranno che qualcuno che arriva come Barack Obama sia stato autenticato come tale dalla loro parte.

È importante capire che non sai se Barack Obama di accesso al tuo sito è effettivamente il presidente degli Stati Uniti. L'unica cosa che sai che qualcuno registrato come tale su, diciamo, Google e la stessa persona sarà costantemente autenticato come tale tramite Google.

Devi cercare la gestione delle identità sui vari siti che desideri utilizzare ( Google per esempio ) . Le parole chiave sono OAuth e OpenID .

Ora che sai che Barack Obama sta arrivando, devi dargli accesso ad alcune cose e non ad altri. Questa è la parte autorizzazione . Dipende completamente dalla tua applicazione.

Ciò che in pratica codificherete è che un ID specifico (che in definitiva è l'accesso dell'utente) può vedere alcuni contenuti. OWASP ti aiuterà a renderlo sicuro.

Un consiglio: se riesci completamente a scaricare l'autenticazione a qualcuno di cui ti fidi e di cui i tuoi utenti si fideranno (in genere i grandi giocatori sopra), fallo. Non essere Adobe .

    
risposta data 28.02.2016 - 11:27
fonte

Leggi altre domande sui tag