Flusso OAuth2: il server convalida con il server Auth?


10

Ho letto molto su OAuth2 cercando di aggirarmi, ma sono ancora confuso su qualcosa.

Comprendo che il client autorizza con il provider OAuth (ad esempio Google) e consente al Resource Server di avere accesso ai dati del profilo dell'utente. Quindi il client può inviare il token di accesso al server delle risorse e ricevere la risorsa.

Ma ciò che non sembra essere coperto da alcuna documentazione è ciò che accade quando l'app client richiede una risorsa al server delle risorse e gli passa il token di accesso. Tutto ciò che ho letto finora afferma che il server delle risorse risponde solo con la risorsa richiesta.

Ma sembra un enorme buco, sicuramente il server delle risorse deve in qualche modo convalidare il token di accesso, altrimenti potrei semplicemente falsificare qualsiasi vecchia richiesta e passare un token vecchio, rubato, falso o generato casualmente e lo accetterebbe.

Qualcuno può indicarmi una spiegazione semplice di OAuth2 perché finora quelli che ho letto sembrano incompleti.

Risposte:


8

Trovato. Sepolto nelle specifiche. Dicono che il server delle risorse dovrebbe convalidare il token di accesso con il server di autenticazione ma che è al di fuori dell'ambito del documento. Peccato, avrei pensato che la validazione dei token fosse una parte importante.


1
Per quanto riguarda le parti importanti , potrebbe valere la pena leggere questo post sul blog per alcune informazioni sulle priorità di OAuth2.
Lars Viklund,

1
Grazie per quello, una lettura interessante. I miei requisiti sono piuttosto semplici in quanto voglio consentire a un'app iOS di autenticarsi con google, twitter, facebook, ecc., Passare una qualche forma di autorizzazione al mio server e fare in modo che il mio server lo convalidi e consenta l'accesso alle risorse. Il problema si è rivelato più complesso di quanto mi aspettassi a causa della complessità di capire come funziona e cosa devo fare dove.
Drekka,

Più precisamente, Appendice A: "Per convalidare la firma sulla richiesta, la risorsa protetta potrebbe essere in grado di inviare l'identificatore token all'endpoint di introspezione del server delle autorizzazioni per ottenere le informazioni chiave necessarie necessarie per quel token. I dettagli di questo utilizzo sono esterni l'ambito di questa specifica e sarà definito in un'estensione [...] ".
JulienD

2

La convalida del token viene generalmente gestita in 1 di 2 modi.

1) Il token è crittografato con firma mediante chiavi pre-condivise. Ciò ha evidenti carenze per l'uso in sistemi distribuiti e proliferanti.

2) Il server di autorizzazione (AS) fornisce un endpoint per la convalida o l'introspezione di token. Questo metodo è stato standardizzato in IETF RFC 7662 nell'ottobre 2015, vedere: https://tools.ietf.org/html/rfc7662

Questa domanda / risposta di overflow dello stack include esempi di Google e Github: /programming/12296017/how-to-validate-an-oauth-2-0-access-token-for-a-resource-server


0

leggi le specifiche su come convalidare il token:

https://tools.ietf.org/html/rfc7662

spero che questo aiuti - per favore contrassegna la risposta se risponde alla tua domanda / problema


4
Benvenuto in Ingegneria del software. Nella sua forma attuale, questa risposta non soddisfa le nostre linee guida sulla qualità . Prevediamo che le risposte debbano rimanere da sole - i lettori dovrebbero seguire collegamenti esterni solo per ottenere una comprensione più profonda o per confermare le fonti e il contenuto pertinente dovrebbe essere citato qui.
Thomas Owens
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.