Sto cercando di implementare il flusso del proprietario delle risorse OAuth2. Il mio server di autorizzazione genera correttamente token web JSON, quindi il prossimo passo è implementare i token di aggiornamento per la mia applicazione web.
Tutto ciò che ho letto spiega che quando si richiede un token di accesso dal proprio server di autorizzazione si include l'URL del server di risorse come client_id
. Questo viene quindi inserito in una richiesta di aud sul tuo JWT. È corretto?
Se è così, il mio problema sorge quando provo a implementare token di aggiornamento. I token di aggiornamento vengono emessi su base client, in modo che il campo client_id
ora debba identificare il client e non l'URL del server di risorse. In questo caso, il mio server di autorizzazione ora non sa a chi assegnare il token, quindi non sa cosa aggiungere nella rivendicazione aud
all'interno del JWT.
Sto cercando qualche consiglio sull'approccio migliore per risolvere questo problema in relazione alle specifiche OAuth2, non sembra esserci una risposta concreta là fuori per questo problema quando si mischiano OAuth2 e JWT.
Qualcuno ha qualche idea?
Il mio flusso attuale ha questo aspetto:
-
Il client invia una richiesta al server di autorizzazione con nome utente nel campo
username
, password nel campopassword
e il server delle risorse a cui vuole accedere nel campoclient_id
. -
Il server di autorizzazione convalida il nome utente e la password e controlla se può generare una JWT per il server delle risorse richiesto.
-
Restituisce un token se passano entrambi i controlli, il token contiene un attestato
aud
che corrisponde alclient_id
fornito nella richiesta.