Il mio obiettivo è quello di proteggere la mia API stateless e consentire solo ai clienti proprietari (SPA) registrati di consumare le mie risorse. Non ci saranno clienti di terze parti nel mio scenario.
So che l'autorizzazione Oauth 2 con tipo di concessione implicita è raccomandata per i clienti pubblici (nella mia situazione, una SPA). Ho letto molte cose a riguardo ma non sono riuscito a capire alcuni punti, quindi ti sto chiedendo il tuo aiuto:
-
Pensi che Oauth 2 con tipo di concessione implicita sia il modo migliore per farlo? So che le credenziali della password concedono il tipo non è sicuro per le SPA, perché non possono mantenere la riservatezza di un segreto del cliente. Quindi dovrei andare con Oauth 2 con tipo di concessione implicita?
-
In Oauth 2, posso usare il tipo di concessione implicita con l'approvazione automatica, quindi non è più necessario il consenso degli utenti. Ma come penso alla mia SPA come app di prima parte, non voglio che nessun utente reindirizzi da nessuna parte per accedere e tornare alla pagina SPA.
Pensi sia sicuro e ragionevole abilitare l'autenticazione di base http per la mia API, quindi la mia app di prima parte sarebbe in grado di ottenere le credenziali dell'utente e aggiungerla all'intestazione dell'autorizzazione e inviata al mio server di autorizzazione sul canale SSL / TLS per autenticare e ottenere il token di accesso?
Se non è appropriato, cosa consiglieresti per raggiungere questo obiettivo?
-
Voglio anche che gli utenti non autenticati consumino alcune risorse nella mia SPA; dovrei rendere pubbliche tali risorse per qualsiasi cliente e qualsiasi utente (in realtà non preferisco) o aspettare che SPA esegua l'autenticazione e autorizzi con un utente anonimo fittizio di ottenere un token di accesso con privilegi anonimi per utilizzare risorse API pubbliche.
-
Per un sito web simile a Wikipedia, quanto tempo impiega un token di accesso a scadere?
-
Quando è scaduto, quale metodo dovrei seguire? Non esiste un token di aggiornamento nel tipo di concessione implicita di OAuth 2. Dovrei chiedere agli utenti di inserire nuovamente le loro credenziali (questo non è user-friendly) o memorizzare le loro credenziali in una memoria e inviarlo a un server di autorizzazione in silenzio per ottenere un nuovo token di accesso?