Come può un server delle risorse OAuth2 collegare un token di accesso all'utente che lo ha autorizzato a impedire l'accesso non autorizzato ad altre risorse utente?

2

Sarei grato se qualcuno potesse chiarire se, in base alla RFC OAuth2 , il server delle risorse potrebbe dedurre utente associato a un token di accesso o no, o anche se è previsto.

Supponiamo che:

  • Il server delle autorizzazioni e il server delle risorse sono separati e indipendente.
  • Il client è un servizio di stampa.
  • Il server delle risorse ospita le foto degli utenti.
  • Il client desidera richiamare un'API protetta dal server delle risorse per ottenere le foto dell'utente link e stampali.
  • Il client reindirizza l'utente al server di autorizzazione indipendente e finisce per generare un token di accesso.
  • Il client utilizza quel token di accesso per ottenere e stampare alcune foto dell'utente.

Poiché il token è opaco e non ha significato per il server delle risorse indipendente né per il client, nulla impedirebbe al client di utilizzare quel token di accesso per accedere e stampare foto da qualsiasi utente , non solo colui che l'ha autorizzato.

È giusto? Altrimenti, in che modo il server delle risorse mette in relazione l'utente con il token per limitarne l'utilizzo?

    
posta codependent 05.12.2018 - 08:49
fonte

4 risposte

1

Puoi implementare Introspezione di token OAuth 2.0 come un modo per il server delle risorse per interrogare il server di autorizzazione per i metadati di token.

Utilizzando campi di risposta all'introspezione definiti puoi trasportare l'identità del proprietario di risorse nei campi sub e username .

Inoltre, direi che se il token è davvero opaco allora non solo si può ma si dovrebbe implementare l'introspezione perché è un modo per controllare.

  • Se il token è realmente rilasciato dal server di autorizzazione giusto, puoi assicurarlo anche con la crittografia ma non con le cose successive
  • Se il token è ancora attivo
  • Se il token è stato rilasciato al client che lo utilizza
  • Se l'ambito del token copre l'operazione richiesta
risposta data 05.12.2018 - 19:19
fonte
3

oAuth 2.0 non ha un meccanismo di build per farlo, tuttavia ci sono alcuni schemi che potresti impiegare per farlo funzionare.

  1. usa un livello di Autenticazione su off oAuth (come openID Connect) per recuperare le informazioni dell'utente di cui hai bisogno

  2. Aggiungi un ambito per i dettagli utente per accedere a tali dettagli utente e concedere solo quell'ambito per quell'utente. Basta essere consapevoli delle perdite di informazioni che possono causare.

  3. Utilizzare il provider di autorizzazione come gatekeeper e fornire i dettagli richiesti per quell'utente specifico, non il server di risorse in cui vengono effettivamente archiviate le immagini. una specie di sbirro, ma funzionerebbe anche.

risposta data 05.12.2018 - 11:11
fonte
1

OAuth si occupa di autorizzazione : il token fornisce solo un'indicazione delle autorizzazioni delegate. Potrebbe anche avere informazioni sull'utente che ha autorizzato il permesso ma in realtà non rappresenta un utente. Spetta al server delle risorse dare un senso alle autorizzazioni e limitare l'utilizzo di conseguenza.

Se a causa della natura dei tuoi server questo non è possibile impostare senza l'identità dell'utente, allora avrai bisogno delle autenticazione soluzioni che funzionano insieme a OAuth (ad esempio OpenID Connect).

    
risposta data 05.12.2018 - 10:27
fonte
0

L'autorizzazione viene eseguita con l'implementazione del reindirizzamento che preserva l'autenticità del server delle applicazioni e del server delle autorizzazioni.

OAuth supporta diversi tipi di flussi di lavoro. Il tipo di concessione del codice di autorizzazione è il più utilizzato poiché è ottimizzato per sfruttare le funzionalità di reindirizzamento di un browser Web.

Altre informazioni possono essere trovate con la seguente risorsa: -

link

    
risposta data 05.12.2018 - 10:24
fonte

Leggi altre domande sui tag