Progettazione dell'API per l'app web multi-tenant: come identificare gli utenti da un altro sistema?

0

Ho un'applicazione web multi-tenant che consente agli utenti autenticati di apportare modifiche alla loro istanza dell'applicazione - commentando come esempio.

Mi piacerebbe creare un'API che permetta a un utente di qualsiasi app web esterna di essere in grado di eseguire un'azione nella mia app e di registrare l'azione come eseguita dall'utente connesso nell'app esterna. Ad esempio "Wanda Bloggs ha commentato 3 minuti fa"

È possibile farlo mantenendo l'API il più generica possibile? (non legato a una specifica app esterna). Cosa dovrei guardare per essere in grado di implementarlo?

Un'altra opzione è quella di contrassegnare semplicemente tutte le attività dell'API, ad esempio "l'utente API ha commentato 3 minuti fa", ma in modo troppo anonimo e lontano dall'ideale.

È stata apprezzata qualsiasi guida o indicazione nella giusta direzione!

    
posta user3895395 08.06.2018 - 15:42
fonte

1 risposta

0

In pratica si ottiene un "token dell'API Web" per ogni utente nell'app e lo si memorizza in modo sicuro e localmente nell'app. Quindi lo usi per autenticare la richiesta (nel modo più semplice, la invii insieme alla tua richiesta normale).

È necessario utilizzare una sola funzione per connettersi all'app Web, autenticarsi e ottenere un token; oppure puoi visualizzarlo in una pagina Web (dopo l'autenticazione ovviamente) tramite un QRcode e l'app esegue la scansione del QRcode.

Per renderlo un po 'più sicuro, puoi inviare il tuo attuale timestamp Unix e un hash crittograficamente sicuro di quel timestamp più il token. Il server può quindi verificare che il timestamp sia aggiornato e che l'hash corrisponda.

Questo potrebbe essere aggiunto come intestazione aggiuntiva nella richiesta HTTPS.

    
risposta data 08.06.2018 - 15:58
fonte