Con quale frequenza dovrei controllare i token di accesso se sto utilizzando OAuth solo per accedere alla mia app?

1

Dichiarazione di non responsabilità: Sto facendo questa domanda riguardo a un progetto scolastico. Lo scopo del progetto è l'apprendimento pratico e la simulazione di un progetto di sviluppo software reale. Sono pienamente consapevole del fatto che non capisco bene cosa sto facendo; e non sto mettendo nessuno a rischio nel caso di progettazione di un sistema molto imperfetto.

Sto cercando di utilizzare OAuth per consentire agli utenti di accedere a un'app Web utilizzando i loro account Google. In pratica, tutti gli utenti con un account @ company.name.here devono avere gli stessi permessi. Tutto ciò che devo fare con i loro account Google è di usarli come prova del fatto che stanno effettivamente lavorando in Nome azienda qui.

L'applicazione avrà principalmente bisogno di questa autenticazione, per fare un sacco di operazioni CRUD.

Ora, ecco cosa voglio sapere: quanto spesso dovrei controllare i miei token di accesso? Ogni volta che l'utente fa un'operazione CRUD? Devo anche controllarli ogni pochi minuti? Qualcosa di completamente diverso?

O sto pensando a tutto questo e ho bisogno di capire meglio OAuth?

    
posta donut 17.05.2017 - 18:34
fonte

1 risposta

0

OAuth è l'acronimo di Open Authorization. Lo stai usando per l'autenticazione.

Il seguente articolo illustra le differenze tra autorizzazione e autenticazione:

OAuth 2.0 is not an authentication protocol.

Fondamentalmente, quando utilizzi OAuth per l'autenticazione, all'app web viene concessa l'autorizzazione per accedere all'identità dell'utente.

Da questo Flusso laterale del server (anche questo ):

Per prima cosa, devi aver precedentemente registrato la tua app Web con Google.

Quando l'utente visita il tuo sito web, se non ti conosce (non hai effettuato l'accesso al tuo server web), il tuo server web può chiedere al servizio OAuth di Google la loro identità. Se è la prima volta che l'utente esegue questa operazione, Google interagirà con l'utente per autorizzare la tua app Web. Supponendo che l'utente sia d'accordo, Google ti fornisce un token OAuth che usi per vedere la loro identità.

Dopo averlo fatto, devi registrarli nel tuo server web; questo viene fatto dando all'utente un cookie del browser che li identifica. Il tuo server web trattiene quel cookie per la durata della sessione con l'utente. Quel cookie rappresenta il loro accesso con la tua app Web e, come cookie, ti verrà restituito dal browser in ogni interazione successiva che fanno con il tuo server web (come le richieste CRUD).

Ogni pagina web o interazione del tuo server web con l'utente dovrebbe coinvolgere il tuo server web controllando i cookie per assicurarti che siano autenticati (ovvero connesso al tuo web server). (Se il web server non riceve un cookie dal browser, o non riconosce il cookie, allora dovrebbe reindirizzare l'utente alla sua pagina di accesso.)

Se l'utente vuole disconnettersi dalla propria applicazione, si rimuove il cookie dalla memoria del proprio server Web: si disassocia tale cookie con la sua identità. (Dovresti anche rimuovere il cookie dal browser dell'utente.)

Quindi, in questo scenario, usi il token OAuth solo una volta per ottenere la loro identità (ad es. indirizzo email) e utilizzalo per registrarli sul tuo server. Successivamente, stai utilizzando il tuo meccanismo di accesso. È possibile invecchiare i log-in, ad esempio, registrarli dopo un'ora di inattività.

In realtà non sai che l'utente lavora in quella società, ma credo che tu abbia la certezza che l'utente ha (avuto) accesso / controllo all'indirizzo email che google ti dà per loro (almeno nel momento in cui registrato con Google Plus).

Idealmente, dovresti chiedere all'utente una scelta nei servizi OAuth, come Google Plus, Windows Live, Facebook, Twitter, ... Tutti i servizi funzionano più o meno lo stesso, solo con punti finali diversi per il server OAuth . Google fornisce una libreria per invocare le richieste di endpoint OAuth, ma non è necessaria una libreria per farlo in quanto è piuttosto semplice da eseguire direttamente.

Inoltre, quando si fornisce all'utente un cookie di accesso, è necessario utilizzare https e seguire le altre informazioni di sicurezza nel collegamento del flusso sul lato server.

    
risposta data 17.05.2017 - 19:24
fonte

Leggi altre domande sui tag