7

Sto facendo uno studio approfondito su Spring OAuth e ho trovato alcune informazioni contrastanti. Qualcuno può chiarire?In che modo/oauth/authorize e/oauth/token interagiscono in Spring OAuth?

In particolare, this tutorial indica che l'endpoint /oauth/token gestisce nome utente e password prima di concedere un token di aggiornamento all'app client. Al contrario, lo Spring OAuth Developer Guide menziona gli endpoint /oauth/authorize e /oauth/token, ma non ottiene informazioni specifiche su come funzionano.

Condivide la /oauth/authorize do il 100% del controllo username/password/nOtherFactors e poi segnale il /oauth/token endpoint per inviare un token di aggiornamento per il cliente, in modo che il client quindi invia il token di aggiornamento al /oauth/token endpoint?

Oppure è tutto gestito dall'endpoint /oauth/token?

Il seguente diagramma di flusso illustra ciò che Vivian van Zyl afferma nel suo tutorial:

Ma questo secondo diagramma di flusso sembra avere più senso:

Quale diagramma di flusso è corretta? O la verità è alquanto diversa rispetto ad altri diagrammi di flusso? La relazione tra /oauth/authorize e /oauth/token è diversa per i diversi tipi di sovvenzione? Come?

risposta

5

In base alle specifiche OAuth 2.0, gli endpoint di autorizzazione e token hanno scopi diversi.

L'endpoint di autorizzazione è il punto in cui il proprietario della risorsa (utente) accede e concede l'autorizzazione al client (ad es. L'applicazione Web in esecuzione nel browser o un'app in esecuzione su un dispositivo mobile). Questo viene in genere utilizzato in scenari in cui l'agente utente del proprietario della risorsa (ad esempio: browser) viene reindirizzato al server di identità (server di autorizzazione) per l'autenticazione. L'agente utente del proprietario della risorsa avrà accesso diretto al token di accesso.

L'endpoint token è il punto in cui il client (ad esempio: API lato server o app mobile) chiama per scambiare il codice di autorizzazione, l'ID cliente e il segreto client per un token di accesso. In questo scenario, l'agente utente viene fornito solo con un codice di autorizzazione, nessun accesso diretto al token di accesso. Il client è una parte attendibile con accesso all'ID del client e al segreto del client dal server di autorizzazione (ecco perché ho menzionato API lato server come client).

Si prega di leggere questo articolo che ha ancora migliore spiegazione link

Per favore fatemi sapere se avete altre domande.

Grazie, Soma.

+0

Grazie e +1 per fornire una spiegazione con un collegamento. Lasciami guardare un po 'oltre quando avrò tempo. Sono curioso di scoprire se la risposta a questo OP è diversa per diversi tipi di sovvenzione. Tuttavia, non mi aspetto che tu scriva una tesi a riguardo. – CodeMed

Problemi correlati